Skip to content

Funding models

Every payout comes from money that is already in place. Your account uses one of three models (or per-ticket rate prefunding, further down), and GET /v1/tenant/capabilities tells you which (funding.model).

Prefunded Daily close Own account
funding.model prefunded daily_settlement own_account
When you put the money in Before paying out At the next day’s close Beforehand: you exchange dollars in your account
Where it is In our custody, in your name We advance it (a credit line) In your own account on the payment network
If it runs short 422 insufficient_tenant_funds 422 credit_limit_exceeded, only if your line has a ceiling The payment is rejected: your real balance rules
The figure you watch prefundingBalance in GET /v1/treasury/position creditDrawn in GET /v1/treasury/position GET /v1/treasury/inventory
The rate on your quotes The platform’s The platform’s Your selling rate for the day
What we charge A fee per payment A fee per payment A weekly fee on what was sold

You transfer bolívares to us and they are held in your name. Each payout deducts them on the spot; if they are not enough, the payout does not go out (insufficient_tenant_funds, with meta.required and meta.available). We record the funding when we see your transfer: the API does not let a key fund itself.

You pay out against a credit line: we put up the money and you settle what went out the next day. creditDrawn is what you owe us right now. If your line has a ceiling (funding.creditLimit), going over it makes the payout respond credit_limit_exceeded. See Settlement and daily close.

Your money is in your account on the payment network, not in ours. What decides whether a payment goes out is your real balance in that account. Your quotes use your selling rate for the day (sellRates[].isToday warns you if you set it on another day). See Sell dollars at your rate.

funding.model: rate_locked_prefunding. You prefund in USDT and each top-up is a ticket with its rate locked for 30 minutes. First, you register the wallets you are going to send from (POST /v1/prefondeos/wallets-origen): only USDT coming from one of your active source wallets is credited, self-custodied and never from an exchange; our team approves each registration. Then you quote (POST /v1/prefondeos), send the USDT from that wallet to the ticket’s wallet, notify us with the hash and our team (two people) loads the Bs. Your payouts spend the tickets from oldest to newest, with no per-payment fee (it is in the rate). The figure you watch: the saldoBs of your tickets in GET /v1/prefondeos. You only see the ticket’s wallet with your sk_live_ key.

Your test account has no wallet: your prefunding already comes loaded. When you receive your test key you have a ticket with Bs 38,000.00 simulated (1,000 USDT at 38.00) in GET /v1/prefondeos; quote payout_bs and pay out. Do not send USDT in testing. After 30 days its balance is closed out to zero (prefondeo.vencido with simulado: true).

It does not coexist with the daily close: to turn it on, your credit line has to be off and without debt, and your rate-less prefunding at 0. We coordinate it with you before turning it on; while the model is active, the line is not turned back on.

Your test account (environment: sandbox) has the same model your live one will have, with simulated money: POST /v1/test-helpers/seed leaves Bs 1,000,000.00 simulated if it is prefunded, or a sample selling rate if it is an own account. With per-ticket prefunding, your test prefunding already comes loaded (no wallet).

With an own account, seed also leaves Bs 1,000,000.00 in your inventory if it is at zero, and POST /v1/test-helpers/fundings records more USD to Bs exchanges. Payments respond submitted and settle by themselves in about 20 s, with the payment network’s fee and the USD 500 cap per operation, as in production. See Test environment.

Watch out for an sk_test_ key from your live account: it does not go out to any real beneficiary, but it shares your account’s accounting, so it spends your prefunding or draws on your line just like a live key. To test, use the test account.