Recipients (third-party payments)
Pay out to bank accounts and wallets that belong to your customers, not you.
Most withdrawals send funds to your own bank or wallet. But you may also need to pay out to a third party — a customer, vendor, or counterparty. In Blacksheep these are modelled as recipient external accounts: external accounts that belong to a different person or entity than the account holder.
When to use this
- Marketplaces paying sellers
- Payroll / contractor disbursements
- Refunds to a customer's chosen account
- Any disbursement flow where the destination is not your treasury
Creating a recipient
Recipients are created as external accounts with the third party's details. Use the dashboard or the (session-authenticated) creation endpoints to add them. Each recipient external account has:
- The third party's details —
account_nameand routing details for banks,addressfor wallets - A
type— the account kind (BANK_ACCOUNTorWEB3), with the payment rail inmetadata.type(e.g.AUD_NPP,evm) - An
idyou pass asexternal_account_idwhen paying out
Paying out to a recipient
Identical to any other withdrawal — pass the recipient's external_account_id:
POST /transaction.submitWithdraw
Content-Type: application/json
{
"external_account_id": "b21189d4-e549-4d77-b76b-85bfbb45d42d",
"currency_out": { "value": "75000", "code": "AUD", "decimals": 2 },
"metadata": { "description": "Invoice INV-99" }
}The metadata field accepts a single free-text description (the allowlist is strict — other keys are rejected). Use it to carry a short correlation note between the Blacksheep transaction and the underlying obligation.
Compliance considerations
Third-party payouts may invoke additional checks (KYB on the recipient, sanctions screening, transaction monitoring). Failed checks surface as FAILED transactions — handle these in your UI so the operator can take corrective action.
Audit-relevant fields on every recipient transaction:
external_account_metadata— a snapshot of the destination's details (e.g.account_name) at time of payout- the
metadata.descriptionyou attached
These appear on transaction.get and on transaction.created / transaction.updated webhook payloads.