Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Create a new receiver account for receiver
POST
/api/receiveraccount
Headers
x-api-key
<token>
signature
<token>
Body
receiver_id
*
string
Receiver ID of receiver account.
bsb
*
string
BSB of receiver account.
account_number
*
string
Account number of receiver account.
account_type
*
string
Account Type of receiver account. 'I' is Individual and 'B' is Business
* is mandatory parameter
Response
This API has been DEPRECATED and has an EOL (End-of-life) and will be removed on the 2025-03-31. Please use
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:
Authentication: Each request requires an API key for authorization. Set this up first to gain access to all API endpoints.
Create Receivers: Begin by using the POST /receivers
endpoint to create a new receiver profile. This requires the receiver's personal details, such as name, email, and phone number.
Add Bank Accounts: After creating a receiver, associate a bank account with them using the POST /bank-accounts
endpoint. You'll need the bank details like the account number and branch information.
Initiate Payouts: Once the receiver and their bank account are set up, initiate a payout using the POST /payouts
endpoint. Specify the receiver's ID and the amount to transfer.
Track Transactions: To monitor the status of payouts, you can use the GET /payouts/{payout_id}
endpoint to check if the payout was successful, pending, or failed.
Webhooks: To handle event-driven updates, such as successful payouts or errors, register webhooks with the API. Webhooks will notify your system when an event occurs, enabling real-time tracking.
Error Handling: Every API response includes status codes. The documentation lists possible errors, like invalid parameters or authentication failures, and provides guidance on troubleshooting.
Authenticate using your API key.
Create a receiver with their details.
Attach a bank account to the receiver.
Execute the payout.
Monitor the payout status.
Use webhooks for real-time event notifications.
Create a new receiver under a SubAccount for receiving the payout.
POST
/api/receiver
Headers
x-api-key
<token>
signature
<token>
Body
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
Response
Create a new receiver account for receiver
International Virtual Card Payments will be available 31/03/2025. Please speak with your account manager for more information.
POST
/api/receiver-account/<currency>/virtual-card
Headers
x-api-key
<token>
signature
<token>
Body
receiver_id
*
string
Receiver ID of receiver account.
* is mandatory parameter
Response
Supported Currencies: USD, EUR Country Exclusions:
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?
Email Notification: The receiver will receive an email containing a secure link to complete their KYC (Know Your Customer) verification.
Identity Confirmation: The receiver must click the link in the email to confirm their personal details.
Document Upload: As part of the verification process, the receiver will be required to upload the necessary identification documents.
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.
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.
Webhook Notification:
Create a new receiver account for receiver
POST
/api/receiver-account/aud/direct-entry
Headers
x-api-key
<token>
signature
<token>
Body
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
Response
Create a receiver account for paying a Digital CAD Payment
POST
/api/receiver-account/cad/digital
Headers
x-api-key
<token>
signature
<token>
Body
receiver_id
*
string
Receiver ID of receiver account.
recipient
*
Email address of recipient.
name
*
string
Name of recipient.
description
string
Optional description for receiver account.
* is mandatory parameter
Response
Create a new receiver account for receiverDirect Credit
NZD Direct Credit Payments will be available 31/03/2025. Please speak with your account manager for more information.
POST
/api/receiver-account/nzd/direct-credit
Headers
x-api-key
<token>
signature
<token>
Body
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)
Response
GET
/api/receiver-account/<id>
Get receiver account data under subaccount by ID.
Headers
x-api-key
<token>
signature
<token>
Response
GET
/api/receiver-account/receiver/<id>
Get receiver account from receiver.
Headers
x-api-key
<token>
signature
<token>
Response
Create a receiver account for paying an EFT CAD Payment
POST
/api/receiver-account/cad/eft
Headers
x-api-key
<token>
signature
<token>
Body
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
Response
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
Payout Notification Status
Example
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:
Account Notification Event
Account Notification Status
Example
x-api-key
<token>
signature
<token>
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
x-api-key
<token>
signature
<token>
receiver_id
*
string
Receiver ID of receiver account.
iban
*
string
IBAN of receiver account.
bic
*
string
BIC/SWIFT Code of receiver account.
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
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
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
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>
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.
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.
accountCreated
Indicates that a new account has been successfully created.
accountUpdate
Indicates that an existing account has been updated.
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.
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:
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.
Account Notification Event
receiverKycUpdate
Indicates that the recipient's KYC (Know Your Customer) status has been updated.
Receiver Notification Status
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.
Example
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:
Batch Notification Event
Batch Notification Status
Example
x-api-key
<token>
signature
<token>
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.
Create a Payout
POST
/api/payout/single
Headers
x-api-key
<token>
signature
<token>
Body
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
Response
GET
/api/payout/<id>
Get Payout by ID
Headers
x-api-key
<token>
signature
<token>
Response
GET
/api/payout/
Get Payout list
Headers
x-api-key
<token>
signature
<token>
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
Response
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.
x-api-key (Your API key)
signature (Signature created using your API secret)
x-api-key
A24b4fSJ8SKhowxlY
signature
1712042205773.da41de13228cafdef8189df03c946a7e2184ce5afbe610753397a869367efcc6