Payment API (2.0.0)

Introduction

As a valued client of Paxum , you able to leverage our Payment API to streamline and automate your payment processes. This API is specifically designed to enhance your business efficiency, significantly reducing costs and minimizing the risk of manual errors.

With the Paxum Payment API, you can effortlessly manage a multitude of payment activities. From overseeing account details to processing various types of payments and handling diverse payout methods, all these functionalities are available without the need for manual intervention in the web interface.

For detailed information on specific endpoints and operations of this API, feel free to explore the menu on the left.

Getting Started

Authentication

The Paxum Payment API prioritizes the security of your financial transactions. To authenticate each API request, it's essential to sign them using your assigned API Access Key and API Secret Key. This signature process is not only crucial for verifying your identity with Paxum but also serves as a protective measure against unauthorized access.

We've designed this authentication mechanism to be compatible with a wide array of major programming languages (PHP/JS/Ruby), ensuring you can integrate it smoothly into various technological environments. This flexibility allows you to seamlessly incorporate Paxum's Payment API into your existing infrastructure.

To assist you in this process, we provide a step-by-step example demonstrating how to correctly sign and send a payload. This example, employing commonly used Linux command-line tools like echo, openssl, and curl, is aimed at illustrating an effective method for secure API request authentication.

Example 1

Param Value
Api Key cbKISWlVIoO4xh0SH4noSFrmmY6uwIlqr97IwViMgAo=
Secret Key iFK7L5K06KBlcIRUespQxRCtcxolknTGdHG0e4O31eM=
Request Url /v2/account/590900/transactions?limit=3
 $ echo -n "/v2/account/590900/transactions?limit=3" | openssl dgst -sha256 -hmac "iFK7L5K06KBlcIRUespQxRCtcxolknTGdHG0e4O31eM="
 (stdin)= aa6ecd0b6f5c3f90763a4c068a6d991ddb24f8e667411437761ed81c72da57b8
curl --request GET \
    --header 'X-API-KEY: cbKISWlVIoO4xh0SH4noSFrmmY6uwIlqr97IwViMgAo=' \
    --header 'X-API-SIGNATURE: aa6ecd0b6f5c3f90763a4c068a6d991ddb24f8e667411437761ed81c72da57b8' \
    --url 'https://api.paxum.com/v2/account/590900/transactions?limit=3'

Example 2

Param Value
Api Key cbKISWlVIoO4xh0SH4noSFrmmY6uwIlqr97IwViMgAo=
Secret Key iFK7L5K06KBlcIRUespQxRCtcxolknTGdHG0e4O31eM=
Request Url /v2/account/590900/transfer/p2p
Request Body {"beneficiaryEmail": "test@example.com","amount": 1,"currency": "USD","description": "Service payment"}
 $ echo -n '/v2/account/590900/transfer/p2p{"beneficiaryEmail": "test@example.com","amount": 1,"currency": "USD","description": "Service payment"}' | openssl dgst -sha256 -hmac "iFK7L5K06KBlcIRUespQxRCtcxolknTGdHG0e4O31eM="
 (stdin)= dc7d91c82ab1858dea3d7facc76edb4bf54608d9926f0fbc6bf48b754915c7a5
curl --request POST \
    --header 'Content-Type: application/json' \
    --header 'X-API-KEY: cbKISWlVIoO4xh0SH4noSFrmmY6uwIlqr97IwViMgAo=' \
    --header 'X-API-SIGNATURE: 95bae3952f8e820c5eac9f99958f9af5af8e31cc9e6c746d4899a143b2cabb4a' \
    --url 'https://api.paxum.com/v2/account/590900/transfer/p2p' \
    --data '{"beneficiaryEmail": "test@example.com","amount": 1,"currency": "USD","description": "Service payment"}'

Pagination

To efficiently navigate through large sets of results, the Paxum Payment API implements a pagination technique known as cursoring. This method divides the results into manageable pages, the size of which can be controlled by the limit parameter in your request. Cursoring provides an intuitive way to traverse these pages both forward and backward.

When you make a cursored request, the API response will include several key cursor-related elements: meta.cursor.next, meta.cursor.prev, meta.cursor.current, and meta.cursor.count. These elements are essential for seamless pagination:

  • meta.cursor.next: Use this value as the cursor parameter in your next request to obtain the subsequent batch of results.
  • meta.cursor.prev: This value, when used as the cursor parameter, fetches the previous batch of results.
  • meta.cursor.current: Indicates the current position in the result set.
  • meta.cursor.count: Provides the total number of items in the result set.

By effectively using these cursor values, you can precisely and easily navigate through the data provided by the Paxum Payment API.

Example

curl --get \
    --header 'X-API-KEY: <APIKEY>' \
    --header 'X-API-SIGNATURE: <SIGNATURE>' \
    --url 'https://api.paxum.com/v2/account/12345/transactions'
    --data 'limit=3'
{
    "data": [ ... ],
    "meta": {
        "cursor": {
            "count": 3,
            "current": null,
            "next": "NShQHHfwEB1j",
            "prev": null
        }
    }
}
curl --get \
    --header 'X-API-KEY: <APIKEY>' \
    --header 'X-API-SIGNATURE: <SIGNATURE>' \
    --url 'https://api.paxum.com/v2/account/12345/transactions' \
    --data 'limit=3' \
    --data 'cursor=NShQHHfwEB1j'
{
    "data": [ ... ],
    "meta": {
        "cursor": {
            "count": 3,
            "current": "NShQHHfwEB1j",
            "next": "NSSV7ChtxVjG",
            "prev": "ggAYt3ZM3b2e"
        }
    }
}

Webhooks

Paxum Payment API includes asynchronous operations, such as Customer Verification and Payments. Typically, the results of these operations are not available instantly and require subsequent status checks.

Instead of continuously polling for status updates after initiating an asynchronous method, we offer a more efficient solution: webhooks. By configuring a webhook in the Merchant API settings, you can receive real-time notifications about the completion of your request.

When you set up a webhook, the Paxum Payment API will send an HTTP POST notification to your specified endpoint as soon as the request is completed. This approach not only saves resources but also provides timely updates, enhancing the overall efficiency of your asynchronous operations.

Webhook signatures

The Paxum Payment API signs all webhook events sent to your endpoints with a signature. This feature allows you to verify that the events were sent by Paxum Payment API rather than a third party.

The signature is created using a unique secret key, which is generated for each endpoint separately. We include the signature in the X-SIGNATURE HTTP-header.

Example of Incoming Request

POST / HTTP/1.1
Host: webhook.example.com
Accept: */*
Accept-Encoding: gzip
Content-Length: 176
Content-Type: application/json
X-Signature: 94f797bb7b69ffa426d7fd1285027b38f690bfd4e10ae358d14cf14d27294477

{"requestId":"c26181c6-8e29-42fd-b4e6-ad86e2c92183","status":"COMPLETE","statusCode":"0","statusMessage":null,"payload":{"transactionId":11111111,"status":"VALIDATED","fee":1}}

Signature Verification

echo -n '{"requestId":"c26181c6-8e29-42fd-b4e6-ad86e2c92183","status":"COMPLETE","statusCode":"0","statusMessage":null,"payload":{"transactionId":11111111,"status":"VALIDATED","fee":1}}' | openssl dgst -sha256 -hmac "sRQgK+gJSD4qFsVGct3sYU6kWMnO0OoWLAClzTlz32Y="

(stdin)= 94f797bb7b69ffa426d7fd1285027b38f690bfd4e10ae358d14cf14d27294477

Error codes

Code Description
51 Not Sufficient Funds
52 Single Transaction Limit Amount Exceeded
53 Daily Transaction Limit Amount Exceeded
54 Monthly Transaction Limit Amount Exceeded
56 Daily Transaction Limit Number Exceeded
57 Monthly Transaction Limit Number Exceeded
58 Transaction Not Permitted
59 Daily Transaction Funding Number Exceeded
60 Monthly Transaction Funding Number Exceeded
61 Daily Transaction Funding Number Exceeded
62 Monthly Transaction Funding Number Exceeded
CA Account is closed
UA Unverified Account
NSPC Closed Account
NSPU Unverified Account
LA Account has been limited
NSP Not supported
TT1 The beneficiary account is closed
TT2 The customer has a higher risk rating than your account risk level comfort limit
TT3 The customer has a lower reputation rating than your account reputation level comfort limit
TT4 The customer is in your black list
TT5 You are not allowed to send money to this account
TT6 Funds were not transferred

API Sandbox

Paxum Payment API Sandbox is an essential tool for testing and ensuring a smooth integration before your production launch. This dedicated environment is designed to mimic the behavior of the live API, using test-specific elements and simulated responses based on mock data. It allows you to safely test the functionality of the Payment APIs in real-time scenarios without affecting live data.

The endpoint for accessing the Paxum Payment API Sandbox is sandbox-api.paxum.com. This separate endpoint ensures that all your test transactions remain isolated from your production environment, providing a secure and accurate testing ground for your integration needs.

Testing Customer Lookup method

Email Result
test_user1@example.com Active business customer
test_user2@example.com Active personal customer
test_user3@example.com Inactive business customer
test_user4@example.com Inactive personal customer
All others Customer not found error

Testing Customer Verification method

Email Result
test_user1@example.com All transferred fields are MATCHED
test_user2@example.com All transferred fields are PARTIAL_MATCH or NOT_MATCHED
test_user3@example.com All transferred fields are NOT_MATCHED
test_user4@example.com Request is incomplete
All others Customer not found

Testing Payment method

Payment amount Result
<=100 Successful payment
>100 and <=200 Request is incomplete
>200 and <=300 Single Transaction Limit Amount Exceeded
>300 and <=400 Daily Transaction Limit Amount Exceeded
>400 and <=500 Monthly Transaction Limit Amount Exceeded
>500 Not Sufficient Funds

API Limits

Payment API limits the number of API calls within any given hour. By default maximum API limit in a 1-hour window is 5000 requests. HTTP 429 return code is used when breaking a request rate limit.

API idempotency

The Paxum Payment API supports idempotency for safely retrying requests without accidentally performing the same operation twice.

To perform an idempotent request, simply add the X-Idempotency-Key header to your POST request. The value of X-Idempotency-Key should be a unique identifier for the request, represented as a string not exceeding 64 characters. We recommend using V4 UUID for this purpose.

If you attempt to resend a request with the same X-Idempotency-Key and X-Api-Key combination within 72 hours, the API will ensure that you receive an identical response to that of the original request.

During the validity period, you can only send the same payload with the same idempotency key. If the payload is different, but the idempotency key is the same, you receive an HTTP 409 error

Account Info

Accounts list

The Account List method is a fundamental aspect of Payment API, offering a comprehensive overview of your currency accounts, inclusive of their total, pending, and available balances. This is integral for efficient financial transaction management. An essential attribute of this method is the acquisition of account IDs, which are required for the execution of subsequent payment operations.

path Parameters
id
int

The ID of the Currency Account

Responses

Response Schema: application/json
Array of objects (AccountBalance)

The list of accounts

Array
id
integer

The ID of account

number
string

The account number

type
string|null
Enum: "CURRENT" "SAVINGS" "VISA" "MASTERCARD" "UNIONPAY" "SENDING" "RECEIVING"

The account type

balance
float

The current account balance

availableBalance
float

The available account balance

pendingBalance
float

The pending account balance

currency
string

The currency code

Request samples

curl \
    --header 'X-API-KEY: <APIKEY>' \
    --header 'X-API-SIGNATURE: <SIGNATURE>' \
    --url 'https://api.paxum.com/v2/account'

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Transaction History

This method offers a chronological overview of transactions, sorted by creation date in reverse order. By inputting an Account ID, you receive a detailed list of past transactions. The response includes essential details like transaction amounts, dates, types, and statuses, facilitating in-depth financial analysis and record-keeping.

path Parameters
id
required
int

The ID of the account

query Parameters
fromDate
string <date-time>

Starting date for the transaction list

toDate
string <date-time>

Ending date for the transaction list

reference
string

The payment reference. It can be a transaction ID, a payment ID, a payment reference, or a payment description

keyword
string
transactionType
string

Transaction type (P2P, WIRE, EFT, EXTERNAL_CARD, BETWEEN_ACCOUNTS, PREPAID_CARD_LOAD, REVERSAL, FEE, ATM, POS, REFUND, CHARGEBACK, FACTORING)

limit
int [ 1 .. 1000 ]
Default: 1000

Items per page

cursor
string

Responses

Response Schema: application/json
Array of objects (Transaction)

List of transactions

Array
id
integer

The ID of transaction

amount
float

The amount of transaction

currency
string

The currency code

description
string

The transaction note

reference
string

The internal payer's ID used to recognize the transaction

balance
float

Final balance

transactionType
string
Enum: "P2P" "WIRE" "EFT" "EXTERNAL_CARD" "BETWEEN_ACCOUNTS" "PREPAID_CARD_LOAD" "REVERSAL" "FEE" "ATM" "POS" "REFUND" "CHARGEBACK" "FACTORING"

The type of transaction

documentDate
datetime

The date of transaction

object (MetaPayload)

Response for some queries

current
string
next
string
prev
string
count
integer
Response Schema: application/json
message
string

Request samples

curl --get \
    --header 'X-API-KEY: <APIKEY>' \
    --header 'X-API-SIGNATURE: <SIGNATURE>' \
    --url 'https://api.paxum.com/v2/account/12345/transactions' \
    --data 'fromDate=2020-01-01' \
    --data 'toDate=2020-12-31' \
    --data 'limit=100'

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Dictionary

Country fee info

Get a list of fees for a country

path Parameters
code
required
string
Example: CA

The country code (ISO 3166-1 alpha-2)

query Parameters
amount
required
float
Example: amount=1000

Transaction amount

currencyCode
required
string
Enum: "USD" "EUR" "GBP"
Example: currencyCode=USD

Debit account currency in ISO 4217 format (example: USD)

Responses

Response Schema: application/json
Array of objects

Transaction fees list

Array
type
string

Transfer type

currency
string

Transfer currency in ISO 4217 format (example: CAD)

fee
number <float>

Fee amount

feeCurrency
string

Fee currency in ISO 4217 format (example: USD)

Request samples

curl --get \
    --header 'X-API-KEY: <APIKEY>' \
    --header 'X-API-SIGNATURE: <SIGNATURE>' \
    --url 'https://api.paxum.com/v2/countries/CA/fee'
    --data 'amount=1000'
    --data 'currencyCode=USD'

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Country list

List the available countries

Responses

Response Schema: application/json
Array of objects

List of countries

Array
name
string

Country name

code
string

Country code (ISO 3166-1 alpha-2)

Array of objects

List of available transfer types

Array
type
string

Transfer type

maxTransferAmount
number <float>

Maximum transfer amount

currency
string

Currency code

Request samples

curl \
    --header 'X-API-KEY: <APIKEY>' \
    --header 'X-API-SIGNATURE: <SIGNATURE>' \
    --url 'https://api.paxum.com/v2/countries'

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Customer Verification

Customer lookup

Checking if the customer exists

query Parameters
email
string

Email of the customer to verify.

Responses

Response Schema: application/json
object (CustomerLookup)

Customer info

email
string

Customer email

accountType
string
Enum: "personal" "business"

The type of account

accountStatus
string
Enum: "active" "inactive"

The account status

Response Schema: application/json
message
string

Request samples

curl --get \
    --header 'X-API-KEY: <APIKEY>' \
    --header 'X-API-SIGNATURE: <SIGNATURE>' \
    --url 'https://api.paxum.com/v2/customer/lookup'
    --data 'email=test@example.com'

Response samples

Content type
application/json
{
  • "data": {
    }
}

Customer identity verification request

Customer Identity Verification. Note that this is a paid service, and $1 fee will be charged from your account. Method is used to verify the identity of customer between your sources and our customer records. ID of the fee transaction can be retrieved via the Customer Verification Status endpoint.

Request Body schema: application/json
email
required
string

Customer email

firstName
string

Customer first name

lastName
string

Customer last name

businessName
string

Customer business name

birthDate
string

Customer date of birth in YYYY-MM-DD format

businessRegistrationNumber
string

Customer business registration number

address
string

Customer address

city
string

Customer city

stateCode
string

Customer state code (ISO 3166-2)

countryCode
string

Customer country code (ISO 3166-1 alpha-2)

Responses

Response Schema: application/json
object (ApiRequestReference)

Request reference

requestId
string

Request ID

Request samples

Content type
application/json
{
  • "email": "test@example.com",
  • "firstName": "Jane",
  • "lastName": "Doe",
  • "businessName": null,
  • "birthDate": "1989-11-12",
  • "businessRegistrationNumber": null,
  • "address": null,
  • "city": null,
  • "stateCode": null,
  • "countryCode": null
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Customer verification status

Get customer identity verification status

path Parameters
uuid
required
string
Example: cda1ac04-4c8c-4cbc-a6b0-7d8c0bb4265c

The ID of the verification request

Responses

Response Schema: application/json
object
object (CustomerVerificationResult)
email
string
Enum: "NOT_FOUND" "MATCHED"

Email verification status

firstName
string
Enum: "NOT_CHECKED" "MATCHED" "PARTIAL_MATCH" "NOT_MATCHED"

First name verification status

lastName
string
Enum: "NOT_CHECKED" "MATCHED" "PARTIAL_MATCH" "NOT_MATCHED"

Last name verification status

businessName
string
Enum: "NOT_CHECKED" "MATCHED" "PARTIAL_MATCH" "NOT_MATCHED"

Business name verification status

businessRegisrationNumber
string
Enum: "NOT_CHECKED" "MATCHED" "NOT_MATCHED"

Business registration number verification status

birthDate
string
Enum: "NOT_CHECKED" "MATCHED" "NOT_MATCHED"

Birth date verification status

address
string
Enum: "NOT_CHECKED" "MATCHED" "PARTIAL_MATCH" "NOT_MATCHED"

Address verification status

city
string
Enum: "NOT_CHECKED" "MATCHED" "NOT_MATCHED"

City verification status

state
string
Enum: "NOT_CHECKED" "NOT_FOUND" "MATCHED" "NOT_MATCHED"

State verification status

country
string
Enum: "NOT_CHECKED" "NOT_FOUND" "MATCHED" "NOT_MATCHED"

Country verification status

transactionId
int

Transaction id for the fee

requestId
string

The ID of the verification request

status
string
Enum: "AWAIT" "COMPLETE" "FAILED"

The request status

statusCode
integer

The request status code (0 - success)

statusMessage
string

Error description

Response Schema: application/json
message
string

Request samples

curl \
    --header 'X-API-KEY: <APIKEY>' \
    --header 'X-API-SIGNATURE: <SIGNATURE>' \
    --url 'https://api.paxum.com/v2/customer/verification/cda1ac04-4c8c-4cbc-a6b0-7d8c0bb4265c'

Response samples

Content type
application/json
{
  • "data": {
    }
}

Payments

Bank transfer

Transfer funds to external bank account

path Parameters
id
required
int

Account ID

Request Body schema: application/json
transferType
required
string
Enum: "WIRE" "EFT"

Transfer type (WIRE or EFT)

amount
required
float > 0

Transfer amount

currency
required
string

Transfer currency in ISO 4217 format (Example: USD)

description
required
string <= 100 characters

Transaction note, will be passed to correspondent bank

reference
string

Transaction reference, should be used for your internal reference

beneficiaryName
required
string

Beneficiary name

beneficiaryType
required
string
Enum: "PERSONAL" "BUSINESS"

Beneficiary type (PERSONAL or BUSINESS)

beneficiaryAccount
required
string

Beneficiary account number

beneficiaryCountryCode
required
string

Beneficiary country code in ISO 3166-1 alpha-2 format

beneficiaryStateCode
required
string

Beneficiary state code in ISO 3166-1 alpha-2 format

beneficiaryAddress
required
string

Beneficiary address

beneficiaryCity
required
string

Beneficiary city

beneficiaryPostalCode
required
string <= 10 characters

Beneficiary postal code

beneficiaryBankSwiftCode
required
string

Beneficiary's bank SWIFT code

beneficiaryBankName
required
string

Beneficiary's bank name

beneficiaryBankCountryCode
required
string

Beneficiary's bank country code in ISO 3166-1 alpha-2 format

beneficiaryBankStateCode
required
string

Beneficiary's bank state code in ISO 3166-1 alpha-2 format

beneficiaryBankAddress
required
string

Beneficiary's bank address

beneficiaryBankCity
required
string

Beneficiary's bank city

beneficiaryBankPostalCode
required
string <= 10 characters

Beneficiary's bank postal code

correspondentBankSwift
string

Correspondent bank SWIFT code (for WIRE transfers)

correspondentBankAccountNumber
string

Correspondent bank account number (for WIRE transfers)

extraParams
string

Additional parameters required for transfer

Responses

Response Schema: application/json
object (ApiRequestReference)

Request reference

requestId
string

Request ID

Response Schema: application/json
message
string

Request samples

Content type
application/json
{
  • "transferType": "EFT",
  • "amount": 1,
  • "currency": "USD",
  • "description": "Payment for Invoice #1234",
  • "reference": "#555-349-489",
  • "beneficiaryName": "John Doe",
  • "beneficiaryType": "PERSONAL",
  • "beneficiaryAccount": "123123123123",
  • "beneficiaryCountryCode": "US",
  • "beneficiaryStateCode": "NY",
  • "beneficiaryAddress": "1 Main St",
  • "beneficiaryCity": "New York",
  • "beneficiaryPostalCode": "10001",
  • "beneficiaryBankSwiftCode": "BNDCCAMMXXX",
  • "beneficiaryBankName": "National Bank of Canada",
  • "beneficiaryBankCountryCode": "CA",
  • "beneficiaryBankStateCode": "QC",
  • "beneficiaryBankAddress": "DE LA GAUCHETIERE WEST, 600",
  • "beneficiaryBankCity": "MONTREAL",
  • "beneficiaryBankPostalCode": "H3B 4L2",
  • "correspondentBankSwift": "",
  • "correspondentBankAccountNumber": "",
  • "extraParams": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Transfer extra params

Get bank transfer extra params list

query Parameters
transferType
string
Example: transferType=EFT

Transfer type (WIRE or EFT)

beneficiaryType
string
Example: beneficiaryType=PERSONAL

Beneficiary type (PERSONAL or BUSINESS)

currency
string
Example: currency=USD

The currency code (example: USD)

country
string
Example: country=US

The country code (example: US)

Responses

Response Schema: application/json
Array of objects (ExtraParameter)

List of extra params

Array
name
string
label
string
variants
string

Request samples

curl --get \
    --header 'Content-Type: application/json' \
    --header 'X-API-KEY: <APIKEY>' \
    --header 'X-API-SIGNATURE: <SIGNATURE>' \
    --url 'https://api.paxum.com/v2/transfer/extraParams'
    --data 'transferType=EFT' \
    --data 'beneficiaryType=PERSONAL' \
    --data 'currency=CAD' \
    --data 'country=CA'

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Crypto transfer

Transfer funds to crypto wallet

path Parameters
id
required
int

Account ID

Request Body schema: application/json
amount
required
float > 0

Transfer amount

currency
required
string
Enum: "USDT" "USDC"

Currency code (example: USDT)

wallet
required
string

Wallet address. Please make sure to use ERC20 or TRC20 based wallets for USDT & USDC payouts.

description
required
string <= 100 characters

Transaction note, visible to recipient

beneficiaryName
required
string

Beneficiary name

beneficiaryCountryCode
required
string

The beneficiary country code (ISO 3166-1 alpha-2)

Responses

Response Schema: application/json
object (ApiRequestReference)

Request reference

requestId
string

Request ID

Response Schema: application/json
message
string

Request samples

Content type
application/json
{
  • "amount": 1,
  • "currency": "USDT",
  • "wallet": "0xad13ccacb19dd302b78b8bae7fa1ec6fd52baaee",
  • "description": "Payment for invoice #1234",
  • "beneficiaryName": "John Doe",
  • "beneficiaryCountryCode": "CA"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Global transfer

Transfer funds by global pay

path Parameters
id
required
int

Account ID

Request Body schema: application/json
amount
required
float > 0

The amount to be transferred

description
required
string <= 100 characters

The transaction note

beneficiaryEmail
required
string

The beneficiary email

beneficiaryName
required
string

The beneficiary name

beneficiaryType
required
string
Enum: "PERSONAL" "BUSINESS"

The beneficiary type (PERSONAL or BUSINESS)

beneficiaryCountryCode
required
string

The beneficiary country code (ISO 3166-1 alpha-2)

feeShare
required
string
Enum: "OUR" "BEN"

Fee payer indicator

paymentMethods
Array of strings
Items Enum: "EFT" "WIRE" "CRYPTO" "OCT"

Payment methods. Required if feeShare=OUR, otherwise ignored

Responses

Response Schema: application/json
object (ApiRequestReference)

Request reference

requestId
string

Request ID

Response Schema: application/json
message
string

Request samples

Content type
application/json
{
  • "amount": 1,
  • "description": "Description example",
  • "beneficiaryEmail": "test@example.com",
  • "beneficiaryName": "John Doe",
  • "beneficiaryType": "PERSONAL",
  • "beneficiaryCountryCode": "CA",
  • "feeShare": "OUR",
  • "paymentMethods": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

P2P transfer

Transfer funds from one account to another

path Parameters
id
required
int

Account ID

Request Body schema: application/json
fromEmail
string

Payment email

beneficiaryEmail
required
string

Email address of the beneficiary

amount
required
float > 0

Transfer amount

currency
required
string

Transfer currency in ISO 4217 code (example: USD)

description
required
string <= 255 characters

Transaction note, visible to recipient

reference
string

Transaction reference for your reference

Responses

Response Schema: application/json
object (ApiRequestReference)

Request reference

requestId
string

Request ID

Response Schema: application/json
message
string

Request samples

Content type
application/json
{
  • "fromEmail": null,
  • "beneficiaryEmail": "test@example.com",
  • "amount": 1,
  • "currency": "USD",
  • "description": "Payment for invoice #1234",
  • "reference": "#555-349-489"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Transfer status

Get transfer status by request ID

path Parameters
uuid
required
string
Example: cda1ac04-4c8c-4cbc-a6b0-7d8c0bb4265c

The ID of the transfer request

Responses

Response Schema: application/json
object
object
transactionId
integer

Transaction ID

fee
number or null <float>

Transaction Fee. May be null if the fee has not been set yet

status
string or null
Enum: "VALIDATED" "REJECTED" "RETURNED" "PROCESSING" "EXPIRED"

Transaction status

requestId
string

Transfer request ID

status
string
Enum: "AWAIT" "PROCESSING" "COMPLETE" "FAILED"

Request status

statusCode
integer

Request status code (0 - success)

statusMessage
string

Description of the request status or error message

Response Schema: application/json
message
string

Request samples

curl \
    --header 'X-API-KEY: <APIKEY>' \
    --header 'X-API-SIGNATURE: <SIGNATURE>' \
    --url 'https://api.paxum.com/v2/transfer/status/cda1ac04-4c8c-4cbc-a6b0-7d8c0bb4265c'

Response samples

Content type
application/json
{
  • "data": {
    }
}