Skip to main content
A business is one company plus one entry per beneficial owner (UBO). Each owner gets an applicant id in the create response, which you use to upload that owner’s documents. Beneficiaries are matched by email (case-insensitive): entries that share an email are merged into one owner with one applicantId — send each person once.

Create the business

POST /api/v0/customer with userType: "BUSINESS", a company block, one entry per beneficiary, and the company questionnaire.Returns 201 with the company applicant id and one applicantId per owner:
Save each applicantId — that is the uboRef for that owner’s uploads.

Upload company documents

POST /api/v0/customer/{userId}/documents with idDocType=COMPANY_DOC, using idDocSubType to say which document it is.
A company must clear two groups — send one upload per group, and upload both before the owners’ last document (see the last step).

Upload each owner's documents

POST /api/v0/customer/{userId}/ubo/{uboRef}/documents, where uboRef is that owner’s applicantId.
Repeat for SELFIE and UTILITY_BILL. A uboRef that is not a beneficiary of this company returns 404 ERRCUS_1608, on field uboRef.

Everything submits together

Endl submits the business after its first company document, once every owner’s documents are complete. Upload both company groups before the owners’ last document, so the company isn’t submitted with one group missing.A business keeps its current status (normally INITIATED) until the company and every owner are in, then PENDING. A business never returns SUBMITTED.A business read has no documents array. Track progress through the overall status and each owner’s beneficiaries[].status — PENDING until that owner’s documents are uploaded, then UPLOADED. That is a document-upload status, not a verification result; use the top-level status for that.

Company fields

Beneficiary fields

One entry per beneficial owner. At least one is required, and at least one must be a UBO.
Every beneficiary needs an address, and at least one must be a UBO. A missing address is 400 ERRCUS_1215 (beneficiaries[0].address is required). A set of beneficiaries with no ubo among their types is 400 ERRCUS_1201.
director is no longer a supported beneficiary type. Previously types accepted ["ubo"], ["director"] or both, and a person listed as both was merged into one owner. Now any value other than ubo — including director, in any letter case — is rejected with 400 before anything is created:
A director beneficiary used to fail later, at verification, with a 500. List only the company’s UBOs as beneficiaries.

Company document types

idDocType is always COMPANY_DOC. idDocSubType says which document: Legal presence is satisfied by either incorporation document. Ownership structure needs the shareholder registry.

Owner document types

PASSPORT · ID_CARD · DRIVERS · RESIDENCE_PERMIT · SELFIE · UTILITY_BILL (proof of address) These are the recommended values. Endl does not validate the value; any non-blank idDocType is passed to the verification provider, and ERRCUS_1406 is not returned on this endpoint. DRIVERS_LICENSE is still accepted as an alias for DRIVERS. Same limits as individuals: JPEG, PNG or PDF, maximum 5 MB, content sniffed rather than trusted by extension.

Updating and deleting

Update changes company fields — beneficiaries are not changed here, and the questionnaire cannot be updated at all (400 ERRCUS_1303). An update must change at least one field; an empty one, or {"company":{}}, is 400 ERRCUS_1502. It returns 200 with the updated business customer. After COMPLETED the business is fully locked: any company change returns 409 ERRCUS_1604. Delete is a soft delete, with the same funded-delete 409 ERRCUS_1606 guard and the same email release.

Importing a business

Pass a shareToken with userType: "BUSINESS". Both email and companyName are required alongside it — a missing companyName is ERRCUS_1125; country is validated if present.
Tokens are single-use, exactly as for individuals.