Moneybird logo
Moneybird API

Contacts are the entities in Moneybird that represent your customers, suppliers or other business relations. Use the following endpoints to get information about contacts, create new contacts or update existing contacts.


Get contact by customer id

GET
https://moneybird.com/api/v2
/{administration_id}/contacts/customer_id/{customer_id}{format}

Returns all information about a contact by the given customer id

Required scope(s)

Any of: estimates, sales_invoices, documents, bank or settings

Get contact by customer id › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

customer_id
​identifier · pattern: ^\d+$ · required

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Get contact by customer id › Responses

A contact

id
​identifier · pattern: ^\d+$

A unique record identifier

administration_id
​administration_id · pattern: ^\d+$

A unique record identifier

company_name
​
firstname
​string | null
lastname
​string | null
address1
​string | null
address2
​string | null
zipcode
​string | null
city
​string | null
country
​string
phone
​string | null
delivery_method
​string | null · enum
Enum values:
Email
Post
Manual
Simplerinvoicing
Peppol
customer_id
​string

Will be assigned automatically if empty

tax_number
​string | null
chamber_of_commerce
​string | null
bank_account
​string | null

The SEPA IBAN of the contact, can be empty if no SEPA IBAN is set

is_trusted
​boolean
Default: default
max_transfer_amount
​number | null
attention
​string | null
email
​string | null
email_ubl
​boolean
send_invoices_to_attention
​string | null
send_invoices_to_email
​string | null
send_estimates_to_attention
​string | null
send_estimates_to_email
​string | null
direct_debit
​boolean
sepa_active
​boolean | null
sepa_iban
​string | null
sepa_iban_account_name
​string | null
sepa_bic
​string | null
sepa_mandate_id
​string | null
sepa_mandate_date
​string | null · date
sepa_sequence_type
​string · enum
Enum values:
RCUR
FRST
OOFF
FNAL
credit_card_number
​string | null
credit_card_reference
​string | null
credit_card_type
​string | null · enum
Enum values:
mastercard
visa
tax_number_validated_at
​string | null · date-time
tax_number_valid
​boolean | null
invoice_workflow_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

estimate_workflow_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

si_identifier
​string | null
si_identifier_type
​string | null
moneybird_payments_mandate
​boolean

Whether the contact has a valid Moneybird Payments mandate

created_at
​timestamp · date-time
updated_at
​timestamp · date-time
version
​integer
sales_invoices_url
​string · uri · pattern: ^https:\/\/moneybird…
​note_response[]
​custom_field_value_response[]
​contact_person_response[]
archived
​boolean
​event_response[]

List possible duplicate contacts

GET
https://moneybird.com/api/v2
/{administration_id}/contacts/doubles{format}

Returns groups of contacts in the administration that are considered possible duplicates of each other.

Pages are sized by the total number of contacts across the groups they contain, not by the number of groups. A group is never split across two pages, so a page can contain more contacts than the target page size when the group that fills it up is larger than that.

Only available once this feature has been enabled for the administration.

Required scope(s)

contacts

List possible duplicate contacts › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

List possible duplicate contacts › query Parameters

page
​integer | string

List possible duplicate contacts › Responses

A page of possible duplicate contact groups

​object[]

Filter contacts

GET
https://moneybird.com/api/v2
/{administration_id}/contacts/filter{format}

Returns a paginated list of all contacts in the administration.

Required scope(s)

Any of: estimates, sales_invoices, documents, bank or settings

Filter contacts › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Filter contacts › query Parameters

filter
​string

Filters are key:value terms separated by commas (e.g. first_name:henk,contact_type:company). Any filter you pass replaces the defaults below entirely, so include every key you need. Available filters:

FilterTypeDefaultDescription
created_afterStringSelect contacts created after the given time (exclusive). ISO 8601 formatted string. The time to compare with is in UTC timezone
updated_afterStringSelect contacts updated after the given time (exclusive). ISO 8601 formatted string. The time to compare with is in UTC timezone
first_nameStringSelect contacts with the given first name. Case-insensitive
last_nameStringSelect contacts with the given last name. Case-insensitive
estimate_workflow_idIntegerFilters contacts by a single Estimate workflow
invoice_workflow_idIntegerFilters contacts by a single Invoice workflow
contact_typeStringThe contact type. Possible values all, company, private_individual
delivery_methodStringThe delivery method for invoices. Possible values. Possible values all, email, post, manual, peppol, simplerinvoicing
trusted_typeStringWhether the contact is trusted. Possible values all, trusted, not_trusted
mandate_typeStringThe direct debit mandate of the contact. Possible values all, manual (the SEPA mandate fields are filled in), adyen (an accepted Moneybird mandate), none (no mandate at all)
query
​string

Free-text search across name, contact people, email, phone, customer id, tax number, chamber of commerce, IBAN, and address fields.

include_archived
​boolean | string
page
​integer | string
per_page
​integer | string · min: 1 · max: 100 · pattern: ^\d+$

Filter contacts › Responses

200

A list of contacts

id
​identifier · pattern: ^\d+$

A unique record identifier

administration_id
​administration_id · pattern: ^\d+$

A unique record identifier

company_name
​
firstname
​string | null
lastname
​string | null
address1
​string | null
address2
​string | null
zipcode
​string | null
city
​string | null
country
​string
phone
​string | null
delivery_method
​string | null · enum
Enum values:
Email
Post
Manual
Simplerinvoicing
Peppol
customer_id
​string

Will be assigned automatically if empty

tax_number
​string | null
chamber_of_commerce
​string | null
bank_account
​string | null

The SEPA IBAN of the contact, can be empty if no SEPA IBAN is set

is_trusted
​boolean
Default: default
max_transfer_amount
​number | null
attention
​string | null
email
​string | null
email_ubl
​boolean
send_invoices_to_attention
​string | null
send_invoices_to_email
​string | null
send_estimates_to_attention
​string | null
send_estimates_to_email
​string | null
direct_debit
​boolean
sepa_active
​boolean | null
sepa_iban
​string | null
sepa_iban_account_name
​string | null
sepa_bic
​string | null
sepa_mandate_id
​string | null
sepa_mandate_date
​string | null · date
sepa_sequence_type
​string · enum
Enum values:
RCUR
FRST
OOFF
FNAL
credit_card_number
​string | null
credit_card_reference
​string | null
credit_card_type
​string | null · enum
Enum values:
mastercard
visa
tax_number_validated_at
​string | null · date-time
tax_number_valid
​boolean | null
invoice_workflow_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

estimate_workflow_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

si_identifier
​string | null
si_identifier_type
​string | null
moneybird_payments_mandate
​boolean

Whether the contact has a valid Moneybird Payments mandate

created_at
​timestamp · date-time
updated_at
​timestamp · date-time
version
​integer
sales_invoices_url
​string · uri · pattern: ^https:\/\/moneybird…
​note_response[]
​custom_field_value_response[]
​contact_person_response[]
archived
​boolean
​event_response[]

List all ids and versions

GET
https://moneybird.com/api/v2
/{administration_id}/contacts/synchronization{format}

Returns all contacts in the administration. The list contains the contact id and the version of the contact. Check if the version of the contact is newer than the version you have stored locally, use the POST variant for fetching contacts with the given ids.

Required scope(s)

Any of: estimates, sales_invoices, documents, bank or settings

List all ids and versions › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

List all ids and versions › query Parameters

filter
​string

Comma-separated key:value filter terms. Same syntax as GET /contacts/filter — see that operation's description for the available keys.

include_archived
​boolean | string

List all ids and versions › Responses

200

IDs and versions of records

​object[]
id
​integer | string
version
​integer | string

Fetch contacts with given ids

POST
https://moneybird.com/api/v2
/{administration_id}/contacts/synchronization{format}

Given a list of contact ids, returns the contact information belonging to the contacts. Returns a maximum of 100 contacts, even if more ids are provided.

Required scope(s)

Any of: estimates, sales_invoices, documents, bank or settings

Fetch contacts with given ids › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Fetch contacts with given ids › Request Body

ids
​(integer | string)[] · required

Fetch contacts with given ids › Responses

A list of contacts

id
​identifier · pattern: ^\d+$

A unique record identifier

administration_id
​administration_id · pattern: ^\d+$

A unique record identifier

company_name
​
firstname
​string | null
lastname
​string | null
address1
​string | null
address2
​string | null
zipcode
​string | null
city
​string | null
country
​string
phone
​string | null
delivery_method
​string | null · enum
Enum values:
Email
Post
Manual
Simplerinvoicing
Peppol
customer_id
​string

Will be assigned automatically if empty

tax_number
​string | null
chamber_of_commerce
​string | null
bank_account
​string | null

The SEPA IBAN of the contact, can be empty if no SEPA IBAN is set

is_trusted
​boolean
Default: default
max_transfer_amount
​number | null
attention
​string | null
email
​string | null
email_ubl
​boolean
send_invoices_to_attention
​string | null
send_invoices_to_email
​string | null
send_estimates_to_attention
​string | null
send_estimates_to_email
​string | null
direct_debit
​boolean
sepa_active
​boolean | null
sepa_iban
​string | null
sepa_iban_account_name
​string | null
sepa_bic
​string | null
sepa_mandate_id
​string | null
sepa_mandate_date
​string | null · date
sepa_sequence_type
​string · enum
Enum values:
RCUR
FRST
OOFF
FNAL
credit_card_number
​string | null
credit_card_reference
​string | null
credit_card_type
​string | null · enum
Enum values:
mastercard
visa
tax_number_validated_at
​string | null · date-time
tax_number_valid
​boolean | null
invoice_workflow_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

estimate_workflow_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

si_identifier
​string | null
si_identifier_type
​string | null
moneybird_payments_mandate
​boolean

Whether the contact has a valid Moneybird Payments mandate

created_at
​timestamp · date-time
updated_at
​timestamp · date-time
version
​integer
sales_invoices_url
​string · uri · pattern: ^https:\/\/moneybird…
​note_response[]
​custom_field_value_response[]
​contact_person_response[]
archived
​boolean
​event_response[]

Get contact person

GET
https://moneybird.com/api/v2
/{administration_id}/contacts/{contact_id}/contact_people/{id}{format}

Returns all information about a contact person.

Required scope(s)

Any of: estimates, sales_invoices, documents, bank or settings

Get contact person › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

contact_id
​identifier · pattern: ^\d+$ · required

A unique record identifier

id
​identifier · pattern: ^\d+$ · required

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Get contact person › Responses

A contact person

id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

contact_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

administration_id
​administration_id · pattern: ^\d+$

A unique record identifier

firstname
​string | null
lastname
​string | null
phone
​string | null
email
​string | null
department
​string | null
created_at
​string | null · date-time
updated_at
​string | null · date-time
version
​integer

Delete a contact person

DELETE
https://moneybird.com/api/v2
/{administration_id}/contacts/{contact_id}/contact_people/{id}{format}

Deletes a contact person.

Required scope(s)

Any of: estimates, sales_invoices, documents, bank or settings

Delete a contact person › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

contact_id
​identifier · pattern: ^\d+$ · required

A unique record identifier

id
​identifier · pattern: ^\d+$ · required

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Delete a contact person › Responses

Contact person deleted

No data returned

Update a contact person

PATCH
https://moneybird.com/api/v2
/{administration_id}/contacts/{contact_id}/contact_people/{id}{format}

When updating a contact, you only need to provide the information you want to change. Attributes you don't provide in the request will not be updated.

Required scope(s)

Any of: estimates, sales_invoices, documents, bank or settings

Update a contact person › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

contact_id
​identifier · pattern: ^\d+$ · required

A unique record identifier

id
​identifier · pattern: ^\d+$ · required

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Update a contact person › Request Body

​object

Update a contact person › Responses

Contact person updated

id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

contact_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

administration_id
​administration_id · pattern: ^\d+$

A unique record identifier

firstname
​string | null
lastname
​string | null
phone
​string | null
email
​string | null
department
​string | null
created_at
​string | null · date-time
updated_at
​string | null · date-time
version
​integer

Create a new contact person

POST
https://moneybird.com/api/v2
/{administration_id}/contacts/{contact_id}/contact_people{format}

Creating a new contact person in the administration requires at least a contact_person hash including firstname and lastname.

Required scope(s)

Any of: estimates, sales_invoices, documents, bank or settings

Create a new contact person › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

contact_id
​identifier · pattern: ^\d+$ · required

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Create a new contact person › Request Body

​object

Create a new contact person › Responses

Contact person created

id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

contact_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

administration_id
​administration_id · pattern: ^\d+$

A unique record identifier

firstname
​string | null
lastname
​string | null
phone
​string | null
email
​string | null
department
​string | null
created_at
​string | null · date-time
updated_at
​string | null · date-time
version
​integer

Request an URL for setting up a Moneybird Payments mandate

POST
https://moneybird.com/api/v2
/{administration_id}/contacts/{contact_id}/moneybird_payments_mandate/url{format}

Obtains an URL for setting up a Moneybird Payments mandate. You must provide this URL to your contact to set-up the mandate. Your contact is required to make a 15 cent payment. Every generated URL using this endpoint is valid for 14 days after creation. Only available when Moneybird Payments is enabled for the administration.

Required scope(s)

sales_invoices and settings

Request an URL for setting up a Moneybird Payments mandate › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

contact_id
​identifier · pattern: ^\d+$ · required

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Request an URL for setting up a Moneybird Payments mandate › Request Body

​object

Request an URL for setting up a Moneybird Payments mandate › Responses

A URL for setting up a Moneybird Payments mandate

url
​string

Get Moneybird Payments mandate

GET
https://moneybird.com/api/v2
/{administration_id}/contacts/{contact_id}/moneybird_payments_mandate{format}

Returns information about the stored Moneybird Payments mandate. Only available when Moneybird Payments is enabled for the administration.

Required scope(s)

Any of: estimates, sales_invoices, documents, bank or settings

Get Moneybird Payments mandate › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

contact_id
​identifier · pattern: ^\d+$ · required

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Get Moneybird Payments mandate › Responses

A Moneybird Payments mandate

type
​string | null
sepa_mandate
​boolean
bank
​string | null
iban
​string | null
bic
​string | null
iban_account_name
​string | null
card_expiry_month
​string | null
card_expiry_year
​string | null
card_final_digits
​string | null
created_at
​timestamp · date-time

Request a new Moneybird Payments mandate

POST
https://moneybird.com/api/v2
/{administration_id}/contacts/{contact_id}/moneybird_payments_mandate{format}

Sends a request for a Moneybird Payments mandate to a contact via e-mail. Your contact will receive an email containing a link to authorise direct debit payments through Moneybird Payments. Your contact is required to make a 15 cent payment. Only available when Moneybird Payments is enabled for the administration.

Required scope(s)

sales_invoices and settings

Request a new Moneybird Payments mandate › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

contact_id
​identifier · pattern: ^\d+$ · required

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Request a new Moneybird Payments mandate › Request Body

​object

Request a new Moneybird Payments mandate › Responses

Moneybird Payments mandate requested

No data returned

Delete a stored Moneybird Payments mandate

DELETE
https://moneybird.com/api/v2
/{administration_id}/contacts/{contact_id}/moneybird_payments_mandate{format}

Deletes the stored Moneybird Payments mandate for the contact. Only available when Moneybird Payments is enabled for the administration.

Required scope(s)

Any of: estimates, sales_invoices, documents, bank or settings

Delete a stored Moneybird Payments mandate › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

contact_id
​identifier · pattern: ^\d+$ · required

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Delete a stored Moneybird Payments mandate › Responses

Contact deleted

No data returned

Destroys note from entity

DELETE
https://moneybird.com/api/v2
/{administration_id}/contacts/{contact_id}/notes/{id}{format}

Deletes a note from the contact.

Required scope(s)

Any of: estimates, sales_invoices, documents, bank or settings

Destroys note from entity › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

contact_id
​identifier · pattern: ^\d+$ · required

A unique record identifier

id
​identifier · pattern: ^\d+$ · required

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Destroys note from entity › Responses

Note deleted

No data returned

Adds note to entity

POST
https://moneybird.com/api/v2
/{administration_id}/contacts/{contact_id}/notes{format}

Adds a note to the contact.

Required scope(s)

Any of: estimates, sales_invoices, documents, bank or settings

Adds note to entity › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

contact_id
​identifier · pattern: ^\d+$ · required

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Adds note to entity › Request Body

​object

Adds note to entity › Responses

Note created

id
​identifier · pattern: ^\d+$

A unique record identifier

administration_id
​administration_id · pattern: ^\d+$

A unique record identifier

entity_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

entity_type
​string
user_id
​identifier · pattern: ^\d+$

A unique record identifier

assignee_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

todo
​boolean | string | null
Default: false
note
​string | null
completed_at
​string | null · date-time
completed_by_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

todo_type
​string | null · enum
Enum values:
sales_invoice_due
purchase_invoice_due
general_document_reminder
general_document_due
new_document_awaiting_processing
new_financial_mutation_awaiting_processing
financial_mutations_not_updated
sales_invoice_payment_not_linked_to_financial_mutation
data
​object | null
created_at
​timestamp · date-time
updated_at
​timestamp · date-time

Get additional charges

GET
https://moneybird.com/api/v2
/{administration_id}/contacts/{id}/additional_charges{format}

Get the additional charges of the given contact.

Required scope(s)

sales_invoices

Get additional charges › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

id
​identifier · pattern: ^\d+$ · required

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Get additional charges › query Parameters

include_billed
​boolean | string

If true, includes the additional charges that have already been billed. Default is false.

Get additional charges › Responses

A list of additional charges

id
​identifier · pattern: ^\d+$

A unique record identifier

administration_id
​administration_id · pattern: ^\d+$

A unique record identifier

contact_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

subscription_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

product_id
​identifier · pattern: ^\d+$

A unique record identifier

detail_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

amount
​string | null
price
​string
period
​string · pattern: ^[0-9]{6}..[0-9]{6}$
description
​string

Create an additional charge to be invoiced at start of next period

POST
https://moneybird.com/api/v2
/{administration_id}/contacts/{id}/additional_charges{format}

At the end of the current period, the additional charges for a contact are merged where possible and an invoice will be created for them. The invoice will be scheduled for sending at the first day of the next month.

Required scope(s)

sales_invoices

Create an additional charge to be invoiced at start of next period › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

id
​identifier · pattern: ^\d+$ · required

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Create an additional charge to be invoiced at start of next period › Request Body

Create an additional charge to be invoiced at start of next period › Responses

Subscription additional charge created

id
​identifier · pattern: ^\d+$

A unique record identifier

administration_id
​administration_id · pattern: ^\d+$

A unique record identifier

contact_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

subscription_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

product_id
​identifier · pattern: ^\d+$

A unique record identifier

detail_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

amount
​string | null
price
​string
period
​string · pattern: ^[0-9]{6}..[0-9]{6}$
description
​string

Archive a contact

PATCH
https://moneybird.com/api/v2
/{administration_id}/contacts/{id}/archive{format}

Archives a contact.

Required scope(s)

Any of: estimates, sales_invoices, documents, bank or settings

Archive a contact › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

id
​identifier · pattern: ^\d+$ · required

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Archive a contact › Responses

Contact archived

No data returned

Get contact

GET
https://moneybird.com/api/v2
/{administration_id}/contacts/{id}{format}

Returns all information about a contact.

Required scope(s)

Any of: estimates, sales_invoices, documents, bank or settings

Get contact › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

id
​identifier · pattern: ^\d+$ · required

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Get contact › query Parameters

include_archived
​boolean | string

Get contact › Responses

A contact

id
​identifier · pattern: ^\d+$

A unique record identifier

administration_id
​administration_id · pattern: ^\d+$

A unique record identifier

company_name
​
firstname
​string | null
lastname
​string | null
address1
​string | null
address2
​string | null
zipcode
​string | null
city
​string | null
country
​string
phone
​string | null
delivery_method
​string | null · enum
Enum values:
Email
Post
Manual
Simplerinvoicing
Peppol
customer_id
​string

Will be assigned automatically if empty

tax_number
​string | null
chamber_of_commerce
​string | null
bank_account
​string | null

The SEPA IBAN of the contact, can be empty if no SEPA IBAN is set

is_trusted
​boolean
Default: default
max_transfer_amount
​number | null
attention
​string | null
email
​string | null
email_ubl
​boolean
send_invoices_to_attention
​string | null
send_invoices_to_email
​string | null
send_estimates_to_attention
​string | null
send_estimates_to_email
​string | null
direct_debit
​boolean
sepa_active
​boolean | null
sepa_iban
​string | null
sepa_iban_account_name
​string | null
sepa_bic
​string | null
sepa_mandate_id
​string | null
sepa_mandate_date
​string | null · date
sepa_sequence_type
​string · enum
Enum values:
RCUR
FRST
OOFF
FNAL
credit_card_number
​string | null
credit_card_reference
​string | null
credit_card_type
​string | null · enum
Enum values:
mastercard
visa
tax_number_validated_at
​string | null · date-time
tax_number_valid
​boolean | null
invoice_workflow_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

estimate_workflow_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

si_identifier
​string | null
si_identifier_type
​string | null
moneybird_payments_mandate
​boolean

Whether the contact has a valid Moneybird Payments mandate

created_at
​timestamp · date-time
updated_at
​timestamp · date-time
version
​integer
sales_invoices_url
​string · uri · pattern: ^https:\/\/moneybird…
​note_response[]
​custom_field_value_response[]
​contact_person_response[]
archived
​boolean
​event_response[]

Delete a contact

DELETE
https://moneybird.com/api/v2
/{administration_id}/contacts/{id}{format}

Deletes a contact.

Required scope(s)

Any of: estimates, sales_invoices, documents, bank or settings

Delete a contact › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

id
​identifier · pattern: ^\d+$ · required

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Delete a contact › Responses

Contact deleted

No data returned

Update a contact

PATCH
https://moneybird.com/api/v2
/{administration_id}/contacts/{id}{format}

When updating a contact, you only need to provide the information you want to change. Attributes you don't provide in the request will not be updated. Optional attributes can be removed by setting them to an empty string value.

Required scope(s)

Any of: estimates, sales_invoices, documents, bank or settings

Update a contact › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

id
​identifier · pattern: ^\d+$ · required

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Update a contact › Request Body

​object · required

Update a contact › Responses

Contact updated

id
​identifier · pattern: ^\d+$

A unique record identifier

administration_id
​administration_id · pattern: ^\d+$

A unique record identifier

company_name
​
firstname
​string | null
lastname
​string | null
address1
​string | null
address2
​string | null
zipcode
​string | null
city
​string | null
country
​string
phone
​string | null
delivery_method
​string | null · enum
Enum values:
Email
Post
Manual
Simplerinvoicing
Peppol
customer_id
​string

Will be assigned automatically if empty

tax_number
​string | null
chamber_of_commerce
​string | null
bank_account
​string | null

The SEPA IBAN of the contact, can be empty if no SEPA IBAN is set

is_trusted
​boolean
Default: default
max_transfer_amount
​number | null
attention
​string | null
email
​string | null
email_ubl
​boolean
send_invoices_to_attention
​string | null
send_invoices_to_email
​string | null
send_estimates_to_attention
​string | null
send_estimates_to_email
​string | null
direct_debit
​boolean
sepa_active
​boolean | null
sepa_iban
​string | null
sepa_iban_account_name
​string | null
sepa_bic
​string | null
sepa_mandate_id
​string | null
sepa_mandate_date
​string | null · date
sepa_sequence_type
​string · enum
Enum values:
RCUR
FRST
OOFF
FNAL
credit_card_number
​string | null
credit_card_reference
​string | null
credit_card_type
​string | null · enum
Enum values:
mastercard
visa
tax_number_validated_at
​string | null · date-time
tax_number_valid
​boolean | null
invoice_workflow_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

estimate_workflow_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

si_identifier
​string | null
si_identifier_type
​string | null
moneybird_payments_mandate
​boolean

Whether the contact has a valid Moneybird Payments mandate

created_at
​timestamp · date-time
updated_at
​timestamp · date-time
version
​integer
sales_invoices_url
​string · uri · pattern: ^https:\/\/moneybird…
​note_response[]
​custom_field_value_response[]
​contact_person_response[]
archived
​boolean
​event_response[]

List all contacts

GET
https://moneybird.com/api/v2
/{administration_id}/contacts{format}

Returns a paginated list of contacts in the administration.

Searching for contacts can be done by providing the query parameter with search terms. The API searches for matches in the following contact fields:

  • company_name
  • attention
  • firstname
  • lastname
  • address1
  • address2
  • zipcode
  • city
  • country
  • email
  • phone
  • customer_id
  • tax_number
  • chamber_of_commerce
  • bank_account

Required scope(s)

Any of: estimates, sales_invoices, documents, bank or settings

List all contacts › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

List all contacts › query Parameters

per_page
​integer | string · min: 1 · max: 100 · pattern: ^\d+$
page
​integer | string
query
​string

Free-text search across name, contact people, email, phone, customer id, tax number, chamber of commerce, IBAN, and address fields.

include_archived
​boolean | string
todo
​string
contact_field
​string
contact_value
​string
contact_import_id
​integer | string

Restrict to contacts created by the given contact import batch.

List all contacts › Responses

A list of contacts

id
​identifier · pattern: ^\d+$

A unique record identifier

administration_id
​administration_id · pattern: ^\d+$

A unique record identifier

company_name
​
firstname
​string | null
lastname
​string | null
address1
​string | null
address2
​string | null
zipcode
​string | null
city
​string | null
country
​string
phone
​string | null
delivery_method
​string | null · enum
Enum values:
Email
Post
Manual
Simplerinvoicing
Peppol
customer_id
​string

Will be assigned automatically if empty

tax_number
​string | null
chamber_of_commerce
​string | null
bank_account
​string | null

The SEPA IBAN of the contact, can be empty if no SEPA IBAN is set

is_trusted
​boolean
Default: default
max_transfer_amount
​number | null
attention
​string | null
email
​string | null
email_ubl
​boolean
send_invoices_to_attention
​string | null
send_invoices_to_email
​string | null
send_estimates_to_attention
​string | null
send_estimates_to_email
​string | null
direct_debit
​boolean
sepa_active
​boolean | null
sepa_iban
​string | null
sepa_iban_account_name
​string | null
sepa_bic
​string | null
sepa_mandate_id
​string | null
sepa_mandate_date
​string | null · date
sepa_sequence_type
​string · enum
Enum values:
RCUR
FRST
OOFF
FNAL
credit_card_number
​string | null
credit_card_reference
​string | null
credit_card_type
​string | null · enum
Enum values:
mastercard
visa
tax_number_validated_at
​string | null · date-time
tax_number_valid
​boolean | null
invoice_workflow_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

estimate_workflow_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

si_identifier
​string | null
si_identifier_type
​string | null
moneybird_payments_mandate
​boolean

Whether the contact has a valid Moneybird Payments mandate

created_at
​timestamp · date-time
updated_at
​timestamp · date-time
version
​integer
sales_invoices_url
​string · uri · pattern: ^https:\/\/moneybird…
​note_response[]
​custom_field_value_response[]
​contact_person_response[]
archived
​boolean
​event_response[]

Create a new contact

POST
https://moneybird.com/api/v2
/{administration_id}/contacts{format}

Creating a new contact in the administration requires at least a company_name or a firstname and lastname. When filling a custom field, both id and value are required. See the custom field example for more information.

Required scope(s)

Any of: estimates, sales_invoices, documents, bank or settings

Create a new contact › path Parameters

administration_id
​administration_id · pattern: ^\d+$ · required

The unique identifier of the administration

A unique record identifier

format
​string · pattern: ^(.(json|xml))?$ · required

The format in which the response is given, can be empty to use the default format

Default: .json

Create a new contact › Request Body

​object · required

Create a new contact › Responses

Contact created

id
​identifier · pattern: ^\d+$

A unique record identifier

administration_id
​administration_id · pattern: ^\d+$

A unique record identifier

company_name
​
firstname
​string | null
lastname
​string | null
address1
​string | null
address2
​string | null
zipcode
​string | null
city
​string | null
country
​string
phone
​string | null
delivery_method
​string | null · enum
Enum values:
Email
Post
Manual
Simplerinvoicing
Peppol
customer_id
​string

Will be assigned automatically if empty

tax_number
​string | null
chamber_of_commerce
​string | null
bank_account
​string | null

The SEPA IBAN of the contact, can be empty if no SEPA IBAN is set

is_trusted
​boolean
Default: default
max_transfer_amount
​number | null
attention
​string | null
email
​string | null
email_ubl
​boolean
send_invoices_to_attention
​string | null
send_invoices_to_email
​string | null
send_estimates_to_attention
​string | null
send_estimates_to_email
​string | null
direct_debit
​boolean
sepa_active
​boolean | null
sepa_iban
​string | null
sepa_iban_account_name
​string | null
sepa_bic
​string | null
sepa_mandate_id
​string | null
sepa_mandate_date
​string | null · date
sepa_sequence_type
​string · enum
Enum values:
RCUR
FRST
OOFF
FNAL
credit_card_number
​string | null
credit_card_reference
​string | null
credit_card_type
​string | null · enum
Enum values:
mastercard
visa
tax_number_validated_at
​string | null · date-time
tax_number_valid
​boolean | null
invoice_workflow_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

estimate_workflow_id
​identifier_nullable · pattern: ^\d+$

A unique record identifier

si_identifier
​string | null
si_identifier_type
​string | null
moneybird_payments_mandate
​boolean

Whether the contact has a valid Moneybird Payments mandate

created_at
​timestamp · date-time
updated_at
​timestamp · date-time
version
​integer
sales_invoices_url
​string · uri · pattern: ^https:\/\/moneybird…
​note_response[]
​custom_field_value_response[]
​contact_person_response[]
archived
​boolean
​event_response[]