account_holder is the onboarding type for opening a Mexican Entity as an account holder. After Fintoc approves the review, the Entity can own Account objects. This page documents the schema you send in data when you create an account_holder onboarding and the document slots the onboarding opens.
For the end-to-end flow, from creating the Entity to submitting for review, follow Onboard an entity by API. This page covers only what is specific to the account_holder type.
Availability
account_holder supports Mexican Entity objects. Creating an account_holder onboarding for an Entity in another country returns 422 Unprocessable Entity with the code country_not_supported.The request shape
Sendtype and data at the top level of the create request:
data object holds four keys, all required. The sections below document each one. The API reference describes data as a free-form object, because its shape depends on type; this page is the schema for account_holder.
legal_representatives and shareholders report errors independently, so one response can carry errors from both blocks. company_information and transactional_profile are the exception. Fintoc validates them in that order and stops at the first block that fails. A request with errors in both blocks reports only company_information.
company_information
The company’s identity and settlement details. Every field is required:legal_representatives
The people authorized to act for the company. Declare at least one. Fintoc enforces no maximum, and every field is required for every entry:
An empty array returns
400 Bad Request with the code legal_representatives_required. Errors on this block accumulate across entries, and param carries the index of the failing entry, such as legal_representatives.0.email.
transactional_profile
The volume and the source of the money theEntity expects to move. Every field is required:
resource_origins accepts these values:
The response echoes
transactional_profile with declaration_accepted set to true, which Fintoc adds when it creates the onboarding. Do not send declaration_accepted; the API ignores it.
shareholders
The company’s ownership tree. Declare at least one shareholder; an empty array returns400 Bad Request with the code shareholders_required. Every node in the tree, at the root and at any depth, takes these fields:
Two rules constrain the tree:
- Each level sums to between
76and100. The root percentages must sum to at least76and at most100. Eachchildrenarray must meet the same range. A level below76returns the codeparticipation_below_threshold. A level above100returns the codeshareholder_participation_exceeded. - Only a
legal_entitynests. Anatural_personcarryingchildrenreturns the codeonly_legal_entity_can_nest. Alegal_entitywith nochildrenis valid, and Fintoc runs no sum check on a level that does not exist. Fintoc sets no limit on nesting depth.
legal_representatives, this block reports one error at a time. Fix the reported node and resend.
Document slots
Creating the onboarding opens every slot the type requires, each one reportingmissing until you upload a file. Every slot is required before you can submit. The maximum file size is 20 MB for every slot.
For company slots and shareholder documents, Fintoc reads the content type from the file bytes. The content type your upload declares does not matter. The two legal representative slots check both values. Send the part’s Content-Type as one of the accepted types for that slot, because Fintoc rejects the upload before it inspects the bytes.
The onboarding opens five company slots, listed in the top-level documents array:
Each legal representative gets its own
documents array with two slots:
Each shareholder gets a single
document object rather than an array, because a shareholder holds exactly one document. Fintoc picks the slot from the shareholder’s type, so the upload path carries no slot_key:
A company with one legal representative and three shareholders therefore opens ten slots: five company slots, two for the representative, and one per shareholder.
A complete example
This payload declares one legal representative and two root shareholders. One root shareholder nests a third shareholder. Every value is test data that belongs to no real company or person. Thesettlement_account is a documented test CLABE. Fintoc accepts it because its bank code and control digit are valid. An all-zeros CLABE returns 400 Bad Request, because 000 is not a supported bank code.
What’s next
- Onboard an entity by API for the full flow, including the uploads, the submission, and the review.
- KYC requirements for Mexico for the documents Fintoc’s compliance team reviews.
- The Onboarding object for the response attributes.