Zernio
APIFor you
Zernio
APIFor you
API Reference

Treasury

List payeesGETList top-upsGETList transfersGETCreate a payee onboarding linkPOSTCreate a top-upPOSTCreate a transferPOSTGet balanceGETGet a payout batchGETGet a top-up receiptGETGet a transferGETCancel an unpaid payout batchPOST
Dashboard
OverviewPlatformsAPI ReferenceResources
Treasury

Create a transfer

Moves money from your balance to a payee. 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. Returns 402 when the balance does not cover the amount plus the fee, or when it 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."), and 409 when the payee has not finished onboarding or the Idempotency-Key is still processing. Needs an owner, admin or billing admin, signed in or through a full-access key they created: a profile-scoped key answers 403. A same-key retry never makes the transfer twice within Stripe's 24-hour idempotency window and 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

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.

In: header

Header Parameters

Idempotency-Key?string

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 (for example by a function timeout) can leave its key in progress, answering 409 until the key expires after 24 hours.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.treasury.createTransfer({  body: {    payeeId: 'payee_abc123',    amountCents: 1,  },});console.log(data);
{  "id": "string",  "payeeId": "stringstringstringstring",  "payeeName": "string",  "destinationType": "creator",  "amountCents": 0,  "feeCents": 0,  "totalCents": 0,  "currency": "string",  "reference": {    "type": "string",    "id": "string",    "name": "string"  },  "status": "pending",  "failureReason": "string",  "createdAt": "2019-08-24T14:15:22Z"}
Was this page helpful?

Create a top-up

Starts a Stripe Checkout session to fund your balance by card. Card top-ups pay Stripe's processing fee and become available after 7 days. Bank transfers are not available yet; `method: bank_transfer` returns 400. Needs an owner, admin or billing admin, signed in or through a full-access key they created.

Get balance

Returns the balance you can transfer, card top-ups still on hold, top-ups still waiting for payment, and your latest top-ups. Card top-ups become available after 7 days. A transfer debits its amount plus the fee added on top; the payee receives the full amount. A card dispute or refund on a top-up is debited from the available balance and can make it negative; transfers are refused until it is positive again. A profile-scoped key answers 403, since the balance belongs to the whole team.

payeeId*string

24-character payee id

Length24 <= length <= 24
amountCents*integer

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

Range1 <= value
reference?