Skip to main content
Six calls take an empty sandbox Tenancy to an issued Loan with its first instalment settled. At the end you hold a Loan on record, the Schedule the borrower repays it over, and one instalment reported as paid. Nothing here is real money: a sandbox Tenancy owes nobody, and every call is safe to repeat. The walk stays in one shell. If a term in it is new, Concepts defines it, and no definition is repeated here.

Prerequisites

Two things exist before the first call, and the walk creates everything else. What each kind permits is on Sandbox and live. The objects the calls create are defined on Concepts, and no field table is reproduced here. Every call goes to https://api.capcells.com, which stops before /v1. Snippets read two shell variables: $TENANT_ID names your Tenancy, and $CAPCELLS_API_KEY carries the key, presented as a bearer token.

Issue a Loan

Four calls turn terms into an agreement on record.
1

Create the configuration

Create the terms you sell. The frame of the instalment Archetype decides which fields values must carry, and refuses any field it does not admit by name.
Create the configuration
Response
The answer is 201: version is 1, and id is the value an issuance names as its configuration_id.
2

Register the Client

Register the identifier the Loan will name. A Client carries an identifier, an optional label and nothing else. A field for a name, a birth date or a document is refused by name.
Register the Client
Response
The answer is 201, and the issuance body names this id as its client_id.
3

Preview the Loan

Quote the agreement before recording it. A preview reads the body an issuance takes, without its reference, and records nothing. The wire form of every value is on Model.Every figure here comes from one Loan: MXN 8,000.00 over 12 Periods at "45.5" per year, anchored 2026-03-02 in MX. It runs on the configuration above, under its actual_360 day count. Its penalty_rate is "60", and tax runs at 16% on interest, fee, penalty and late fee.
Preview the Loan
Response
Nine of the twelve period rows are cut above; disclosure.figure carries the CAT, and nothing was recorded. The quoted payment of 90066 (MXN 900.66) rounds down to a whole centavo; the final Period’s 90078 absorbs the 12-centavo residual.
4

Issue the Loan

Issue under the same body, now carrying its reference: your own identifier for this agreement, unique within the Tenancy.
Issue the Loan
Response
The answer is 201 and state answers active; the body continues with the recorded events and the preview’s document, priced once at issuance. A retry carrying the same reference and the same statements answers 200 and this same Loan.
Preview and issue read one body. A preview ignores reference and records nothing; an issuance retried under its reference answers 200 with the Loan on file, not a second Loan.

Report the money

You hold the funds: money is reported as a Receipt against the Client, and every figure after it is derived.
1

Report the Receipt

Report the first instalment as it arrives. Period 1 is scheduled on 2026-04-02, a non-working day in MX, so collection moved to 2026-04-06, the value date the borrower pays on.
Report the Receipt
Response
The answer is 201, settled is the whole 90066, and excess is zero. Inside Period 1 the money ran fee, then interest, then principal, each charge with its tax beside it. The cut receipt block echoes the report, with the Platform’s id and reported_at added.
2

Read the payment options

Ask what the Client owes, as of a date you name: the Platform supplies no today, and a read without on is refused 422. The route answers per Loan: what is overdue, the next instalment, the payoff, and what an unnamed amount would do.
Read the payment options
Response
The two cut charges arrays split each total by fee, interest and principal, as on the Receipt above. overdue.total is zero, and instalment names Period 2, due 2026-05-04, at the same 90066. payoff.owed.total answers 787367 (MXN 7,873.67) for 2026-04-13: a payoff is stated by payoff_intent on its Receipt, never inferred from the amount.