1
Create the customer
Call
POST /customers/new with:- the customer’s
enterpriseNumber(formatted0123.456.789, withoutBE),nameandaccountingRef; - its
address:street,zipCode,municipality,country(street2is optional); - its
contact:name,function,emailandlanguage(fr,nloren). Mandate signature requests are sent to this person, in this language.
bankAccounts (IBAN only) and payrollProviders (code only) in the same call, or add them later:POST /customers/{customerId}/bank-accounts/{iban}/newPOST /customers/{customerId}/payroll-providers/{code}/new
POST /customers (for example by enterpriseNumber) and add what is missing.Required scope: customers:write2
Request the mandates
Request one mandate per bank account and one per payroll provider:
- CODA:
POST /customers/{customerId}/bank-accounts/{iban}/mandates/new - CODB:
POST /customers/{customerId}/payroll-providers/{code}/mandates/new
mandates:write3
Follow the mandates
Mandate requests are processed asynchronously. The request call only confirms that Codaclean received it, and returns no mandate identifier.Poll
POST /mandates to follow them, for example with customerId and updatedSince set to the time of your last poll.Each mandate has a status that changes as it progresses.Required scope: mandates:readCustomer registered by another accounting firm
An enterprise number can belong to only one accounting firm. If another firm already registered it, creating the customer returns403 belongsToAnotherTenant, and it cannot be added.
The accountant must then contact Codaclean support to start a transfer procedure, which requires the end customer’s agreement.
Choosing a connector
Some banks are reachable through several CODAlight connectors. In that case, the mandate request returns422 connectorSelectionRequired with a list of candidates.
Call the endpoint again with the chosen connectorId in the body. Codaclean remembers the choice for the bank account.
Mandate statuses
CODAlight consents
A CODAlight consent is reported withproduct: "CODA".
It is time-limited: validUntil is the end of the consent. After that date, the mandate moves to renewalRequired until the customer renews the consent.
Good to know
- Mandates not signed within 3 months expire. The user can send them again from MyCodaclean.
- Codaclean automatically sends regular reminders to end customers who still have to sign or renew a mandate.
- Get the list of supported banks with
POST /banks. - Get the list of available payroll providers, with their codes, with
POST /payroll-providers.

