Skerry/ Reference/ Paying out

Send money to a payee, a wallet or an address

post/payouts

Send money to a payee, a wallet or an address. Needs an Idempotency-Key. amount is a decimal string in from.currency; amount_minor is the same amount as integer minor units, and either may be sent. A bank payout may name a rail or a speed (fastest, cheapest, standard); otherwise the rail is chosen and returned with the reason. quote_id executes exactly what was quoted. execute_at, schedule or release_on create a scheduled payout instead of sending now. An outside address is checked for its chain's format and for the coin being on that chain (Base when no chain is named). travel_rule carries originator and beneficiary details for an outside address; it is passed on and not kept. The answer carries amount_minor, fee_minor and authorisation.

Before you call

Credential
Authorization: Bearer $KEY
Scope
payouts:write
Moves money
yes
Idempotency
required
Untrusted
reference, external_ref, remittance, hold.reason

Parameters

  • Idempotency-Keystringrequired
    Header. A repeat with the same key and body returns the first answer instead of acting twice.

Request bodyapplication/json, required

  • customer_idstringrequired
    At most 200 characters.
  • amountstring
    The amount as a decimal string in from.currency. Send this or amount_minor. Pattern: ^\d{1,18}(.\d{1,10})?$.
  • amount_minorinteger
    The same amount in integer minor units of from.currency. At least 1.
  • fromobjectrequired
    • currencystringrequired
      A lowercase currency code or stablecoin ticker.
    • wallet_idstringrequired
      At most 200 characters.
  • toobjectrequired
    Exactly one of payee_id, wallet_id or address.
    • currencystringrequired
      A lowercase currency code or stablecoin ticker.
    • payee_idstring
      At most 200 characters.
    • wallet_idstring
      At most 200 characters.
    • addressstring
      At most 200 characters.
    • chainstring
      At most 40 characters.
  • railstring
    At most 40 characters.
  • speedstring
    One of: fastest, cheapest, standard.
  • quote_idstring
    Executes exactly what was quoted, once. At most 200 characters.
  • execute_atstring (date-time)
  • scheduleobject
    • everyintegerrequired
      At least 1.
    • unitstringrequired
      One of: day, week, month.
    • end_atstring (date-time)
    • countinteger
      At least 1.
  • release_onstring or object
  • expires_atstring (date-time)
  • travel_ruleobject
    • originatorobject
    • beneficiaryobject
  • referencestring
    At most 500 characters.
  • external_refstring
    The document this belongs to in your own system. At most 200 characters.
  • external_kindstring
    One of: invoice, bill, order, booking, other.
  • remittanceobject
    • invoice_numberstring
      At most 200 characters.
    • amountstring
      At most 40 characters.
    • datestring
      At most 40 characters.
  • dry_runboolean
    Check the request and report what would happen, without doing it.

Responses

  • 200
    Success.
  • 202
    requires_approval — Not an error: the operation is held for a person. The body names the approval.
  • 400
    price_below_minimum — The price is below the smallest single payment for a method (detail.method, detail.minimum), or has a part of a cent. Set credit_only, raise the price, or drop the method.
  • 401
    dpop_invalid — The token is bound to a key and the DPoP proof was missing, wrong for this request, or already used.
  • 402
    payment_failed — The payer's bank or card refused. detail.reason says why in plain terms.
  • 403
    agent_payment_over_max — The merchant asks for more than max_amount. Nothing was signed. detail.asked_minor is the lowest price asked, in US cents.
  • 404
    not_found — No such object in this project — including one that belongs to somebody else.
  • 409
    token_not_issued — A delegated payment token could not be issued ready to use, for instance because the payer would have to act. Nothing was sent to the merchant.
  • 429
    too_many_waiters — This key already has as many requests waiting (?wait=) as it may. Let one finish, or read without wait.
  • 500
    internal_error — Ours. Quote the request_id and we can find the call.
  • 502
    platform_error — A provider failed. Safe to retry with the same Idempotency-Key.
  • 503
    oauth_unavailable — The authorisation server's keys could not be read, so tokens cannot be checked. API keys still work.

This page as Markdown