arrow-left

Only this pageAll pages
gitbookPowered by GitBook
1 of 39

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...

Loading...

Loading...

Loading...

Australia (AUD)

United States of America (USD)

Balance

Sandbox Test Helper

New Zealand (NZD)

Virtual Card

Create a new receiver account for receiver

circle-exclamation

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

hashtag
Create and Issue Virtual Card Receiver Account

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

circle-info

Supported Currencies: USD, EUR Country Exclusions:

Headers

Name
Value

Body

Name
Type
Description

* is mandatory parameter

hashtag
Example body request

Response

Direct Entry

Create a new receiver account for receiver

hashtag
Create a New Direct Entry Receiver Account

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

Headers

Name
Value

Body

Name
Type
Description

* is mandatory parameter

hashtag
Example body request

Response

x-api-key

<token>

signature

<token>

receiver_id*

string

Receiver ID of receiver account.

OFAC Listed Countriesarrow-up-right
Apple Wallet Supported

string

Account number of receiver account.

x-api-key

<token>

signature

<token>

receiver_id*

string

Receiver ID of receiver account.

bsb*

string

BSB of receiver account.

account_number*

{
    "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75"
}
{
    "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"
        }
    ]
}
{
    "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
    "bsb": "012002",
    "account_number": "111136"
}
{
    "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

hashtag
Create a New SEPA Receiver Account

POST /api/receiver-account/eur/sepa

Headers

Name
Value

Body

Name
Type
Description

* is mandatory parameter

hashtag
Example body request

Scenario 1: IBAN only

When only iban is provided, the system automatically extracts and populates bic, bank_country_code, and bank_name from the IBAN.

Scenario 2: IBAN with any optional parameters

When optional parameters are provided, the system uses the supplied values directly and skips auto-fill.

Response

Create a Payout Transaction

Create a Payout

hashtag
Create a Payout

POST /api/payout/single

Headers

Name
Value

Body

Name
Type
Description

* is mandatory parameter

hashtag
Example body request

Response

ACH

Create a receiver account for paying an ACH USD Payment

hashtag
Create a New ACH Receiver Account

POST /api/receiver-account/usd/ach

Headers

Name
Value

Body

Name
Type
Description

* is mandatory parameter

hashtag
Example body request

Response

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:

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

International

Canada (CAD)

string

BIC/SWIFT Code of receiver account.

bank_country_code

string

2-letter ISO country code of the bank (e.g., "DE", "FR", "GB", "IE")

bank_name

string

Name of the receiver's bank

x-api-key

<token>

signature

<token>

receiver_id*

string

Receiver ID of receiver account.

iban*

string

IBAN of receiver account.

bic

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.

x-api-key

<token>

signature

<token>

receiver_id*

string

Receiver ID to make payout.

account_id*

string

Account ID to make payout.

amount*

integer

Account Number of the Receiver's bank account

account_type*

string

"checking" or "savings" only

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*

{
    "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
    "iban": "DE89370400440532013000",
}
{
    "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
    "iban": "DE89370400440532013000",
    "bic": "DEUTDEFFXXX",
    "bank_country_code": "DE",
    "bank_name": "Deutsche Bank"
}
{
    "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"
        }
    ]
}
{
    "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"
}
{
    "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"
        }
    ]
}
{
    "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
    "routing_number": "021000128", // 9 digits and startig with '0'
    "account_number": "123456789", // 9 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"
        }
    ]
}

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.

status

String

The receiver status (e.g., active)

kyc_status

String

The KYC verification status (e.g., pending, completed)

The KYC verification status (e.g., pending, completed)

timestamp

Integer

Unix timestamp of the event.

Receiver Notification Event

Event
Description

receiverCreated

Sent when a new receiver is successfully created and stored in the system.

receiverKycUpdate

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

Receiver Notification Status

Status
Description

creating

Receiver is being created.

pending

Receiver creation is pending.

active

Receiver is active and ready for operations.

Receiver KYC Notification Status

Status
Description

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

Variable

Type

Description

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

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.

Batch Notification Event

Event
Description

batchUpdate

Indicates that batch have been updated in a single operation.

Batch Notification Status

Status
Description

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.

Example

event

String

The event will following current progress of this batch.

{
    "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
}

EFT

Create a receiver account for paying an EFT CAD Payment

hashtag
Create a New EFT Receiver Account

POST /api/receiver-account/cad/eft

Headers

inactive

Receiver is inactive and cannot be used.

failed

Receiver creation failed.

settled

Batch has been successfully settled.

cancelled

Batch has been cancelled.

failed

Batch process has failed.

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

* is mandatory parameter

hashtag
Example body request

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"
        }
    ]
}
{
    "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
    "routing_number": "000102959", // 9 digits and startig with '0'
    "account_number": "123456789", // 9 digits
    "account_type": "checking" // Can be either "checking" or "savings"
}

Get Payout

hashtag
Get Payout by ID

GET /api/payout/<id>

Get Payout by ID

Headers

Name
Value

hashtag
Example request

Response

hashtag
Get Payout list

GET /api/payout/

Get Payout list

Headers

Name
Value

hashtag
Request query parameter

Name
Type
Description

2 * is mandatory parameter

hashtag
Example query parameter request

Response

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:

Variable

Type

Payout Notification Event

Event
Description

Payout Notification Status

Status
Description

Example

Error Codes

hashtag
Receiver

Code
Status

Direct Credit

Create a new receiver account for receiverDirect Credit

circle-exclamation

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

hashtag
Create a New Direct Credit Receiver Account

Digital Payment

Create a receiver account for paying a Digital CAD Payment

hashtag
Create a New Digital Receiver Account

POST /api/receiver-account/cad/digital

Headers

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.

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.

    Webhook Notification: receiverKycUpdatearrow-up-right

    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.

    account_number*

    integer

    Account Number of the Receiver's bank account

    account_type*

    string

    "checking" or "savings" only

    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

    x-api-key

    <token>

    signature

    <token>

    x-api-key

    <token>

    signature

    <token>

    subaccount_id*

    string

    Subaccount ID

    limit

    string

    Limit of request data.

    {
        "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"
                }
            ]
        }
    }

    from

    Payout has been successfully completed.

    cancelled

    Payout has been cancelled.

    failed

    Payout process has been failed.

    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

    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)

    hashtag
    Example body request

    Response

    /api/payout/3971f24a-b901-4bdb-b3a5-7690ca350cd3
    {
        "message": "Get payout failed",
        "error": [
            {
                "code": "PAYO101",
                "message": "Payout ID not found"
            }
        ]
    }
    /api/payout?subaccount_id=3dc81811-8cdb-49c6-8f9e-9125ea4540b0&from=2024-02-08 09:00&to=2024-03-11 06:21&limit=1
    {
        "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=="
    }
    {
        "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
    }
    {
        "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"
            }
        ]
    }
    {
        "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
        "account_number": "123456-0789123-00"
    }

    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

    hashtag
    Receiver Account

    Code
    Status

    REAC101

    Receiver Account ID not found

    REAC102

    Receiver Account ID is required

    REAC103

    Receiver Account ID is invalid

    REAC104

    hashtag
    Payout

    Code
    Status

    PAYO101

    Payout ID not found

    PAYO102

    Subaccount id not found

    PAYO103

    Merchant ID not match

    PAYO104

    REVR101

    Receiver ID not found

    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.

    * is mandatory parameter

    hashtag
    Example body request

    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"
            }
        ]
    }
    {
        "receiver_id": "a2bb66db-7067-44a2-8067-1393b682bc75",
        "recipient": "[email protected]",
        "name": "John Doe Inc."
    }

    Get Current Account

    hashtag
    Get SubAccount

    GET /api/subaccount/<subaccount_id>

    Get data of subaccount user.

    Headers

    Name
    Value

    hashtag
    Example query parameter request

    Response

    Update Payout Status

    Utils API for Sandbox testing

    hashtag
    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

    hashtag
    Example body request

    Response

    Delete Receiver

    Utils API for Sandbox testing

    hashtag
    Sandbox Delete Receiver

    This API is used in the Sandbox environment to manually delete a receiver for testing purposes. This allows you to clean up test data and reuse the same email or reference for creating new receivers.

    POST /api/test-helpers/delete-receiver

    hashtag
    Prerequisites

    Before using this API, ensure that:

    • Receivers with existing receiver accounts cannot be deleted.

    • The receiver belongs to your authenticated subaccount or merchant.

    Headers

    Name
    Value

    Body

    Name
    Type
    Description

    * is mandatory parameter

    hashtag
    Example body request

    Response

    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

    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>

    name*

    string

    Name of recipient.

    description

    string

    Optional description for receiver account.

    x-api-key

    <token>

    signature

    <token>

    {
        "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"
            }
    }

    string

    Status of payout to update. success or fail

    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*

    x-api-key

    <token>

    signature

    <token>

    receiver_id*

    string

    Receiver ID to delete.

    /api/subaccount/3dc81811-8cdb-49c6-8f9e-9125ea4540b0
    {
        "message": "Get SubAccount failed",
        "error": [
            {
                "code": "SUBA101",
                "message": "SubAccount not found"
            }
        ]
    }
    {
        "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"
    }
    {
        "receiver_id": "8d6b0a9a-cd88-4bdc-a6d2-986ab94545cf"
    }
    {
        "statusCode": 200,
        "message": "Receiver deleted successfully"
    }
    { 
        "statusCode": 400, 
        "message": "There was an error while processing test helper", 
        "error": [
            { 
                "code": "TEST003", 
                "message": "Cannot delete receiver with existing receiver accounts" 
            }
        ] 
    }

    Receiver

    Account

    Add Receiver Account

    Get Account Balance

    hashtag
    Get SubAccount Balance

    GET /api/subaccount/balance/<subaccount_id>

    Get asset balance of currently subaccount user.

    Headers

    Name
    Value

    hashtag
    Request query parameter

    Name
    Type
    Description

    * is mandatory parameter

    hashtag
    Example query parameter request

    Response

    x-api-key

    <token>

    signature

    <token>

    asset*

    string

    Asset to get balance

    {
        "message": "balance found",
        "payload": {
            "available": 958638,
            "pending": 17526,
            "asset": "AUD"
        }
    }
    {
        "message": "Get balance failed",
        "error": [
            {
                "code": "SUBA304",
                "message": "Asset is not valid"
            }
        ]
    }
    /api/subaccount/balance/3dc81811-8cdb-49c6-8f9e-9125ea4540b0?asset=aud

    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 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 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.
  • 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.

  • 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.

  • 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.

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

  • hashtag
    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.

    Create New Receiver

    Verify account data

    Get receiver account data verification

    hashtag
    Verify account by account data

    POST /api/receiver-account/verify

    Headers

    Name
    Value

    Body

    Name
    Type
    Description

    * is mandatory parameter

    hashtag
    How Filtering Works

    The account_data fields for verification match the fields used when creating receiver accounts. You can filter by any combination of these fields.

    Approach
    Use Case
    Example

    Examples:

    • Send only bsb → Returns first receiver account with that BSB

    • Send only account_number → Returns first receiver account with that account number

    • Send both bsb + account_number → Returns the exact matching account

    hashtag
    Example body request

    Direct Entry (AUD)

    Field
    Text

    ACH (USD)

    Field
    Text

    EFT (CAD)

    Field
    Text

    SEPA (EUR)

    Field
    Text

    Direct Credit (NZD)

    Field
    Text

    Response

    x-api-key

    <token>

    signature

    <token>

    subaccount_id*

    string

    Subaccount ID of receiver account.

    account_data*

    object

    Account data to retrieve account info.

    Partial match

    Returns the first receiver account that matches

    Exact match

    Returns the specific account matching all fields

    account_number

    Account number

    bsb

    6-digit Bank-State-Branch code

    account_number

    Account number

    routing_number

    9-digit ABA routing number

    account_type

    checking or savings

    account_number

    Bank account number

    routing_number

    9-digit routing number (institution + transit)

    account_type

    checking or savings

    iban

    International Bank Account Number

    bic

    Bank Identifier Code (SWIFT)

    account_number

    NZ account number format: BB-bbbb-AAAAAAA-SS

    { 
        "bsb": "123456" 
    }
    { 
        "bsb": "123456", 
        "account_number": "123456789" 
    }
      {           
        "subaccount_id": "3dc81811-8cdb-49c6-8f9e-9125ea4540b0",                                                                                                                                                           
        "account_data": {                                                                                                                                                    
          "bsb": "123456",                                                                                                                                                   
          "account_number": "123456789"                                                                                                                                      
        }                                                                                                                                                                    
      }   
      {    
        "subaccount_id": "3dc81811-8cdb-49c6-8f9e-9125ea4540b0",                                                                                                                                                                  
        "account_data": {                                                                                                                                                    
          "account_number": "123456789",                                                                                                                                     
          "routing_number": "021000021",                                                                                                                                     
          "account_type": "checking"                                                                                                                                         
        }                                                                                                                                                                    
      } 
      {        
        "subaccount_id": "3dc81811-8cdb-49c6-8f9e-9125ea4540b0",                                                                                                                                                              
        "account_data": {                                                                                                                                                    
          "account_number": "123456119",                                                                                                                                     
          "routing_number": "011401533",                                                                                                                                     
          "account_type": "savings"                                                                                                                                          
        }                                                                                                                                                                    
      } 
     {       
        "subaccount_id": "3dc81811-8cdb-49c6-8f9e-9125ea4540b0",                                                                                                                                                               
        "account_data": {                                                                                                                                                    
          "iban": "DE89370400440532013000",                                                                                                                                  
          "bic": "COBADEFFXXX"                                                                                                                                               
        }                                                                                                                                                                    
      }    
      {         
        "subaccount_id": "3dc81811-8cdb-49c6-8f9e-9125ea4540b0",                                                                                                                                                             
        "account_data": {                                                                                                                                                    
          "account_number": "12-3456-1234567-00"                                                                                                                             
        }                                                                                                                                                                    
      }   
    {
        "exists": true,
        "receiver_id": "b367730a-6837-43e9-9b19-af910f4b8000",
        "account_id": "cdad7781-4169-4129-940d-c15077a46e86",
        "account_data": {
            "bsb": "012 ***",
            "account_number": "111 ***"
        }
    }
    {
        "message": "Missing or invalid subaccount_id or account_data"
    }

    Payout

    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.

    hashtag
    These are encoded as HTTP headers named

    • x-api-key (Your API key)

    • signature (Signature created using your API secret)

    hashtag
    Example

    Header
    Data

    hashtag
    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();

    Europe (EUR)

    Batch

    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

    Account Notification Event

    Event
    Description

    Account Notification Status

    Status
    Description

    Example

    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.

    {
        "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
    }

    Create New Receiver

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

    hashtag
    Create a New Receiver

    POST /api/receiver

    Headers

    Name
    Value

    Body

    Name
    Type
    Description

    * is mandatory parameter

    hashtag
    Example body request

    Response

    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.

    x-api-key

    <token>

    signature

    <token>

    subaccount_id*

    string

    Subaccount ID of the receiver user.

    first_name*

    string

    First Name of the receiver user.

    last_name*

    {
        "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"
    }
    {
        "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 Receiver Bank Account

    hashtag
    Get Receiver Account By ID

    GET /api/receiver-account/<id>

    Get receiver account data under subaccount by ID.

    Headers

    Name
    Value

    hashtag
    Example request

    Response

    hashtag
    Get Receiver Account List From Receiver

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

    Get receiver account from receiver.

    Headers

    Name
    Value

    hashtag
    Example request

    Response

    x-api-key

    <token>

    signature

    <token>

    x-api-key

    <token>

    signature

    <token>

    {
        "message": "Receiver Account found",
        "payload": {
            "id": "6dea4c0d-7825-4636-a0b0-c4895d451244",
            "email": "[email protected]",
            "asset": "AUD",
            "method_name": "direct-entry",
            "reference": "4464",
            "address_data": {
                "address": "111/22222",
                "address2": "Paklok Rd",
                "city": "Phuket",
                "state": "PK",
                "country": "THA",
                "postcode": "83110"
            },
            "account_data": {
                "account_number": "***** 1136",
                "bsb": "*** 002"
            }
        },
    }
    /api/receiver-account/6dea4c0d-7825-4636-a0b0-c4895d451244
    {
        "message": "Get receiver account failed",
        "error": [
            {
                "code": "REAC104",
                "message": "Receiver ID not found"
            }
        ]
    }
    /api/receiver-account/receiver/a6980641-e785-447a-960d-036bd29c5ece
    {
        "message": "Receiver Account found",
        "payload": [
            {
                "id": "6dea4c0d-7825-4636-a0b0-c4895d451244",
                "email": "[email protected]",
                "asset": "AUD",
                "method_name": "direct-entry",
                "reference": "4464",
                "address_data": {
                    "address": "111/22222",
                    "address2": "Paklok Rd",
                    "city": "Phuket",
                    "state": "PK",
                    "country": "THA",
                    "postcode": "83110"
                },
                "account_data": {
                    "account_number": "***** 1136",
                    "bsb": "*** 002"
                }
            },
            {
                "id": "e5b088e1-cf4a-4e91-bb65-3c7e07b9b314",
                "email": "[email protected]",
                "asset": "AUD",
                "method_name": "direct-entry",
                "reference": "5589",
                "address_data": {
                    "address": "88/99999",
                    "address2": "Evergreen Terrace",
                    "city": "Springfield",
                    "state": "SP",
                    "country": "USA",
                    "postcode": "49007"
                },
                "account_data": {
                    "account_number": "***** 4455",
                    "bsb": "*** 200"
                }
            }
        ]
    }
    {
        "message": "Get receiver account failed",
        "error": [
            {
                "code": "REAC101",
                "message": "Receiver Account ID not found"
            }
        ]
    }

    Get Receiver

    hashtag
    Get Receiver By ID

    GET /api/receiver/<id>

    Get a receiver data under subaccount by ID.

    Headers

    Name
    Value

    hashtag
    Example request

    Response

    hashtag
    Get Receiver list

    GET /api/receiver

    Get receiver list under subaccount.

    Headers

    Name
    Value

    hashtag
    Request query parameter

    Name
    Type
    Description

    * is mandatory parameter

    hashtag
    Example query parameter request

    Response

    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>

    x-api-key

    <token>

    signature

    <token>

    subaccount_id*

    string

    Subaccount ID

    limit

    string

    Limit of request data.

    {
        "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"
        }
    }

    status

    /api/receiver/8ae6b25e-d08f-4391-84ae-fa7bd061b9ee
    {
        "message": "Get receiver failed",
        "error": [
            {
                "code": "REVR101",
                "message": "Receiver ID not found"
            }
        ]
    }
    /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=="
    }