Paying an exact amount to the bank
SET Direct Deposit API · Live since 2026-11-09
The problem
SET's fee is the payee's, taken from what you send. If you promised a payee $100.00 and send 100.00 USDC to their Cash-Out Address, the bank receives less: 97.00 on the 3% plan.
Working out the gross amount yourself is easy to get wrong by a cent:
- the fee is rounded to whole cents, half up;
- the bank amount is whole cents;
- dividing 100.00 by 0.97 gives 103.0927…, and rounding it to 103.09 happens to work at 3%, but other percentages and amounts do not always round the right way.
At 3%, 103.08 USDC arrives as 99.99.
The answer: netUsd
Ask for the net instead of the gross:
GET /api/partner/quote?netUsd=100.00Each plan line gives amountUsdc: the least whole-cent amount to send so the bank receives at least netUsd after SET's fee.
| Plan | Fee | amountUsdc for netUsd=100.00 |
|---|---|---|
payg | 3% | 103.09 |
pro | 1.5% | 101.52 |
For one payee, add their address: GET /api/partner/quote?netUsd=100.00&chain=base&address=0x…. The answer then uses that address's own fee and rail.
Rules
- Send
amountUsdcornetUsd, not both. - The minimum is checked on the amount you send.
belowMinimum: truemeans that line would not reach the bank; see Amounts below the minimum. - It is an estimate. The provider's receipt for the payout is final, and
payout.payment_processedcarries what was paid. - SET checked the rule against 1,716 amounts at four fee percentages: each answer is the least amount that reaches the net.
What it is not
The payee still pays the fee. A platform cannot pay SET's fee for a payee instead: each payee has one Cash-Out Address per network and bank, carrying one fee. To make a payee whole, send the netUsd amount.