Treasury

Create a transfer

Changed on

Moves money from your balance to a payee.

Fee

The payee receives the full amountCents. Zernio's fee (4%, 50 cent minimum) is added on top, so your balance is debited totalCents = amountCents + feeCents.

Who can call it

Needs an owner, admin or billing admin, signed in or through a full-access key they created. A profile-scoped key answers 403.

Errors

  • 402: the balance does not cover the amount plus the fee.
  • 402: the balance is negative after a dispute or refund of a card top-up ("Your balance is negative after a dispute or refund of a card top-up. Add funds to cover it before sending transfers.").
  • 409: the payee has not finished onboarding, or the Idempotency-Key is still processing.
  • 409 payout_funds_locked: money from a card top-up can be transferred from 7 days after the charge. The message names the amount and the day ("$100.00 from your card top-up on Oct 29 can be paid out from Nov 5.").

Retries

A same-key retry never makes the transfer twice within Stripe's 24-hour idempotency window. It answers 409 while another request is still waiting on Stripe for it.

A transfer Stripe has not confirmed after 24 hours answers 409 until the daily reconciliation marks it paid (Stripe made it) or failed (it did not).

post/v1/transfers

Request

  • Base URL
    https://zernio.com/api
  • URL
    https://zernio.com/api/v1/transfers
  • Auth
    HTTP bearer

Headers

Idempotency-Keystring

Optional client-generated unique key (e.g. a UUID) that makes retries safe.

  • Same key + same body: replays the original response.
  • Same key + different body: 422.
  • Key still processing: 409.

A request cut off mid-handler (e.g. by a function timeout) can leave its key in progress, answering 409 until the key expires after 24 hours.

Request body

payeeIdstring required

24-character payee id

amountCentsinteger required

Amount the payee receives, in cents. The fee is added on top.

Response

Transfer created

idstring
payeeIdstring

24-character payee id

payeeNamestring nullable

The payee's name when Zernio knows it, for example a creator's display name in one of your creator campaigns; null otherwise

destinationType'creator' | 'ad_account'
amountCentsinteger

Amount the payee receives, in full

feeCentsinteger

Zernio fee added on top, 4% with a 50 cent minimum

totalCentsinteger

Amount debited from your balance: amountCents plus feeCents

currencystring
status'pending' | 'paid' | 'failed' | 'reversed'
failureReasonstring nullable
createdAtstring date-time

Changes