FAQ

How does idempotency work for a mass payout run?

Idempotency in a halfin mass payout is per line, not per batch. Every recipient line you submit to POST /api/v1/payouts carries its own idempotency key, and a mass payout is just that single-payout endpoint called once per recipient. If you derive each key deterministically from your own ledger — say the recipient's account id joined with the payout period — then re-running the same file reproduces the same keys, and halfin returns the payout it already created for each one instead of sending a second transaction. That is what makes a batch safe to retry from the top: a duplicate submission is a no-op, line by line.

related

Keep reading across the cluster.

halfin FAQ — how crypto payments work end to endHow halfin invoicing, checkout, deposit addresses, payouts, conversion, and webhooks work. Browse every question or read the cross-cutting answers.Mass payouts: pay thousands of recipients in one idempotent batchPay thousands of recipients in one idempotent batchAre API keys scoped?Yes. A halfin API key carries only the permissions you grant it, scoped to the operations it needs — a read or invoice key cannot release payouts.Are API requests rate limited?Yes. Public auth endpoints are rate limited per IP and authenticated API-key requests are limited too. Design clients to back off and retry idempotently.Are crypto payments final?Yes — a confirmed on-chain transfer is irreversible and there are no chargebacks. Finality is a property of the chain, which is what makes reconciliation clean.Are there chargebacks with crypto payments?No. A confirmed on-chain payment is final, so there are no card-style forced reversals. A refund is a deliberate action you choose to issue.Are there monthly or setup fees?halfin's commercial pricing is not published on this site yet, so there is no monthly or setup figure to quote here. Building in the sandbox is free.Assets and networks questionsFrequently asked questions drawn from the halfin assets and networks pages. Each one links to a standalone answer.Can a customer pay an invoice late?A deposit that lands after a halfin invoice expires fires invoice.late_deposit — the funds are credited and matched to the invoice, and you decide how to treat the order.Can a customer reuse the same deposit address?Yes. A halfin static deposit address is persistent, so repeat deposits to the same address credit the same customer — no new invoice or address per top-up.Can I auto-convert incoming payments to a stablecoin?Yes. halfin balance conversion can run automatically toward a target asset such as a stablecoin, so incoming payments settle in one currency on credit.Can I bill in fiat and get paid in crypto?Yes. Set amount_fiat and fiat_currency on a halfin invoice; the customer pays the equivalent in any supported asset at the locked rate you bill against.