Skip to content

Sell dollars at your rate

This model is for companies that sell dollars to their customers: the customer pays you in USDT and the beneficiary receives bolívares at their bank. You set the price. We deliver the Bs from your account at our payment partner and charge a weekly fee on what you sold. There is no per-payment fee.

Rate Yours: your selling rate for the day, with no spread from us
Where it is paid from Your account at our payment partner, in bolívares
What we charge A weekly % on what was sold in USD. Nothing per payment
What the partner charges Its fee, in Bs, from that same account of yours. It is not ours

You pay out with the bolívares in your account. For each payment you need the amount plus the partner’s fee. Before sending it we check your real balance: if it is not enough, the payment is rejected and nothing goes out.

You get those bolívares by exchanging dollars in your own account. Each exchange is recorded with its rate, and you can see it in the dashboard, under “Your USD to Bs exchanges”.

  1. Once a day, or every time you change your price:

    Ventana de terminal
    curl -s $BASE/v1/treasury/sell-rate \
    -H "x-api-key: $KEY" -H 'content-type: application/json' \
    -d '{"asset":"USDT","rate":"1010.50"}'
    201 Created
    { "asset": "USDT", "rate": "1010.50000000", "setAt": "2026-10-14T12:00:03.114Z", "isToday": true }

    It is valid until you set another one. If you do not change it the next day, yesterday’s keeps being used: isToday comes back false and the dashboard warns you. You can also set it from the dashboard. With no rate set at all, quoting in USDT returns 422 sell_rate_missing.

  2. The usual approach is to fix the bolívares the beneficiary receives and have us tell you how many USDT to charge your customer:

    Ventana de terminal
    curl -s $BASE/v1/quotes \
    -H "x-api-key: $KEY" -H 'content-type: application/json' \
    -d '{"deliver":{"asset":"BS","amount":123435},"spend":{"asset":"USDT"}}'
    201 Created
    {
    "fixed": "deliver",
    "deliver": { "asset": "BS", "amount": "123435" },
    "spend": { "asset": "USDT", "amount": "1221524" },
    "fee": { "asset": "BS", "amount": "0" },
    "rate": { "value": "1010.5", "market": "1010.5", "spread_bps": 0 }
    }

    The beneficiary receives exactly Bs 1,234.35 and you charge 1.221524 USDT. USDT has 6 decimals, so any amount in bolívares can be reached without rounding. The USDT are rounded up to the micro-USDT: you never sell below your rate.

    If your account does not have the balance for the payment plus the payment network’s fee, the payout responds 201 with status: "failed" and reason: "payout_insufficient_balance", without sending anything.

    You can also fix the USDT your customer pays ({"spend":{"asset":"USDT","amount":100000000},"deliver":{"asset":"BS"}}): 100 USDT at 1,010.50 deliver Bs 101,050.00.

  3. With the quote id, just like any other payout. The payment is stored with the USDT you sold and the rate you sold them at.

It is calculated on what you sold, Monday to Sunday, Venezuela time. Look it up whenever you want:

Ventana de terminal
curl -s "$BASE/v1/treasury/volume?from=2026-10-12&to=2026-10-18" -H "x-api-key: $KEY"

The rules, so you can redo the math with your own records:

  • What counts is what settled. A payment that fails does not count.
  • Each payment is worth what you sold: the exact USDT of its quote. A payment without conversion (Bs → Bs) is worth what those bolívares cost you.
  • Each payment pays the % in force on the day it settled. If the % changes mid-week, the report carries one bracket per % (tiers) and the fee is the sum. A % change never alters a week already reported.
  • A bank return subtracts in the week it happens, at the % it paid.
  • No intermediate rounding. The USDT are added up exactly and the fee for each bracket is rounded only once, to the cent.

Example with a % change mid-week:

Bracket Sold % (example) Fee
Until Wednesday USD 149.662881 1.25% 1.87
From Wednesday USD 109.936934 1.00% 1.10
Week USD 259.599815 2.97

lines lists each payment with its Bs, its USDT, its rate and its %, and adds up exactly to the totals. The dashboard downloads it as CSV with the same figures. The partner’s fee comes separately (networkFeeBs): it is what explains why your balance drops a bit more than what you paid, but it is not a charge from us. In the sandbox the simulated network fee is 0.3% (networkFeeBs); in production the payment network sets it and you get it in the report.

The % we apply to you and since when it applies: GET /v1/treasury/volume-fee.

With the sk_test_ key of your test account you go through all of this without real money: POST /v1/test-helpers/seed leaves a sample USDT rate and Bs 1,000,000.00 in your inventory, and POST /v1/test-helpers/fundings records more exchanges. Each payment stays submitted and settles by itself in about 20 s, lowers your inventory by the amount plus the fee, and shows up in GET /v1/treasury/volume. See Test environment.