API Conventions

Base URL

Your base URL will be provided during onboarding. All endpoints described in this document are relative to that base URL.

Content Type

Use Content-Type: application/json for request bodies unless otherwise specified.

Pagination

All list endpoints use limit/offset pagination.

Parameter Default Description
limit 10 Number of results to return per page.
offset 0 The starting position in the result set.

Example:

GET /remittances/?limit=25&offset=50

Paginated response structure:

{
  "count": 150,
  "next": "https://api.example.com/remittances/?limit=25&offset=75",
  "previous": "https://api.example.com/remittances/?limit=25&offset=25",
  "results": []
}

Remittance API

Create a Remittance

Create a new remittance to send funds to a Purpl user.

POST /remittances/

Request body:

Field Type Required Description
reference_id string Yes Your unique reference ID for this remittance. Max length: 191.
amount decimal Yes Amount to send. Minimum: 10.00. Max 20 digits, 2 decimal places.
currency enum Yes Currency code. Allowed values: USD.
sender_first_name string Yes Sender's first name.
sender_last_name string Yes Sender's last name.
sender_date_of_birth date Yes Sender's date of birth (YYYY-MM-DD).
sender_email string Yes Sender's email address.
sender_city string Yes Sender's city.
sender_country string Yes Sender's country name (e.g., United States). Must be a valid country name.
sender_country_code string Yes Sender's country as ISO 3166-1 alpha-2 code (e.g., US, AE).
sender_relationship_to_receiver enum No Relationship of sender to receiver. Send an OPTIONS request to discover allowed values.
receiver_first_name string Yes Receiver's (beneficiary's) first name. Max length: 191.
receiver_last_name string Yes Receiver's (beneficiary's) last name. Max length: 191.
receiver_phone_number string Yes Receiver's phone number in E.164 format (e.g., +96170123456). Must be a mobile number from a supported country.
receiver_city string No Receiver's city. Max length: 255.
receiver_country string No Receiver's country name. Max length: 255.
receiver_country_code string No Receiver's country as ISO 3166-1 alpha-2 code. Max length: 2.
transfer_purpose enum No Purpose of transfer. Send an OPTIONS request to discover allowed values.
extra_data object No Additional data specific to your integration. Contact Purpl for applicable fields.

Note: At least one of receiver_country or receiver_country_code must be provided.