Authorization is easy, just pass your authenticator
in the body of the request. The authenticator is 22 characters long.
"authenticator": "22CharacterMerchantKey"
Communicate with us in your favorite content type!
We support the following for Content-Type
:
application/json
200 OK
Accepted Transaction400 BAD REQUEST
Invalid Transaction401 UNAUTHORIZED
Failed Authentication403 FORBIDDEN
Failed Authorization500 ERROR
Unexpected Errorsee Response payload for more detail
TranCode | Description |
---|---|
Issue | Activate and load funds on an account |
Create | Generate a new account number |
Load | Increase the currency balance on an account |
Redeem | Decrease the currency balance on an account |
Loyalty | Adjust the points balance on an account |
Set | Set an attribute of an account (identifier, locked status, currency/points balances) |
Balance | Retrieve the currency and/or points balance for the specified account |
Void | Undo the effect of a previous transaction by reference number |
Detail | Replay the response from a previous tranastion by reference number |
(R = Required, C = Conditional, O = Optional)
Payload Element | Issue | Create | Load | Redeem | Loyalty | Set | Balance | Void | Detail |
---|---|---|---|---|---|---|---|---|---|
authenticator | R | R | R | R | R | R | R | R | R |
trancode | R | R | R | R | R | R | R | R | R |
track21 | C | C | C | C | C | C | |||
account1 | C | C | C | C | C | C | |||
cvv | O | O | O | O | O | O | |||
override_cvv | O | O | O | O | O | O | |||
amount | O | R | R | ||||||
points2 | O | O | O | R | |||||
invoice | O | O | O | O | O | ||||
override_duplicate | O | O | O | O | |||||
partial_auth | O | ||||||||
promo | O | O | O | ||||||
identifier3 | O | C | |||||||
locked3 | O | C | |||||||
balance3 | O | C | |||||||
points_balance3 | O | C | |||||||
reference | R | R | |||||||
trace_data | O | O | O | O | O | O | O | O | O |
1 If conditional, only one of these elements is required.
2 Sign affects direction of adjustment.
3 If conditional, at least one of these elements is required.
(A = Always, C = Conditional)*
Payload Element | Issue | Create | Load | Redeem | Loyalty | Set | Balance | Void | Detail |
---|---|---|---|---|---|---|---|---|---|
response_code1 | A | A | A | A | A | A | A | A | A |
status1 | A | A | A | A | A | A | A | A | A |
message1 | A | A | A | A | A | A | A | A | A |
trancode | A | A | A | A | A | A | A | A | A |
reference | A | C | A | A | A | C | A | A | |
account | A | A | A | A | A | A | A | A | A |
cvv | A | ||||||||
amount | C | A | A | A | A | ||||
balance | A | A | A | A | A | C | A | A | A |
points | C | C | C | A | C | C | C | ||
points_balance | C | C | C | C | C | C | C | C | |
invoice | C | C | C | C | C | C | |||
locked | C | C | |||||||
amount_adjusted | C | ||||||||
promo | C | C | C | C | |||||
voided | C | ||||||||
human_readable | A | ||||||||
track1 | A | ||||||||
track2 | A | ||||||||
balance_url | A | ||||||||
voided_id | A | ||||||||
trace_data | C | C | C | C | C | C | C | C | C |
* This table shows behavior of Approved transactions.
1 Always returned regardless of status
. Use response_code
for programmatic behavior.
Payload Element | Type | Minimum | Maximum |
---|---|---|---|
account | string | 30 | |
amount | decimal | 0.01 | 214748.36 |
amount_adjusted | decimal | -214748.36 | 214748.36 |
balance | decimal | -214748.36 | 214748.36 |
balance_url | string | 50 | |
cvv | string | 3 | |
human_readable | string | 30 | |
identifier | string | 30 | |
invoice | string | 16 | |
locked | boolean | ||
authenticator | string | 22 | |
message | string | 50 | |
override_cvv | boolean | ||
override_duplicate | boolean | ||
partial_auth | boolean | ||
points | integer | -32768 | 32767 |
points_balance | integer | 0 | 32767 |
promo | boolean | ||
reference | integer | 0 | 263 |
response_code | integer | 1000 | 9999 |
status | string | 50 | |
track1 | string | 50 | |
track2 | string | 50 | |
trancode | string | 50 | |
voided | boolean | ||
voided_id | integer | 0 | 263 |
trace_data | string | 100 |
Response Codes are 4-digit numbers. The leftmost number, or thousands place, indicates the status.
Thousands | Status |
---|---|
1 | Approved |
2 | Partial |
3 | Duplicate |
4 | Declined |
5 | Invalid |
9 | Error |
Call GET /v1/transactions/response_codes
for response code details
POST https://[base_url]/v1/transactions
Content-Type: application/json
{
"authenticator": "HM8draWRMkWMc+H8bK3tnQ",
"trancode": "Redeem",
"amount": 5.12,
"track2": ";5614760000000000003=3912000123?",
"trace_data": "123456789012345"
}
200 OK
{
"response_code": 1000,
"status": "Approved",
"message": "Approved",
"trancode": "Redeem",
"reference": 39,
"account": "5614760000000000003",
"amount": 5.12,
"balance": 186.25,
"trace_data": "123456789012345"
}
POST https://[base_url]/v1/transactions
Content-Type: application/xml
<Request>
<authenticator>HM8draWRMkWMc+H8bK3tnQ</authenticator>
<trancode>Redeem</trancode>
<amount>5.12</amount>
<track2>;5614760000000000003=3912000123?</track2>
<trace_data>123456789012345</trace_data>
</Request>
200 OK
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<response_code>1000</response_code>
<status>Approved</status>
<message>Approved</message>
<trancode>Redeem</trancode>
<reference>39</reference>
<account>5614760000000000003</account>
<amount>5.12</amount>
<balance>186.25</balance>
<trace_data>123456789012345</trace_data>
</Response>