Receivers

Create, list, update and remove the individuals and companies you pay, with the fields the server enforces and the update traps

A receiver is the person or company you pay. Bank accounts and beneficiary wallets are attached to a receiver. Receivers are also called beneficiaries.

Receivers belong to your selected organisation. You can create them before your organisation is fully active.

Individual or company

Set type to one of:

TypeName fieldsRules
INDIVIDUALfirstName, lastName, optional middleNamelegalName is rejected
COMPANYlegalNamefirstName and lastName are rejected

Create a receiver

POST /receivers

FieldTypeRequiredNotes
typeINDIVIDUAL or COMPANYYes
firstName, lastNamestringYes for INDIVIDUAL
legalNamestringYes for COMPANY
middleNamestringNoINDIVIDUAL only
emailemailSend it
addressobjectSend itSee below
countryIsoCodeISO 3166-1 alpha-2Send itCheck it against isoCode3166 from GET /countries first
phoneNumberstringNo10 digits, or E.164 such as +5511999998888
dateOfBirthYYYY-MM-DDNoNeeded for BRL bank accounts on an individual
taxIdstringNoBrazil: CPF for an individual, CNPJ for a company. Check digits are validated
nationalityISO 3166-1 alpha-2NoNeeded for BRL bank accounts on an individual

When you create a receiver, the server only enforces type and the name fields. It does not require email, address or countryIsoCode. Send all three anyway: bank accounts and payouts depend on them, and some payout rails reject a receiver without an address.

countryIsoCode trap: on create, a code the server does not know is saved as "no country", without an error. Validate the code against GET /countries before you send it.

The address object

FieldRequiredNotes
addressLine1YesStreet and number
cityYes
postCodeYes
stateBrazil onlyThe two-letter state (UF), for example SP

The country is not part of the address. It is countryIsoCode on the receiver. Other keys in the address are not stored.

{
  "type": "COMPANY",
  "legalName": "Acme Trading Ltd",
  "email": "payments@acme.example",
  "countryIsoCode": "GB",
  "address": {
    "addressLine1": "10 Example Street",
    "city": "London",
    "postCode": "EC1A 1AA"
  }
}

The response is the receiver. Keep its _id: bank accounts, wallets and transactions reference it.

Errors

StatusMessage
400FirstName and LastName are required fields in a receiver of type individual
400LegalName is a required field in a receiver of type company
400Receiver of type company only accepts legalName
400Receiver of type individual only accepts firstName and lastName
400Please use a valid phone number (10 digits, or E.164 format e.g. +5511999998888)
400an invalid taxId, email or nationality

List receivers

GET /receivers/me returns the receivers of your selected organisation. Each result includes its bankAccounts and wallets.

ParameterEffect
limit, offsetPagination. See Setup
searchTermMatches first, last or legal name
paymentTypefiat keeps receivers with at least one bank account. crypto keeps receivers with at least one wallet

Other filters listed in the API reference (organisation, isSelf, isHidden) have no effect on this endpoint. Removed receivers and your organisation's own receiver are never listed.

Get one receiver

GET /receivers/{id} returns the receiver with its bankAccounts and wallets. It returns 404 for a removed receiver, for your organisation's own receiver, and for a receiver outside your organisation.

Update a receiver

PATCH /receivers/{id} takes the same fields as create.

Always send the full receiver, not just the fields you change. Read it with GET /receivers/{id}, change what you need and send every field back.

  • If you leave out countryIsoCode, the receiver's country is cleared.
  • If the receiver has bank accounts, clearing its country, address or email returns 400 Cannot remove previous information from receiver, since it has bank accounts associated.
  • Changing type clears the name fields and date of birth of the other type.
  • An unknown countryIsoCode returns 400 Country IsoCode not supported.

Only an active member of the organisation who is not view-only can update its receivers:

StatusMessage
403Only an active member of the organisation can modify its beneficiaries
403View-only members cannot modify beneficiaries
404This receiver doesn't exist
429More than 20 update calls per hour by the same user

Remove a receiver

DELETE /receivers/{id} hides the receiver. It is not erased.

  • It disappears from GET /receivers/me, and GET /receivers/{id} returns 404.
  • Transactions that already reference it are not affected.
  • The response is the receiver as it was before the call, so it still shows isHidden: false.
  • The same membership rules as update apply, and removals are limited to 20 per hour per user. A missing receiver returns 404 Receiver not found.

Your organisation's own receiver

Skyline creates one receiver that represents your organisation, during onboarding. It is used when funds come back to you, for example in an on-ramp. Read it with GET /receivers/self. It returns 404 Receiver not found if it does not exist yet. It never appears in GET /receivers/me.

What's next

Add a bank account or a wallet to the receiver.

On this page