Praxis Wiki logo

Payment API Card Processinng

Card Payment Processing API lets you process the credit card deposits and payouts over REST API. The card processing requests should be sent to

There are several transaction types supported by the API:
- Sale transaction API lets you receive the card payments from customers;
- Credit transaction API is a fund transfer from your merchant account to customer's card;
- Refund transaction API is a reverse operation to a successful deposit;

{danger.fa-exclamation} IMPORTANT #1: In rare cases (depending on PSP) you may receive a response containing "status":"declined retry", this means that the cascade has been applied and there will be another processing attempt with the following notification - the status will be received within the notification - see Notification document reference. The following notification will contain the same order_id (your transaction identifier) but the new trace_id and transaction_id ( and PSP transaction identifiers accordingly).

{danger.fa-exclamation} IMPORTANT #2: Sometimes transaction_id (PSP transaction identifier) is empty, this may happen in the cases when the PSP has rejected the processing attempt due to input validation or payment service unavailability.


Variable Type Description
amount int(20) Required. Payment amount in cents.
Please note: for certain currencies (JPY, CLP, KRW, VND, BHD, IQD, JOD, LYD, OMR, TND) the amount is sent as-in without being converted to cents, this is important if you multiply by 100 to send the amount in cents
currency varchar(10) Required. Payment currency
card_number varchar(19) Required. Payment card number (PAN)
cvv varchar(4) sale Required. Payment Card verification number
card_exp varchar(8) Required. Payment card expiration month/year in format MM/YYYY (ex. 12/2024)
pin varchar(50) Required. Unique customer id in your system
dob date Optional. Date of birth of the customer. MM/DD/YYYY format accepted.
email varchar(50) Required. Customer's email
phone int(20) Optional. Numeric only, includes country area code. Should not be a dummy sequence like 123456 or 111111, should be at least 6 digits long.
requester_ip varchar(10) Optional. Customer's IP address
address varchar(50) Optional. Customer's address
city varchar(50) Optional. City of the customer
country varchar(2) Required. ISO 3166-1 alpha-2 (US, MT, IT, GB, DE etc)
first_name varchar(25) Required. Customer's first name
last_name varchar(25) Required. Customer's last name
state varchar(2) State/Province where the customer resides. Only for US, CA and AU. 2 characters ISO format. Otherwise leave blank.
zip varchar(12) Required. Postal Code of the customer. Only required for US and CA. Can provide values for other countries. Limited to 12 alphanumeric characters only.
frontend varchar(256) Required. Cashier FrontEnd name, normally it is a common name of the website. Linked to a specific base currency.
merchant_id varchar(50) Required. Merchant API client account identifier
return_url varchar(256) Required. User will be redirected to a specified URL after successful deposit (except cases when there is another rule defined with higher priority)
notification_url varchar(256) Optional. URL to which the deposit status notification will be sent
order_id varchar(50) Required. Transaction identifier in your system
transaction_type varchar(8) Required. Transaction type. Allowed values are:
sale (deposit)
refund (return deposit funds)
reference_id varchar(50) refund Required. Original transaction identifier from
error_code int(10) Optional. Error code for rejected transactions
error_details varchar(256) Optional. Error description for rejected transactions
timestamp int(11) Required. Request time. URL will be active during 1 min after this time
version varchar(3) Required. API version
signature varchar(96) Required. Request signature. Please refer to How to Build Signature for details on signing the request.


Variable Type Description
status int Required.
- 0 if the request was successful
- Negative integer if internal server/network error occurs
- Positive integer if application/logical error occurs
description varchar(256) Required. Accurate description of the result. Return the actual error for any exception as it helps to diagnose issues in production
redirect_url varchar(256) Required. Cashier Autologin URL. When redirected to this URL, the customer will be navigated further to the Cashier deposit page
trace_id int(11) Required. Transaction identifier in
transaction_id varchar(50) Optional. Transaction identifier in PSP
transaction_status varchar(16) Required.
- pending - processing initiated, final response expected from PSP
- approved - processing was successful
- declined retry - processing failed and will be reattempted
- declined - processing failed
- cancelled - processing cancelled by the merchant or client
- pending async - customer action expected (3D Secure, etc.)
- requested - merchant action expected (approval)
error_code int(10) Optional. Error code for rejected transactions
error_details varchar(256) Optional. Error description for rejected transactions
payment_processor varchar(25) Optional. Gateway doing the processing
version varchar(3) Required. API version
signature varchar(96) Required. sha384 HASH code of response (same as in request)


For example below: Merchant Secret = "MerchantSecretKey"


curl -X POST \ \
-H 'Content-Type: application/json' \
-d '{
    "address":"Avenue 51/2",
    "city":"New York",
    "email":"[email protected]",
    "frontend":"Integration TEST USD",

Response (3D Secure)


Response (Approved)


Response (Declined)

    "error_code": 711,
    "error_details": "PreAuth error",

You are currently viewing version 3.1 Latest API version here