Contacts

Contacts represent any business or individual with whom you conduct transactions, either by receiving pay-ins from them or making payouts to them.

Every transaction must be associated with a contact ID, which makes creating a contact a mandatory first step.

Contacts created through the portal are assigned the party type EXTERNAL. In addition, each customer automatically has a contact with the party type OWN, which represents the customer themselves. This allows first-party deposits and payouts to be tracked more easily, as they typically require fewer compliance and operational checks.

Each contact also has a type:

  • COMPANY

  • INDIVIDUAL

The required data fields depend on the contact type, and some markets may have additional regulatory requirements.

Get list of contacts linked to the organization

get

Returns all EXTERNAL contacts linked to the organization.

Each contact includes a verificationStatus field that indicates its compliance approval state:

  • VERIFIED – Approved by compliance

  • PENDING – Verification in progress (check for messages from the compliance team)

  • NOT_VERIFIED – Verification has not been started

  • UNVERIFIED – Rejected by compliance

Query parameters
pageinteger · min: 1 · max: 9007199254740991OptionalDefault: 1
pageSizeinteger · max: 100OptionalDefault: 20
includeInactivebooleanOptional
searchstring · max: 255Optional
Responses
chevron-right
200

Default Response

application/json
get
/api/v1/contacts
200

Default Response

Create a new contact

post

To create a contact, you must provide the following basic information:

Required for all contacts

  • Email

  • triggerVerification (boolean)

INDIVIDUAL contacts

  • First name and last name

Address is optional. If you omit it, no country is required.

COMPANY contacts

  • Company name

  • Incorporation date

  • Tax ID

  • Full registered address: street, postal code, city or town, country

Verification process

The triggerVerification flag controls whether an email is sent to the contact with a link to our KYB/KYC onboarding tool.

When enabled, the contact will be asked to provide:

  • Additional personal or business details

  • Required documents

  • Market-specific information

We strongly recommend setting triggerVerification to true to streamline the compliance approval process. If this flag is not enabled, our compliance team may need to request information manually, which can cause delays.

Mandatory verification for certain countries

For INDIVIDUAL contacts residing in the following countries:

  • Kenya

  • Zambia

  • South Africa

  • Nigeria

The triggerVerification flag must be set to true. This is required to collect additional personal data needed for on-ramp operations in these regions.

chevron-right
lockRequired scopes
This endpoint requires the following scopes:
  • : Allows managing the organization's contact book.
Authorizations
OAuth2authorizationCodeRequired
Authorization URL: Token URL:
Body
or
Responses
post
/api/v1/contacts
201

Default Response

Get list of contacts linked to the organization (internal)

get
Query parameters
pageinteger · min: 1 · max: 9007199254740991OptionalDefault: 1
pageSizeinteger · max: 100OptionalDefault: 20
includeInactivebooleanOptional
searchstring · max: 255Optional
Responses
chevron-right
200

Default Response

application/json
get
/api/v1/internal/contacts
200

Default Response

Create a new contact (internal)

post
chevron-right
lockRequired scopes
This endpoint requires the following scopes:
  • : Allows managing the organization's contact book.
Authorizations
OAuth2authorizationCodeRequired
Authorization URL: Token URL:
Body
or
Responses
post
/api/v1/internal/contacts
201

Default Response

Get a contact by ID (internal)

get
Path parameters
contactIdstring · uuidRequiredPattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Responses
chevron-right
200

Default Response

application/json
idstring · uuidRequiredPattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
typestring · enumRequiredPossible values:
verificationStatusstring · enumRequiredPossible values:
emailstring · emailRequiredPattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
displayNameany ofRequired
stringOptional
or
undefined · enum · nullableOptionalPossible values:
descriptionany ofRequired
stringOptional
or
undefined · enum · nullableOptionalPossible values:
dateOfBirthany ofOptional
stringOptional
or
undefined · enum · nullableOptionalPossible values:
registrationNumberany ofOptional
stringOptional
or
undefined · enum · nullableOptionalPossible values:
addressany ofOptional
or
undefined · enum · nullableOptionalPossible values:
deactivatedbooleanRequired
incorporationDateany ofOptional
stringOptional
or
undefined · enum · nullableOptionalPossible values:
taxIdany ofOptional
stringOptional
or
undefined · enum · nullableOptionalPossible values:
phoneany ofOptional
stringOptional
or
undefined · enum · nullableOptionalPossible values:
idNumberany ofOptional
stringOptional
or
undefined · enum · nullableOptionalPossible values:
ninany ofOptional
stringOptional
or
undefined · enum · nullableOptionalPossible values:
bvnany ofOptional
stringOptional
or
undefined · enum · nullableOptionalPossible values:
identityTypestring · enumRequiredPossible values:
dataVerifiedbooleanRequired
get
/api/v1/internal/contacts/{contactId}

Get a contact by ID

get

Returns the full details of a specific contact.

The verificationStatus field indicates its compliance approval state:

  • VERIFIED – Approved by compliance

  • PENDING – Verification in progress (check for messages from the compliance team)

  • NOT_VERIFIED – Verification has not been started

  • UNVERIFIED – Rejected by compliance

Path parameters
contactIdstring · uuidRequiredPattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Responses
chevron-right
200

Default Response

application/json
idstring · uuidRequiredPattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
typestring · enumRequiredPossible values:
verificationStatusstring · enumRequiredPossible values:
emailstring · emailRequiredPattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
displayNameany ofRequired
stringOptional
or
undefined · enum · nullableOptionalPossible values:
descriptionany ofRequired
stringOptional
or
undefined · enum · nullableOptionalPossible values:
dateOfBirthany ofOptional
stringOptional
or
undefined · enum · nullableOptionalPossible values:
registrationNumberany ofOptional
stringOptional
or
undefined · enum · nullableOptionalPossible values:
addressany ofOptional
or
undefined · enum · nullableOptionalPossible values:
deactivatedbooleanRequired
incorporationDateany ofOptional
stringOptional
or
undefined · enum · nullableOptionalPossible values:
taxIdany ofOptional
stringOptional
or
undefined · enum · nullableOptionalPossible values:
phoneany ofOptional
stringOptional
or
undefined · enum · nullableOptionalPossible values:
idNumberany ofOptional
stringOptional
or
undefined · enum · nullableOptionalPossible values:
ninany ofOptional
stringOptional
or
undefined · enum · nullableOptionalPossible values:
bvnany ofOptional
stringOptional
or
undefined · enum · nullableOptionalPossible values:
get
/api/v1/contacts/{contactId}

Update a contact

patch

Automatic updates to contact details are not currently supported via the API.

If you need to change any contact information, please contact our operations team with the requested updates.

Path parameters
contactIdstring · uuidRequiredPattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Responses
patch
/api/v1/contacts/{contactId}
501

Default Response

Get a list of a contact's external accounts

get
Path parameters
contactIdstring · uuidRequiredPattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Query parameters
includeInactivebooleanOptional
Responses
chevron-right
200

Default Response

application/json
get
/api/v1/contacts/{contactId}/external-accounts

Create a contact's external account

post
chevron-right
lockRequired scopes
This endpoint requires the following scopes:
  • : Allows managing the organization's contact book.
Authorizations
OAuth2authorizationCodeRequired
Authorization URL: Token URL:
Path parameters
contactIdstring · uuidRequiredPattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Body
or
Responses
chevron-right
200

Default Response

application/json
stepUpVerificationOperationIdstring · uuidRequiredPattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
post
/api/v1/contacts/{contactId}/external-accounts

Deactivate an external contact

post

Deactivates a contact to prevent accidental transactions in the future.

Path parameters
contactIdstring · uuidRequiredPattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Responses
chevron-right
200

Default Response

application/json
successbooleanRequired
post
/api/v1/contacts/{contactId}/deactivate

Activate an external contact

post

Reactivates a previously deactivated contact.

Path parameters
contactIdstring · uuidRequiredPattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Responses
chevron-right
200

Default Response

application/json
successbooleanRequired
post
/api/v1/contacts/{contactId}/activate

Last updated