Card Tokenize
Register And Reserve (Redirect Solution)
When a user registers, a card validation transaction is initiated. If the card is successfully validated, the system proceeds with tokenization and reserves the requested amount on the card. The merchant can either host their own card form or use Paywiser’s hosted page for card details. During the authorization verification process, the user may be redirected to a 3D Secure (3DS) confirmation page if additional verification is needed.
To initiate a transaction using TxHandler, submit a form via HTTP POST to the specified
HTTP Request
POST https://office.paywiser.com/secure/txHandler.php
Request Parameters
Parameter | DataType | Description |
---|---|---|
sid | Yes | Site id (unique identifier for the web site) |
tid | No | Tracking id (must be unique for each transaction) |
postback_url | Yes | Merchant can get update transaction status by asynchronous process. Once capture process complete or after 3D secure challenge process, will send postback to the provided URL. Capture process will return tx_action=SETTLEMENT while the 3ds challenge return tx_action = PREAUTH. |
redirect_url | No | To redirect user back to merchant page |
hash | Yes | md5 hash of strings concatenation from sid + timestamp + amounttotal + currency +
rcode e.g. (in PHP): md5('22'.'1234568995265421'.'17.00'.'CNY'.'222b6c') REMARK : amounttotal = (item_amount_unit * item_quantity ) + amount_shipping + amount_tax – amount_coupon |
timestamp | Yes | UNIX timestamp in seconds. |
card_type | Yes | allcard |
card_no | No | Credit card number. Empty card_no will redirect to Paywiser hosted card form. |
card_exp_year | Condition | 4-digit year expiration of the credit card. (e.g. 2020), required if card_no provided |
card_exp_month | Condition | 2-digit month expiration of the credit card. (eg. 05 – May), required if card_no provided |
card_ccv | Condition | CVV/CVC2 credit card verification code, required if card_no provided |
firstname | Yes | First name of the customer |
lastname | Yes | Last name of the customer |
phone | Yes | 10 to 14 numeric digits |
mobile | No | Mobile number |
address | Yes | Customer address |
suburb_city | Yes | Customer suburb or city |
state | Yes | Customer state, 2 digit code for US/Canada |
postcode | Yes | Customer postcode/zipcode |
country | Yes | Customer country, ISO 3166 2 digit code |
uip | Yes | Customer’s IP address. |
currency | Yes | Transaction currency [currency in which the gateway is setup], ISO 3 letter code, e.g., USD |
amount_shipping | Yes | Transaction shipping amount. 0.00 if nothing |
amount_coupon | Yes | Coupon amount. 0.00 if nothing |
amount_tax | Yes | Transaction shipping amount. 0.00 if nothing |
item_quantity[] | Yes | Quantity of product |
item_name[] | Yes | Name of product |
item_no[] | Yes | ID of product |
item_desc[] | Yes | Descriptions of product |
item_amount_unit[] | Yes | Amount to do reserve, two decimal places |
ref1 | No | Provide this value will auto do payment and ignore checking ref2 |
ref2 | No | Payment flow referrent, allow 3 value signs: only register without reserved, and then will provide token in ref1 parameter. signandpay: this value register and do reserved amount and then will provide token in ref1 parameter. pay: when payment with token which retrieved from register process that return in ref1 parameter. leave blank and empty ref1 will be used signandpay by default. |
ref3 | No | Merchant reference field |
ref4 | No | Merchant reference field |
tx_action | Yes | PREAUTH |
Request Parameters
Parameter | DataType | Description |
---|---|---|
sid | String | Has the sid where transaction was processed |
status | String | OK – Success authorization and reserved amount EXC – failed |
parent_txid | String | Parent transaction id |
txid | String | The transaction ID |
tx_action | String | Default Value - PREAUTH |
amount | String | The reserved amount. |
currency | String | The currency of reserved amount |
comment | String | Description of the transaction status |
descriptor | String | Gateway descriptor name |
ref1 | String | Card Token, merchant need to use this card token for next payment or future usage. |
ref2 | String | Merchant reference field |
ref3 | String | Merchant reference field |
ref4 | String | Merchant reference field |
Capture (Server to Server Solution)
Once customer finish charging, merchant need to send actual amount to capture from reserved amount and release the remaining amount.
To do this merchant need to request our Rest API POST /api/v1/index.php/{sid}/flagcapture HTTP/1.1 Host: https://office.paywiser.com Content-Type: application/x-www-form-urlencoded
HTTP Request
POST https://office.paywiser.com/api/v1/index.php/{sid}/flagcapture
Request Parameters
Name | type | Required | Description |
---|---|---|---|
sid | path | Yes | Site id (unique identifier for the web site) |
parent_txid | body | Yes | The transaction reference of previous register or reserved transaction. |
tid | body | No | Tracking id (must be unique for each transaction) |
amount | body | Yes | Actual amount that customer need to pay |
hash | body | Yes | md5 hash of strings concatenation from sid+amount+rcode [e.g. in PHP : md5('22'.'7.00'.'222b6c')] |
Asynchronous Notification
Request Parameters
Parameter | DataType | Description |
---|---|---|
sid | String | Has the sid where transaction was processed |
status | String | Has the value "OK" for a successful transaction, or "EXC" for a failed transaction. |
parent_txid | String | Parent transaction id |
txid | String | The transaction ID |
tx_action | String | SETTLEMENT or PREAUTH |
amount | String | The amount processed. |
currency | String | The currency in which the transaction was processed |
comment | String | Response from the gateway |
descriptor | String | Gateway descriptor name |
tid | String | From the original transaction |
error | String | If an error has occurred, then the status value will equal "EXC" and these parameters will be sent as well. Detailed error will be present only if we receive it from the processing gateway. |
error_type | String | error_type |
error_sys | String | The system that caused the error (client or server) |
error_msg | String | The error message |
error_info | String | Error information that contains the bank message and bank code |
error_code | String | error_code |
vrfy | String | This is a SHA-256 hash so the data can be verified to ensure your post-back data was not modified. To generate a hash with SHA-256, use the string: sid;rcode;txid;status;amount;currency;txaction |
Reserve (Redirect Solution)
HTTP Request
POST https://office.paywiser.com/secure/txHandler.php
Request Parameters
Parameter | DataType | Description |
---|---|---|
sid | Yes | Site id (unique identifier for the website) |
tid | No | Tracking id (must be unique for each transaction) |
postback_url | Yes | Merchant can get update transaction status by asynchronous process. Once capture process is complete or after the 3D secure challenge process, a postback will be sent to the provided URL. Capture process will return tx_action=SETTLEMENT while the 3D challenge will return tx_action = PREAUTH. |
redirect_url | No | To redirect user back to the merchant page |
hash | Yes | MD5 hash of strings concatenation from sid + timestamp + amounttotal + currency +
rcode. e.g. (in PHP): md5('22'.'1234568995265421'.'17.00'.'CNY'.'222b6c')
|
timestamp | Yes | Format: hhmmss |
card_type | Yes | allcard |
firstname | Yes | First name of the customer |
lastname | Yes | Last name of the customer |
phone | Yes | 10 to 14 numeric digits |
mobile | No | Mobile number |
address | Yes | Customer address |
suburb_city | Yes | Customer suburb or city |
state | Yes | Customer state, 2-digit code for US/Canada |
postcode | Yes | Customer postcode/zipcode |
country | Yes | Customer country, ISO 3166 2-digit code |
uip | Yes | Customer’s IP address |
currency | Yes | Transaction currency (currency in which the gateway is set up), ISO 3-letter code (e.g., USD) |
amount_shipping | Yes | Transaction shipping amount. 0.00 if nothing |
amount_coupon | Yes | Coupon amount. 0.00 if nothing |
amount_tax | Yes | Transaction tax amount. 0.00 if nothing |
item_quantity[] | Yes | Quantity of product |
item_name[] | Yes | Name of product |
item_no[] | Yes | ID of product |
item_desc[] | Yes | Descriptions of product |
item_amount_unit[] | Yes | Amount to reserve, two decimal places |
ref1 | Yes | Token given by the register process |
ref2 | No | Merchant reference field |
ref3 | No | Merchant reference field |
ref4 | No | Merchant reference field |
tx_action | Yes | Value: “PREAUTH” |
Response Parameters
Parameter | DataType | Description |
---|---|---|
sid | String | Has the sid where the transaction was processed |
status | String | OK – Success authorization and reserved amount EXC – Failed |
parent_txid | String | Parent transaction id |
txid | String | The transaction ID |
tx_action | String | Default Value - PREAUTH |
amount | String | The reserved amount |
currency | String | The currency of the reserved amount |
comment | String | Description of the transaction status |
descriptor | String | Gateway descriptor name |
ref1 | String | If there is a token returned from the gateway |
ref2 | String | Merchant reference field |
ref3 | String | Merchant reference field |
ref4 | String | Merchant reference field |
Refund (Server to Server Solution)
HTTP Request
POST https://office.paywiser.com/api/v1/index.php/{ptxid}/refund
Response Parameters
Name | Type | Required | Description |
---|---|---|---|
ptxid | path | Yes | The transaction reference of previous register or reserved transaction. |
parent_txid | body | Yes | The transaction reference of previous register or reserved transaction. |
tid | body | No | Tracking id (must be unique for each transaction) |
amount | body | Yes | Actual amount that customer to pay |
postback_url | - | - | The URL of the page used to receive the TxHandler postback. The response can be read from $_POST array. |
hash | body | Yes | md5 hash of sid+timestamp+amount+currency+rcode e.g. in PHP : md5('22'.'1234568995265421'.'17.00'.'CNY'.'222b6c')
|
Response Parameter
Name | Data Type | Description |
---|---|---|
status | String |
EXC – Refund Request failed PEND – Refund Request Pending Approval |
txid | String | The transaction ID |
error | - | If an error has occurred, then the status value will equal "EXC" and these parameters will be sent as well. Detailed error will be present only if we receive it from the processing gateway. |
error_type | String | error_type |
error_sys | String | The system that caused the error (client or server) |
error_msg | String | Refund Submitted |
error_info | String | Error information that contains the bank message and bank code |
error_code | String | error_code |
comment | String |
Status OK - Refund Submitted Status EXC – Reason of Failure |
Appendix A : Testing Credit Cards
Frictionless
Card Scheme | Card Number |
---|---|
Visa | 4176660000000027 |
Mastercard | 5299990270000368 |
Amex | 375987000169677 |
Discover | 36849800000679 |
Device Fingerprint (DFP)
Card Scheme | Card Number |
---|---|
Visa | 4176660000000068 |
Mastercard | 5299990270000392 |
Amex | 375987000169776 |
Discover | 36816499999982 |
Challenge
Card Scheme | Card Number | Success OTP | Fail OTP |
---|---|---|---|
Visa | 4176660000000092 | 0101 | 3333 |
Mastercard | 5299910010000015 | 4445 | 9999 |
Amex | 375987000000005 | 5678 | 3333 |
Discover | 6011947300799885 | 5678 | 3333 |
Visa | 4176660000000118 | 0101 | 3333 |
Mastercard | 5204730000001011 | 4445 | 9999 |
Amex | 374245001711000 | 5678 | 3333 |
Discover | 6011947499999957 | 5678 | 3333 |