Only this pageAll pages
Powered by GitBook
1 of 36

Payswiftly API

Loading...

Loading...

Loading...

Payout API

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Overview

The Payswiftly Payout API enables businesses to manage automated financial transactions by integrating key payout processes. Here’s a more detailed guide on how to utilize the API:

  1. Authentication: Each request requires an API key for authorization. You will receive this from your account manager.

  2. Create Receivers: Begin by using the Create New Receiver endpoint to create a new receiver profile. This requires the receiver's personal details, such as name, email, and phone number.

  3. Add Bank Accounts: After creating a receiver, associate a receiving account with them using the the appropriate Add Receiver Account endpoint. You'll need the bank details like the account number and branch information.

  4. Initiate Payouts: Once the receiver and their bank account are set up, initiate a payout using the Create a Payout Transaction endpoint. Specify the receiver's ID and the amount to transfer.

  5. Track Transactions: To monitor the status of payouts, you can use the Get Payout endpoint to check if the payout was successful, pending, or failed.

  6. Webhooks: To handle event-driven updates, such as successful payouts or errors, provide your systems webhook url to your Account Manager. Webhooks will notify your system when an event occurs, enabling real-time tracking.

  7. Error Handling: Every API response includes status codes. The documentation lists possible errors, like invalid parameters or authentication failures, and provides guidance on troubleshooting.

Example Workflow:

  • Authenticate using your API key.

  • Create a receiver with their details.

  • Attach a receiver account to the receiver.

  • Execute the payout.

  • Monitor the payout status.

  • Use webhooks for real-time event notifications.

Authentication

API request must be authorized. This is achieved by including an "x-api-key" and a "signature" in the request headers. The API key is used to identify the SubAccount, while the signature provides a layer of security to verify the request's authenticity.

These are encoded as HTTP headers named

  • x-api-key (Your API key)

  • signature (Signature created using your API secret)

Example

Header
Data

Javascript Example

x-api-key

A24b4fSJ8SKhowxlY

signature

1712042205773.da41de13228cafdef8189df03c946a7e2184ce5afbe610753397a869367efcc6

const CryptoJS = require("crypto-js");
const axios = require("axios");

const apiDomain = "{{API_DOMAIN}}";
const api_key = "{{API_KEY}}";
const api_secret = "{{API_SECRET}}";

async function sendRequest () {
    const apiPath = "/api/payout/single";
    const httpMethod = "POST";

    let nonce = new Date().getTime();
    const signedPayload = `${nonce}.${api_key}`;
    const expectedSignature = CryptoJS.HmacSHA256(signedPayload, api_secret).toString();
    let sig = nonce + "." + expectedSignature;

    try {

        const data = {
            receiver_id: "a0bb742e-2b17-4698-be2d-3226c64aec03",
            account_id: "6dea4c0d-7825-4636-a0b0-c4895d451244",
            amount: 2121,
            currency: "AUD",
            reference: "ref2121",
            note: "Payout for Mike 2121"
        };

        const resp = await axios(`${apiDomain}${apiPath}`, {
            method: httpMethod,
            headers: {
                "x-api-key": api_key,
                "signature": sig,
            },
            data: data
        });

        console.log("Result: ", resp.data);

    } catch (error) {
        console.log("error", error.response.data);
    }
}

sendRequest();

International

Receiver

United States of America (USD)

Add Receiver Account

Europe (EUR)

New Zealand (NZD)

Canada (CAD)

Payout

Balance

Direct Credit

Create a new receiver account for receiverDirect Credit

NZD Direct Credit Payments will be available 10/04/2025. Please speak with your account manager for more information.

Create a New Direct Credit Receiver Account

POST /api/receiver-account/nzd/direct-credit

Headers

Name
Value

x-api-key

<token>

signature

<token>

Body

Name
Type
Description

receiver_id*

string

Receiver ID of receiver account.

account_number*

string

In format of BBBBBB-AAAAAAA-SSS * *

* is mandatory parameter * * BBBBBB = Bank & branch code (6 digits) , AAAAAAA = Account number (7 digits), SSS = Suffix (2-3 digits)

Example body request

{
    "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
    "account_number": "123456-0789123-00"
}

Response

{
    "message": "Receiver account created successfully",
    "payload": {
        "receiver_account_id": "c7ded40b-1524-49f4-ae3f-ee974cbe6fdd",
        "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
        "status": "pending",
        "confirm_status": "unconfirmed"
    }
}
{
    "message": "There was an error while creating a receiver account",
    "error": [
        {
            "code": "REAC211",
            "message": "Receiver ID is not valid"
        }
    ]
}

EFT

Create a receiver account for paying an EFT CAD Payment

Create a New EFT Receiver Account

POST /api/receiver-account/cad/eft

Headers

Name
Value

x-api-key

<token>

signature

<token>

Body

Name
Type
Description

receiver_id*

string

Receiver ID of receiver account.

routing_number*

string

Routing Number of the Receiver's bank account

account_number*

integer

Account Number of the Receiver's bank account

account_type*

string

"checking" or "savings" only

* is mandatory parameter

Example body request

{
    "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
    "routing_number": "12345-001", // Format: 5-digit transit number + dash + 3-digit institution number
    "account_number": "123456789", // Typically 7–12 digits
    "account_type": "checking" // Can be either "checking" or "savings"
}

Response

{
    "message": "Receiver account created successfully",
    "payload": {
        "receiver_account_id": "c7ded40b-1524-49f4-ae3f-ee974cbe6fdd",
        "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
        "status": "pending",
        "confirm_status": "unconfirmed"
    }
}
{
    "message": "There was an error while creating a receiver account",
    "error": [
        {
            "code": "REAC211",
            "message": "Receiver ID is not valid"
        }
    ]
}

Digital Payment

Create a receiver account for paying a Digital CAD Payment

Create a New Digital Receiver Account

POST /api/receiver-account/cad/digital

Headers

Name
Value

x-api-key

<token>

signature

<token>

Body

Name
Type
Description

receiver_id*

string

Receiver ID of receiver account.

recipient*

email

Email address of recipient.

name*

string

Name of recipient.

description

string

Optional description for receiver account.

* is mandatory parameter

Example body request

{
    "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
    "recipient": "[email protected]",
    "name": "John Doe Inc."
}

Response

{
    "message": "Receiver account created successfully",
    "payload": {
        "receiver_account_id": "c7ded40b-1524-49f4-ae3f-ee974cbe6fdd",
        "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
        "status": "pending",
        "confirm_status": "unconfirmed"
    }
}
{
    "message": "There was an error while creating a receiver account",
    "error": [
        {
            "code": "REAC211",
            "message": "Receiver ID is not valid"
        }
    ]
}

SEPA

Create a new receiver account for receiver

Create a New Direct Entry Receiver Account

POST /api/receiver-account/eur/sepa

Headers

Name
Value

x-api-key

<token>

signature

<token>

Body

Name
Type
Description

receiver_id*

string

Receiver ID of receiver account.

iban*

string

IBAN of receiver account.

bic*

string

BIC/SWIFT Code of receiver account.

* is mandatory parameter

Example body request

{
    "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
    "iban": "DE89370400440532013000",
    "bic": "DEUTDEFFXXX"
}

Response

{
    "message": "Receiver account created successfully",
    "payload": {
        "receiver_account_id": "c7ded40b-1524-49f4-ae3f-ee974cbe6fdd",
        "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
        "status": "pending",
        "confirm_status": "unconfirmed"
    }
}
{
    "message": "There was an error while creating a receiver account",
    "error": [
        {
            "code": "REAC211",
            "message": "Receiver ID is not valid"
        }
    ]
}

Batch

KYC Verification for Payout

After successfully creating a new receiver using the Create New Receiver API, the system will automatically send a KYC Verification for Payments email to the email address provided in the request.

What Happens Next?

  1. Email Notification: The receiver will receive an email containing a secure link to complete their KYC (Know Your Customer) verification.

  2. Identity Confirmation: The receiver must click the link in the email to confirm their personal details.

  3. Document Upload: As part of the verification process, the receiver will be required to upload the necessary identification documents.

  4. Verification Review: Once the receiver submits their details and documents, the system will review them for compliance before Subaccount can create payout for them.

Important Notes:

• The verification link is time-sensitive and will expire after a set period.

• If the receiver does not complete the KYC verification, their account KYC status will remain pending for payouts until verification is completed.

• If the receiver does not receive the email, they should check their spam folder or request a new verification email.

Webhook Notification: receiverKycUpdate

Once the receiver successfully completes their KYC verification, the system will trigger a receiverKycUpdate webhook notification. This allows Subaccount to be notified in real time when a receiver is fully verified and eligible for payouts.

Virtual Card

Create a new receiver account for receiver

International Virtual Card Payments will be available 20/04/2025. Please speak with your account manager for more information.

Create and Issue Virtual Card Receiver Account

POST /api/receiver-account/<currency>/virtual-card

Supported Currencies: USD, EUR Country Exclusions: OFAC Listed Countries

Headers

Name
Value

x-api-key

<token>

signature

<token>

Body

Name
Type
Description

receiver_id*

string

Receiver ID of receiver account.

* is mandatory parameter

Example body request

{
    "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75"
}

Response

{
    "message": "Receiver account created successfully",
    "payload": {
        "receiver_account_id": "c7ded40b-1524-49f4-ae3f-ee974cbe6fdd",
        "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
        "status": "complete",
        "confirm_status": "confirmed",
        "card_type": "mastercard",
        "card_no": "4111111111111111",
        "cvv": "321",
        "expiry_month": "04", // MM
        "expiry_year": "2027" // YYYY
    }
}
{
    "message": "There was an error while creating a receiver account",
    "error": [
        {
            "code": "REAC211",
            "message": "Receiver ID is not valid"
        }
    ]
}

Sandbox Test Helper

Utils API for Sandbox testing

Sandbox Update a Payout status

This API is used in the Sandbox environment to manually update the status of a payout or batch for testing. Before using it, ensure that payouts with a new receiver account have completed the account confirmation process. Otherwise, status updates will fail with a "Batch payout not found" error.

POST /api/test-helpers/status

Headers

Name
Value

Body

Name
Type
Description

* is mandatory parameter

Example body request

Response

ACH

Create a receiver account for paying an ACH USD Payment

Create a New ACH Receiver Account

POST /api/receiver-account/usd/ach

Headers

Name
Value

Body

Name
Type
Description

* is mandatory parameter

Example body request

Response

Get Current Account

Get SubAccount

GET /api/subaccount/<subaccount_id>

Get data of subaccount user.

Headers

Name
Value

Example query parameter request

Response

x-api-key

<token>

signature

<token>

id*

string

Payout ID or Batch ID to update status.

type*

string

Type to update.

payout to make update a payout

or batch to make update all payout in batch.

status*

string

Status of payout to update. success or fail

{
    "id": "c111f9ee-5a42-496c-94ad-9645ebd2004b", // payout_id or batch_id
    "type": "payout", // payout or batch
    "status": "success" // success or fail
}
{
    "statusCode": 200,
    "message": "Test helper: Update payout status is successful"
}

x-api-key

<token>

signature

<token>

receiver_id*

string

Receiver ID of receiver account.

routing_number*

string

Routing Number of the Receiver's bank account

account_number*

integer

Account Number of the Receiver's bank account

account_type*

string

"checking" or "savings" only

{
    "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
    "routing_number": "111000025", // Format: 9 Digits
    "account_number": "000123456789", // Typically 6-17 Digits
    "account_type": "checking" // Can be either "checking" or "savings"
}
{
    "message": "Receiver account created successfully",
    "payload": {
        "receiver_account_id": "c7ded40b-1524-49f4-ae3f-ee974cbe6fdd",
        "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
        "status": "pending",
        "confirm_status": "unconfirmed"
    }
}
{
    "message": "There was an error while creating a receiver account",
    "error": [
        {
            "code": "REAC211",
            "message": "Receiver ID is not valid"
        }
    ]
}
Apple Wallet Supported

Create a Payout Transaction

Create a Payout

Create a Payout

POST /api/payout/single

Headers

Name
Value

x-api-key

<token>

signature

<token>

Body

Name
Type
Description

receiver_id*

string

Receiver ID to make payout.

account_id*

string

Account ID to make payout.

amount*

string

Amount ID to make payout in Cent.

currency*

string

Currency ID to make payout.

reference

string

Reference of payout.

note

string

Note of payout.

* is mandatory parameter

Example body request

{
    "receiver_id": "f85cbb74-6af7-43cb-b0a2-b5e5b9838de6",
    "account_id": "ad5ac900-ac63-4e60-894b-1de10f04f876",
    "amount": 2000, // cent
    "currency": "AUD",
    "reference": "ref-16aud",
    "note": "Payout for Frank"
}

Response

{
    "message": "Payout created successfully",
    "payload": {
        "payout_id": "44389fbd-5931-431a-bcac-cfb73ccc6494"
    }
}
{
    "message": "There was an error while creating a payout",
    "error": [
        {
            "code": "PAYO201",
            "message": "Receiver not found"
        }
    ]
}

Webhooks

Account Notifications

Account Webhook Structure Data Type: JSON

The webhook payload is delivered in JSON format, a structured data format commonly used for APIs. Each payload includes:

Variable

Type

Description

event

String

The event will following current progress of this account.

bsb

String

BSB number for this account.

account_number

String

Account number for this account.

receiver_id

String

Unique ID of the updated account owner.

receiver_account_id

String

Unique ID of the updated account.

status

String

Status of the current account.

confirm_status

String

Confirm status of the current account from receiver.

timestamp

Integer

Unix timestamp of the event.

Account Notification Event

Event
Description

accountCreated

Indicates that a new account has been successfully created.

accountUpdate

Indicates that an existing account has been updated.

Account Notification Status

Status
Description

unconfirmed

Receiver has not yet confirmed the bank details sent for payout via email/ SMS.

confirmed

Receiver has confirmed the bank details sent for payout via email or SMS.

Example

{
    "event": "accountCreated",
    "bsb": "***003",
    "account_number": "****2179",
    "receiver_id": "3971f24a-b901-4bdb-b3a5-7690ca350cd3",
    "receiver_account_id": "6afec8ad-c026-463b-9f09-f60adfae10a0",
    "status": "completed",
    "confirm_status": "unconfirmed",
    "timestamp": 1710091428000
}

Direct Entry

Create a new receiver account for receiver

Create a New Direct Entry Receiver Account

POST /api/receiver-account/aud/direct-entry

Headers

Name
Value

x-api-key

<token>

signature

<token>

Body

Name
Type
Description

receiver_id*

string

Receiver ID of receiver account.

bsb*

string

BSB of receiver account.

account_number*

string

Account number of receiver account.

* is mandatory parameter

Example body request

{
    "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
    "bsb": "012002",
    "account_number": "111136"
}

Response

{
    "message": "Receiver account created successfully",
    "payload": {
        "receiver_account_id": "c7ded40b-1524-49f4-ae3f-ee974cbe6fdd",
        "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
        "status": "pending",
        "confirm_status": "unconfirmed"
    }
}
{
    "message": "There was an error while creating a receiver account",
    "error": [
        {
            "code": "REAC211",
            "message": "Receiver ID is not valid"
        }
    ]
}

x-api-key

<token>

signature

<token>

/api/subaccount/3dc81811-8cdb-49c6-8f9e-9125ea4540b0
{
    "message": "Get SubAccount failed",
    "error": [
        {
            "code": "SUBA101",
            "message": "SubAccount not found"
        }
    ]
}

Webhooks

Payout Notifications

Payout webhooks notify your system of important payout events, such as when a payout is successfully processed or if it fails. This allows for real-time updates, ensuring your system remains synchronized with transaction statuses.

Payout Webhook Structure Data Type: JSON

The webhook payload is delivered in JSON format, a structured data format commonly used for APIs. Each payload includes:

Payout Notification Event

Event
Description

Payout Notification Status

Status
Description

Example

Webhooks

Batch Notifications

Batch Webhook Structure Data Type: JSON

The webhook payload is delivered in JSON format, a structured data format commonly used for APIs. Each payload includes:

Variable
Type
Description

Batch Notification Event

Event
Description

Batch Notification Status

Status
Description

Example

Webhooks

Receiver Notifications

Receiver webhooks provide notifications for events related to receivers, after a receiver is created notifications relating to the receiver and their KYC progress will be sent to your nominated URL. These webhooks ensure that your system stays updated with any changes to receiver information.

Receiver Webhook Structure Data Type: JSON

The webhook payload is delivered in JSON format, a structured data format commonly used for APIs. Each payload includes:

Account Notification Event

Event
Description

Receiver Notification Status

Status
Description

Example

Variable

Type

Description

event

String

The event will following current progress of this payout.

amount

Integer

Payout amount in cent.

currency

String

Currency of this payout.

payout_id

String

Unique ID of the updated payout.

batch_id

String

(Optional) Unique ID of the updated payout's batch.

batch_run_time

Integer

(Optional) Unix timestamp of the batch running time.

receiver_account_id

String

Unique ID of the updated payout's receiver account.

receiver_id

String

Unique ID of the updated payout's receiver.

reference

String

Reference of this payout.

status

String

Status of the current payout progress.

subccount_id

String

Unique ID of the updated payout's subaccount.

timestamp

Integer

Unix timestamp of the event.

payoutCreated

Indicates that a new payout has been created.

payoutUpdated

Indicates that an existing payout has been updated.

payoutFailure

Indicates that a payout attempt has failed.

awaiting

Payout is waiting for the receiver to confirm their bank details.

pending

Payout in pending for processing time.

in_progress

Payout is currently in progress.

successful

Payout has been successfully completed.

cancelled

Payout has been cancelled.

failed

Payout process has been failed.

{
    "event": "payoutUpdate",
    "amount": 2000,
    "currency": "AUD",
    "payout_id": "3971f24a-b901-4bdb-b3a5-7690ca350cd3",
    "batch_id": "b4ac0283-354c-4008-9b25-0338198b6fa0",
    "batch_run_time": 1710282140000,
    "receiver_account_id": "6afec8ad-c026-463b-9f09-f60adfae10a0",
    "receiver_id":"e4908c83-6656-408a-8ba2-61dae8f039a5",
    "reference": "ref-a00020",
    "status": "successful",
    "subccount_id": "ccb93d70-00d0-4ec4-a454-32bfc8e8428f",
    "timestamp": 1710091428000
}

event

String

The event will following current progress of this batch.

amount

Integer

Batch total amount in cent.

currency

String

Currency of this batch.

batch_id

String

Unique ID of the updated batch.

status

String

Status of the current batch progress.

batch_run_time

Integer

Unix timestamp of the batch running time.

batch_reference

String

Reference of this batch.

process_amount

Integer

Actual batch total amount in cent when batch processed.

total_failed

Integer

Total of failed payout records.

total_tx

Integer

Total of payout records.

subccount_id

String

Unique ID of the updated batch's subaccount.

created_at

Integer

Unix timestamp when batch record created.

timestamp

Integer

Unix timestamp of the event.

batchUpdate

Indicates that batch have been updated in a single operation.

open

Batch is in the open for new created payout.

queue

Batch is in the queue, waiting to be processed.

in_progress

Batch is currently in progress.

settled

Batch has been successfully settled.

cancelled

Batch has been cancelled.

failed

Batch process has failed.

{
    "event": "batchUpdate",
    "amount": 2440,
    "currency": "AUD",
    "batch_id": "13b2bbf5-fc4e-4882-8dfc-04d760b4d60b",
    "status": "queue",
    "batch_run_time": 1724965200000,
    "batch_reference": "BATCH_13b2bbf5-fc4e-4882-8dfc-04d760b4d60b",
    "process_amount": 0,
    "total_failed": 0,
    "total_tx": 1,
    "subccount_id": "3dc81811-8cdb-49c6-8f9e-9125ea4540b0",
    "created_at": 1710084228000,
    "timestamp": 1710091428000
}

Variable

Type

Description

event

String

The event will following current progress of this receiver.

receiver_id

String

Unique ID of the updated receiver.

subaccount_id

String

Unique ID of the updated receiver's subaccount.

kyc_status

String

Status of the current KYC progress.

timestamp

Integer

Unix timestamp of the event.

receiverKycUpdate

Indicates that the recipient's KYC (Know Your Customer) status has been updated.

pending

Customer has been sent the request to complete their KYC.

completed

Customer has successfully completed their KYC verification and can now receive payouts.

failed

Customer has failed their KYC verification. If you believe this to be an error please contact your Payswiftly Account Manager.

{
    "event": "receiverKycUpdate",
    "receiver_id": "e4908c83-6656-408a-8ba2-61dae8f039a5",
    "subccount_id": "ccb93d70-00d0-4ec4-a454-32bfc8e8428f",
    "kyc_status": "completed",    
    "timestamp": 1710091428000
}

Get Receiver Bank Account

Get Receiver Account By ID

GET /api/receiver-account/<id>

Get receiver account data under subaccount by ID.

Headers

Name
Value

x-api-key

<token>

signature

<token>

Example request

/api/receiver-account/6dea4c0d-7825-4636-a0b0-c4895d451244

Response

{
    "message": "Receiver found",
    "payload": {
        "id": "6dea4c0d-7825-4636-a0b0-c4895d451244",
        "first_name": "Nademoa",
        "last_name": "Tesla",
        "email": "[email protected]",
        "dob": "1973-12-12",
        "gender": "M",
        "aka": "",
        "occupation": "",
        "reference": "4464",
        "mobile_international_dialcode": "61",
        "mobile": "483908899",
        "home_phone_international_dialcode": "",
        "home_phone": "",
        "individual_or_business": "I",
        "abn": "",
        "nzbn": "",
        "acn": "",
        "kyc_status": "completed",
        "address_data": {
            "address": "111/22222",
            "address2": "Paklok Rd",
            "city": "Phuket",
            "state": "PK",
            "country": "THA",
            "postcode": "83110"
        },
        "bank_account_data": {
            "account_number": "111136",
            "bank_code": "ANZ",
            "bsb": "012002"
        },
        "account_data": {
            "receiver_accepted": true,
            "receiver_address_accepted": true,
            "receiver_address_outcome": null
        }
    },
}
{
    "message": "Get receiver account failed",
    "error": [
        {
            "code": "REAC104",
            "message": "Receiver ID not found"
        }
    ]
}

Get Receiver Account List From Receiver

GET /api/receiver-account/receiver/<id>

Get receiver account from receiver.

Headers

Name
Value

x-api-key

<token>

signature

<token>

Example request

/api/receiver-account/receiver/a6980641-e785-447a-960d-036bd29c5ece

Response

{
    "message": "Receiver Account found",
    "payload": [
        {
            "id": "6dea4c0d-7825-4636-a0b0-c4895d451244",
            "first_name": "Nademoa",
            "last_name": "Tesla",
            "email": "[email protected]",
            "dob": "1973-12-12",
            "gender": "M",
            "aka": "",
            "occupation": "",
            "reference": "4464",
            "mobile_international_dialcode": "61",
            "mobile": "483908899",
            "home_phone_international_dialcode": "",
            "home_phone": "",
            "individual_or_business": "I",
            "abn": "",
            "nzbn": "",
            "acn": "",
            "kyc_status": "completed",
            "address_data": {
                "address": "111/22222",
                "address2": "Paklok Rd",
                "city": "Phuket",
                "state": "PK",
                "country": "THA",
                "postcode": "83110"
            },
            "bank_account_data": {
                "account_number": "111136",
                "bank_code": "ANZ",
                "bsb": "012002"
            },
            "account_data": {
                "receiver_accepted": true,
                "receiver_address_accepted": true,
                "receiver_address_outcome": null
            }
        },
        {
            "id": "e5b088e1-cf4a-4e91-bb65-3c7e07b9b314",
            "first_name": "Alexa",
            "last_name": "Riverstone",
            "email": "[email protected]",
            "dob": "1984-05-23",
            "gender": "F",
            "aka": "",
            "occupation": "",
            "reference": "5589",
            "mobile_international_dialcode": "44",
            "mobile": "7700986543",
            "home_phone_international_dialcode": "",
            "home_phone": "",
            "individual_or_business": "I",
            "abn": "",
            "nzbn": "",
            "acn": "",
            "kyc_status": "completed",
            "address_data": {
                "address": "88/99999",
                "address2": "Evergreen Terrace",
                "city": "Springfield",
                "state": "SP",
                "country": "USA",
                "postcode": "49007"
            },
            "bank_account_data": {
                "account_number": "224455",
                "bank_code": "ANZ",
                "bsb": "031200"
            },
            "account_data": {
                "receiver_accepted": true,
                "receiver_address_accepted": true,
                "receiver_address_outcome": null
            }
        }
    ]
}
{
    "message": "Get receiver account failed",
    "error": [
        {
            "code": "REAC101",
            "message": "Receiver Account ID not found"
        }
    ]
}
{
    "message": "Subaccount found",
    "payload":
        {
            "id": "fa9c386d-5dce-4b81-a50d-769386360aff",
            "merchant_id": "df28d384-6a44-47aa-887d-5a2560fc697d",
            "suba_name": "Sandbox subaccount",
            "title": "Mr.",
            "first_name": "Sandbox",
            "last_name": "Teslastudio",
            "email": "[email protected]",
            "dob": "1989-10-20",
            "kassi_status": "ACCEPTED",
            "business_name": "Teslastudio Demo A",
            "business_or_individual": "B",
            "support_email": "[email protected]",
            "mobile_dialcode": "+61",
            "mobile": "483908899",
            "home_phone_international_dialcode": "+61",
            "home_telephone": "434343434",
            "address_data": {
                "address": "443 Sri Ayudhya Road",
                "suburb": "Bangkok",
                "state": "Ratchathewi",
                "country": "THA",
                "postcode": "10400"
            },
            "has_passed_kyc": "N/A",
            "kyc_status": "pending",
            "postback_url": "https://eobmbgwd9o1xe0t.m.pipedream.net",
            "sms_provider": "cellcast",
            "email_provider": "sendgrid",
            "created_at": "1707799593596"
        }
}

Error Codes

Receiver

Code
Status

REVR101

Receiver ID not found

REVR102

Receiver ID is required

REVR103

Receiver ID is invalid

REVR104

Subaccount ID not found

REVR105

Receiver ID not found

REVR201

Email already exist

REVR202

Subaccount Id is required

REVR203

Email is required

REVR204

First name is required

REVR205

Last name is required

REVR206

Dialcode is required

REVR207

Phone is required

REVR208

Address is required

REVR210

City is required

REVR211

State is required

REVR212

Postcode is required

REVR213

Country is required

REVR214

Email is not valid

REVR215

First name can only contain letters, spaces, apostrophes and hyphens

REVR216

Last name can only contain letters, spaces, apostrophes and hyphens

REVR217

Gender must match 'F' or 'M'

REVR218

Dialcode is not valid

REVR219

Phone is not valid

REVR220

Address is not valid. Must not contain dot.

REVR221

Address 2 is not valid. Must not contain dot.

REVR222

City is not valid

REVR223

State is not valid

REVR224

Postcode is not valid

REVR225

Country is not valid. Use alpha-3 code

REVR226

Reference already exist

REVR227

Subaccount does not exist

REVR228

Subaccount does not belong to current merchant

REVR229

Address is invalid

Receiver Account

Code
Status

REAC101

Receiver Account ID not found

REAC102

Receiver Account ID is required

REAC103

Receiver Account ID is invalid

REAC104

Receiver ID not found

REAC105

Receiver Account ID is required

REAC106

Receiver Account ID is invalid

REAC201

Address is invalid

REAC202

Bank code is required

REAC203

Account number must be a string

REAC204

Bank code is not valid

REAC205

Account number length must be between 6 and 9 characters

REAC206

account_number already exist for this subaccount

REAC207

Receiver ID is required

REAC208

Account type is required

REAC209

BSB is required

REAC210

Account number is required

REAC211

Receiver ID is not valid

REAC212

Account type is not valid

REAC213

BSB is not valid

REAC214

Account number must be within 6 to 9 digits

REAC215

Subaccount method is unavailable

REAC216

Create receiver account failed

REAC217

Receiver Account data is not valid

REAC218

Payout Provider not found

REAC219

Receiver Sub Account not found

REAC220

Receiver country is not support

REAC221

Method is unavailable

REAC222

Unsupported classfile

Payout

Code
Status

PAYO101

Payout ID not found

PAYO102

Subaccount id not found

PAYO103

Merchant ID not match

PAYO104

Subaccount ID is required

PAYO201

Receiver not found

PAYO202

Merchant not found in receiver

PAYO203

Merchant id not match

PAYO204

Receiver Account not found

PAYO205

Receiver KYC status not completed

PAYO206

Method is unavailable

PAYO208

Payout amount must larger than <amount> <asset>

PAYO210

Receiver ID is required

PAYO211

Account ID is required

PAYO212

Amount is required

PAYO213

Currency is required

PAYO214

Amount should be in cent (integer)

PAYO215

Currency is not valid

PAYO216

Reference can only be 18 characters long

PAYO217

Payout provider not found

PAYO218

Subaccount feegroup not valid

PAYO219

Payout amount must less than <max_fee _amount> <currency>

Get Receiver

Get Receiver By ID

GET /api/receiver/<id>

Get a receiver data under subaccount by ID.

Headers

Name
Value

Example request

Response

Get Receiver list

GET /api/receiver

Get receiver list under subaccount.

Headers

Name
Value

Request query parameter

Name
Type
Description

* is mandatory parameter

Example query parameter request

Response

x-api-key

<token>

signature

<token>

/api/receiver/8ae6b25e-d08f-4391-84ae-fa7bd061b9ee
{
    "message": "Get receiver failed",
    "error": [
        {
            "code": "REVR101",
            "message": "Receiver ID not found"
        }
    ]
}

x-api-key

<token>

signature

<token>

subaccount_id*

string

Subaccount ID

limit

string

Limit of request data.

status

string

Filter by receiver status. 0 = CREATING 1 = PENDING 2 = ACTIVE 3 = INACTIVE 4 = FAILED

kyc_status

string

Filter by receiver KYC status. 0 = PENDING 1 = COMPLETED 2 = FAILED

first_name

string

Filter by first name

last_name

string

Filter by last name

middle_name

string

Filter by middle name

gender

string

Filter by gender M = Male F = Female

dob

string

Filter by date of birth format 'YYYY-MM-DD'

email

string

Filter by email

dialcode

string

Filter by dial code

phone

string

Filter by phone number

address

string

Filter by address

address2

string

Filter by address2

city

string

Filter by city

state

string

Filter by state

country

string

Filter by country in alpha-3 codes AUS

postcode

string

Filter by postcode

reference

string

Filter by receiver reference

lastkey

string

Lastkey to get next page of request data list

/api/receiver?subaccount_id=3dc81811-8cdb-49c6-8f9e-9125ea4540b0&status=2&kyc_status=1&limit=2
{
    "message": "Receiver found",
    "payload": [
        {
          {
            "id": "7e4b88bf-9b99-4d3e-8a93-dc5e91b6ce2c",
            "first_name": "Marina",
            "last_name": "Quartz",
            "middle_name": "",
            "email": "[email protected]",
            "gender": "F",
            "dob": "1986-07-24",
            "dialcode": "44",
            "phone": "7712345678",
            "kyc_status": "pending",
            "status": "pending",
            "created_at": "1710023456789",
            "address_data": {
                "address": "111/22222",
                "address2": "Paklok Rd",
                "state": "PK",
                "city": "Phuket",
                "country": "THA",
                "postcode": "83110"
            },
            "reference": "ref-marina-1"
        },
        {
            "id": "9b3773e1-cb8e-4b9a-bc68-4e5011b8d30f",
            "first_name": "Leonardo",
            "last_name": "Fibonacci",
            "middle_name": "",
            "email": "[email protected]",
            "gender": "M",
            "dob": "1990-03-14",
            "dialcode": "39",
            "phone": "4881234567",
            "kyc_status": "pending",
            "status": "pending",
            "created_at": "1710112233445",
            "address_data": {
                "address": "55/66666",
                "address2": "Renaissance Road",
                "state": "RR",
                "city": "Florence",
                "country": "ITA",
                "postcode": "50125"
            },
            "reference": "ref-leonardo-1"
        }
    ],
    "lastkey": "eyJlbnRpdHkiOiJSRVZSIyIsIlBLIjoiUkVWUiMyZTg1MGY1ZS1iMzQ2LTRlOWEtYjhkNi1hYWVjMzE5YTkwOWQiLCJTSyI6IlNVQkEjM2RjODE4MTEtOGNkYi00OWM2LThmOWUtOTEyNWVhNDU0MGIwIiwiY3JlYXRlZF9hdCI6IjE3MTk5ODAzOTM4MTYifQ=="
}
{
    "message": "Receiver found",
    "payload": {
        "id": "8ae6b25e-d08f-4391-84ae-fa7bd061b9ee",
        "first_name": "Xcel",
        "last_name": "Tesla",
        "middle_name": "",
        "email": "[email protected]",
        "gender": "M",
        "dob": "1973-12-12",
        "dialcode": "61",
        "phone": "483908899",
        "applicant_id": "65f272e2341af77124132294",
        "kyc_status": "pending",
        "status": "pending",
        "created_at": "1710387933592",
        "address_data": {
            "address": "992A Stanley St E",
            "address2": "",
            "city": "East Brisbane",
            "state": "QLD",
            "country": "AUS",
            "postcode": "6008"
        },
        "reference": "ref-xcel"
    }
}

Australia (AUD)

Account

Get Account Balance

Get SubAccount Balance

GET /api/subaccount/balance/<subaccount_id>

Get asset balance of currently subaccount user.

Headers

Name
Value

x-api-key

<token>

signature

<token>

Request query parameter

Name
Type
Description

asset*

string

Asset to get balance

* is mandatory parameter

Example query parameter request

/api/subaccount/balance/3dc81811-8cdb-49c6-8f9e-9125ea4540b0?asset=aud

Response

{
    "message": "balance found",
    "payload": {
        "available": 958638,
        "pending": 17526,
        "asset": "AUD"
    }
}
{
    "message": "Get balance failed",
    "error": [
        {
            "code": "SUBA304",
            "message": "Asset is not valid"
        }
    ]
}

Create New Receiver

Create a new receiver under a SubAccount for receiving the payout.

Create a New Receiver

POST /api/receiver

Headers

Name
Value

x-api-key

<token>

signature

<token>

Body

Name
Type
Description

subaccount_id*

string

Subaccount ID of the receiver user.

first_name*

string

First Name of the receiver user.

last_name*

string

Last Name of the receiver the user.

middle_name

string

Middle Name of the receiver the user.

email*

string

Email of the receiver the user.

dob*

string

Date of Birth of the receiver the user. In the format of YYYY-MM-DD

dialcode*

string

Country Dial Code of the receiver the user. (for example, 61, 353 , and so on)

phone*

string

Phone of the receiver the user.

address*

string

Address of the receiver the user.

address2

string

Additional information related to the street.

gender

string

Gender of the receiver the user.

city*

string

City, town, or another settlement.

state*

string

State, region, district, county or another territorial entity inside a country.

postcode*

string

Address postal code.

country*

string

Alpha-3 country code (for example, DEU, GBR, ARG, and so on).

reference

string

Your reference for the receiver. This is usually a unique ID in your system.

* is mandatory parameter

Example body request

{
    "subaccount_id": "3dc81811-8cdb-49c6-8f9e-9b25ea4544b7"
    "first_name": "David",
    "last_name": "Lahm",
    "middle_name": "Robert",
    "email":"[email protected]",
    "dob": "1990-03-21",
    "dialcode": "61",
    "phone": "213094857",
    "address": "122 Grenfell St",
    "gender": "M",
    "city": "Adelaide",
    "state": "SA",
    "postcode": "5000",
    "country": "AUS",
    "reference": "david8740"
}

Response

{
    "message": "Receiver created successfully",
    "payload": {
        "receiver_id": "d81b714c-a082-431a-8935-d0c67ad22c2d",
        "first_name": "David",
        "last_name": "Lahm",
        "email": "[email protected]"
    }
}
{
    "message": "There was an error while creating a receiver",
    "error": [
        {
            "code": "REVR201",
            "message": "Email already exist"
        }
    ]
}

Get Payout

Get Payout by ID

GET /api/payout/<id>

Get Payout by ID

Headers

Name
Value

x-api-key

<token>

signature

<token>

Example request

/api/payout/3971f24a-b901-4bdb-b3a5-7690ca350cd3

Response

{
    "message": "Payout found",
    "payload": {
        "id": "3971f24a-b901-4bdb-b3a5-7690ca350cd3",
        "created_at": "1710144053053",
        "provider_reference": "dev-ref-a00020",
        "batch_id": "",
        "asset": "AUD",
        "reference": "dev-ref-a00020",
        "merchant": "MERC#9f05dc98-47bd-47f2-a039-8d9889fdfb7a",
        "fee_data": {
            "fee_value": "200",
            "feetemplate_id": "10543412-9de9-4adb-814c-60fd5ea4aba8",
            "fixed": 0,
            "feegroup_id": "4d8d52ee-47e8-425b-9677-878b127147b9",
            "percentage": 10,
            "min_amount": 20
        },
        "note": "devid a00020",
        "payout_data": {
            "status": "IN PROGRESS",
            "transaction_is_duplicated": false,
            "receiver_is_invalid": false,
            "accepted": true,
            "errors": null,
            "transaction_id": "20020105",
            "sender_is_invalid": false
        },
        "status": "successful",
        "amount": 2000,
        "subaccount": {
            "id": "ccb93d70-00d0-4ec4-a454-32bfc8e8428f"
        },
        "receiver": {
            "id": "e4908c83-6656-408a-8ba2-61dae8f039a5",
            "firstname": "Devid-A",
            "lastname": "Tesla",
            "email": "[email protected]"
        },
        "receiver_account": {
            "id": "6afec8ad-c026-463b-9f09-f60adfae10a0",
            "email": "[email protected]",
            "bsb": "012002",
            "bank_code": "ANZ",
            "account_number": "223344556677"
        },
        "payout_provider": {
            "id": "eb68d16a-d395-4acd-a8bf-d01de92f949b"
        },
        "transactions": [
            {
                "transaction_id": "6af8c51c-e8d6-4ba5-b3d7-c966b9f14fb9",
                "amount": -1800,
                "asset": "AUD",
                "status": "complete",
                "created_at": "1710144077857",
                "updated_at": "1710144379146",
                "transaction_type": "payout"
            },
            {
                "transaction_id": "4eefc21c-286e-48d9-82a8-788bfbd4175f",
                "amount": -200,
                "asset": "AUD",
                "status": "complete",
                "created_at": "1710144077857",
                "updated_at": "1710144379226",
                "transaction_type": "fee"
            }
        ]
    }
}
{
    "message": "Get payout failed",
    "error": [
        {
            "code": "PAYO101",
            "message": "Payout ID not found"
        }
    ]
}

Get Payout list

GET /api/payout/

Get Payout list

Headers

Name
Value

x-api-key

<token>

signature

<token>

Request query parameter

Name
Type
Description

subaccount_id*

string

Subaccount ID

limit

string

Limit of request data.

from

string

Filter by create date from in format 'YYYY-MM-DD hh:mm'.

to

string

Filter by create date to in format 'YYYY-MM-DD hh:mm'.

status

string

Filter by payout status.

0 = AWAITING 1 = PENDING 2 = UNASSESSED 3 = IN_PROGRESS 4 = SUCCESSFUL 5 = CANCELLED 6 = FAILED 7 = SUCCESSFUL_PENDING_KYC

2 * is mandatory parameter

Example query parameter request

/api/payout?subaccount_id=3dc81811-8cdb-49c6-8f9e-9125ea4540b0&from=2024-02-08 09:00&to=2024-03-11 06:21&limit=1

Response

{
    "message": "Payout found",
    "payload": [
        {
        "id": "ce74a54d-cd7d-475b-8213-b70a7a9c47e0",
        "created_at": "1707384569939",
        "provider_reference": "ref-22aud",
        "batch_id": "",
        "asset": "AUD",
        "reference": "ref-22aud",
        "fee_data": {
            "feetemplate_id": "10543412-9de9-4adb-814c-60fd5ea4aba8",
            "fixed": 0,
            "feegroup_id": "4d8d52ee-47e8-425b-9677-878b127147b9",
            "percentage": 10,
            "min_amount": 20
        },
        "note": "22 AUD payout",
        "payout_data": {
            "status": "PENDING",
            "transaction_is_duplicated": false,
            "receiver_is_invalid": false,
            "accepted": true,
            "errors": null,
            "transaction_id": "20019915",
            "sender_is_invalid": false
        },
        "status": "pending",
        "amount": "2200",
        "subaccount": {
            "id": "ccb93d70-00d0-4ec4-a454-32bfc8e8428f"
        },
        "receiver": {
            "id": "617fc7a4-70e2-47d3-a5b0-84a5bc17a4a0",
            "firstname": "Exel",
            "lastname": "Receiver",
            "email": "[email protected]"
        },
        "receiver_account": {
            "id": "fdf427df-1093-4d77-84a7-b08ac67f453f",
            "email": "[email protected]",
            "bsb": "012040",
            "bank_code": "ANZ",
            "account_number": "111111222255"
        },
        "payout_provider": {
            "id": "eb68d16a-d395-4acd-a8bf-d01de92f949b"
        }
    ],
    "lastkey": "eyJlbnRpdHkiOiJQQVlPIyIsIlBLIjoiUEFZTyM2ODNlN2UwMS0yOWI2LTQ4ZDMtOTNlZi1kODIyNzU3ZmIxOWUiLCJTSyI6IlJFVlIjMTkwNjgwZTEtZjRjNC00ZTkwLTkyOTgtODA3M2NlZWY5MmVlIiwiY3JlYXRlZF9hdCI6IjE3MTkzNjU5MTEwMzUifQ=="
}