Skip to main content

Send a transfer with idempotent retries

Handle transient failures without accidentally double-sending.

Wait for a transfer to settle

Polling is simpler; webhooks scale. Use webhooks past the prototype stage.

Batch payroll (100+ transfers)

The batch returns a batch_id; individual items each settle independently. Partial failures don’t sink the whole batch.

Full refund with audit trail

Always include reasonDetails — it becomes your dispute defense if the buyer chargebacks later.

Partial refund with running total

Multiple partial refunds per transfer are allowed as long as the cumulative total stays ≤ the original amount:

Export transfers to CSV

Dashboard has a one-click export; the programmatic path:
For ad-hoc exports < 10k rows, the dashboard’s CSV download is faster. API exports win past that scale.

Schedule a recurring transfer

Monthly payroll on the 1st at 9am ET:
See scheduled transfers for full frequency options.

Watch for stuck transfers

Run this in a cron or cron-equivalent (Vercel Cron, GitHub Actions) every 5-10 min. Stuck transfers past their typical settlement window usually indicate rail issues.

See also