- Create an Entity for each recipient
- Onboard the Entity, including the account where it will be paid
- Create a Checkout Session with a
splitarray, then send the customer to itsredirect_url
Before you begin
Before you start, make sure you have:- A Fintoc account with Collects enabled
- Your Secret Key and Public Key
- Recipient business and bank account information for each Entity you need to onboard
Step 1: Create an Entity
An Entity represents the legal holder that receives a share of a payment, such as a seller, a partner, a professional, or a business unit.waiting_initialization. It cannot receive a split until it reaches operational, which happens once its onboarding is approved.
If the recipient already exists as an Entity in your organization, reuse its
id. Creating a second Entity with the same holder_id returns 409 entity_holder_id_already_exists_for_organization.GET /v2/entities — which accepts holder_id, status and is_root filters — and GET /v2/entities/{id}.
Step 2: Onboard the Entity
During onboarding, the Entity declares who it is and the bank account where Fintoc pays split funds. Fintoc reviews the onboarding. After approval, the Entity becomesoperational.
You complete onboarding through the API in Chile and Mexico.
Create the onboarding
Onboarding type
type is required when you create the onboarding. It declares what the Entity will do with Fintoc, it cannot be changed afterwards, and it determines how much information the onboarding asks for.
settlement_recipient — the Entity only receives money. Its share of each split is transferred to the bank account it declares in settlement_account, and nothing else: it does not hold a balance at Fintoc, cannot receive transfers from third parties, and cannot send money out. Because it only gets paid, the onboarding asks for the minimum needed to identify who is being paid. This is the value to use for Split Payments.
account_holder — the Entity operates an account at Fintoc. It can receive incoming transfers, send outgoing ones and hold a balance. That capability carries a higher risk profile, so the onboarding requires the full set of information: transactional profile, ownership structure and supporting documents.
The settlement account
Fintoc transfers this Entity’s share of every split todata.company_information.settlement_account. The settlement_account field is the only Split Payments addition to the onboarding.
It carries no holder fields: the account holder is the company being onboarded, so the tax ID is already known.
Onboarding fields
Submit the onboarding
Once the information is complete, submit it for review:
Two webhooks tell you the outcome:
entity.onboarding.approved: the Entity is ready to receive splits.entity.onboarding.rejected: the review failed.
Compliance review typically takes one to two business days. Design your flow so the recipient can be created and shown as pending while the review runs.
Changing the settlement account
Create a new onboarding for the same Entity with the new account. While the new onboarding is under review, the previous account stays in effect and the Entity keeps receiving splits. When the new onboarding is approved, the new account replaces the previous one. If the new onboarding is rejected, nothing changes.Step 3: Create a Checkout Session with split
Add a split array to the Checkout Session. Each entry names an Entity and its share.
Percentages are expressed in basis points.
10000 = 100%, 1000 = 10%, 1 = 0.01%. To assign 90%, send 9000.split array as you sent it, along with the redirect_url of the payment page. Send the customer there to complete the payment.
Step 4: Handle post-payment events
checkout_session.finished and payment_intent.succeeded include a split_applied array with the amount resolved for each recipient.
How and when recipients are paid
Payouts follow your organization’s settlement schedule. In each cycle, Fintoc groups every share owed to the same Entity into one transfer to its settlement account. For example, a recipient that appears in 200 payments during a cycle receives a single transfer. Retrieve a payout withGET /v1/payouts/{id}, list them with GET /v1/payouts, and get the payments it covers with GET /v1/payouts/{id}/resources.
Rules and validations
Fintoc validates thesplit array when you create a Checkout Session. The request fails with 400 Bad Request and invalid_request_error if any rule is violated.
Per entry
entity_idmust reference an Entity inoperationalstatus- The Entity’s
country_codemust match the payment currency - For
flat,amountmust be greater than0and less than or equal to the Checkout Sessionamount. - For
percentage:0 < amount <= 10000
- Between 1 and 10 entries
- No duplicate
entity_idvalues - Every entry must use the same
type - The sum of all
split[].amountvalues, after converting percentages, must equal the Checkout Sessionamountexactly. - For
percentage, the values must add up to exactly10000bps
floor(amount_total * amount / 10000). The accumulated rounding difference is assigned to the entry with charge_processing_fee: true.