Testing
Testable Features
- Card Transaction Processing
- Credit Card Transaction Voiding and Refunding
- Batching Commands
- Asynchronous Transaction Processing
- Transaction Detail Retrieval
- Dynamic (soft) Descriptor Assignment
- Support for Multiple Merchant Accounts
- Recurring Charge Processing
- Refunds for Credit Card Transactions
- Tokenization (includes store_payer_data)
- E-Check Transaction Voiding and Refunding
- Separate Recurring Start Date
- Different Amount Today for Recurring Transactions
- Process Recurring Transactions
- Recurring Transaction Detail Retrieval
Summary of differences between Sandbox and Live environments:
Sandbox | Live |
---|---|
Settlement of transactions (such as for testing refund functionality) is not automatic since there is no real transfer of funds taking place. | Settlement of transactions is automated at 11am PST the next business day. |
Ongoing recurring charges must be manually processed. | Ongoing recurring charges are automatically processed. |
Error conditions can be forced for testing purposes. | Error conditions cannot be forced. |
Testing Notes
A Sandbox API key is required to access the sandbox for testing.
Use the Sandbox domain https://sandbox.acceptivapro.com and the text values included in this document for testing.
Data for use during testing:
Code | Description |
---|---|
150 | Credit Card (Address Verification Service enabled)* |
154 | Credit Card (Address Verification Service disabled) |
32 | eCheck |
- *For accounts with AVS turned on, the zip code 99997-0008 will produce an exact address match.
Card Carrier | Number | CVV Pass | CVV Fail |
---|---|---|---|
Visa | 4111111111111111 | 999 | 123 |
Mastercard | 5499740000000057 | 998 | 123 |
Discover | 6011000991001201 | 996 | 123 |
Amex | 371449635392376 | n/a | n/a |
Routing No. | Account No. |
---|---|
Any valid routing number, such as 123456780 | Any 3-17 digit number Please refrain from using real account numbers. |
Payer Name* | Not required to pass transaction, but required for reporting purposes | |
Card Number* | Required | |
Expiration Date* | Required | |
Dollar Amount* | Required. At least one item must be in the cart to calculate the total transaction amount. |
Name on Card | |
Billing Address* | Merchant Account processing fees may increase if data is not included |
City | |
State | |
Country | |
Zip Code* | Merchant Account processing fees may increase if data is not included |
CVV Code* | Merchant Account processing fees may increase if data is not included |
Zip Code | 99997-0008 returns an AVS match; any other value returns a mismatch |
CVV | 999 returns a CVV match; any other value returns a CVV mismatch (except blank/omitted CVV which returns nothing) |
Credit Card Amount | 6.66 returns a decline; any other amount returns an approval |
eCheck Amount | 6.66 returns a decline; any other amount returns an approval |
Required Fields
Mercant Account processing fees are quoted assuming that all of the required fields* are sent with the transaction. The processing rate for a transaction may increase if less card data is sent.API Response
After submitting a transaction request, the API will provide a response in JSON, XML, or a serialized PHP array that is user-selectable per request. This will include a report of the data you entered for the transaction. It will also show the status of the request and response codes and messages from the processer, which will inform you whether the transaction was authorized.
The status returned in the API charge and void response will show "success" or "failure", and is an indication of whether the trans_status is in a success or failure state. All trans_status codes and messages are included below for ease of interpretation.
Trans Status | Trans Status Message | Indication |
---|---|---|
0 | Data input validated (but no charge was processed) | Success |
1 | Data input error; data not saved; please fix errors and try again | Failure |
11 | Data input validated, charge will now begin processing | Success |
12 | Transaction is currently processing | Success |
13 | Transaction is authorized; settlement/transfer of funds can proceed soon. Use $10.00 as amount. Not all amounts entered will result in approval. |
Success |
14 | Internal error occurred authorizing transaction | Failure |
15 | Max transaction processing time exceeded; transaction voided; please try again | Failure |
16 | Error processing transaction; please see processor_response_code | Failure |
31 | Error processing transaction; billing address mismatch | Failure |
32 | Error processing transaction; CVV mismatch | Failure |
33 | Error processing transaction; fraud detected | Failure |
41 | Transaction marked for void | Success |
42 | Transaction void processing | Success |
43 | Transaction voided | Success |
44 | Transaction void failed; please see processor_response_code | Success |
51 | Credit card transaction settlement is processing | Success |
52 | Credit card transaction settled; funds have been transferred | Success |
53 | Credit card transaction settlement failed; please see processor_response_code | Failure |
54 | Max settlement processing time exceeded; please try again | Failure |
61 | eCheck transaction settled; funds have been transferred | Success |
62 | eCheck transaction settlement failed; could not be funded | Failure |
63 | eCheck transaction settlement failed; check returned | Failure |
64 | eCheck transaction settlement failed; chargeback | Failure |
71 | Transaction marked for refund | Success |
72 | Transaction refund processing | Success |
73 | Transaction refunded | Success |
81 | Token saved; authorization automatically voided | Success |
Functionality
Extra Parameters
You can create your own extra parameters to collect additional data by using extra_params. The name you give your extra parameters must contain only A-Z letters (case insensitive), 0-9 integers, underscores, and must be 64 characters or less. To create extra parameters, use the following format in your URL call:
¶ms[0][extra_params][my_extra_name]=my_value¶ms[0][extra_params][my_other_extra]=my_other_value
This example would create two extra parameters for the transaction called "my_extra_name" and "my_other_extra" with values of "my_value" and "my_other_value" respectively.
Client_Trans_ID
You can assign your own client_trans_id for transactions. Each client_trans_id is unique, meaning once you have used this ID, you will never be able to use it again for any other transaction.
Client_Trans_ID & Duplicate Transactions
In the case that you do not implement your own duplicate prevention/checking, client_trans_id should be used, as it safeguards against duplicate transaction processing. However it is technically simpler for you to implement duplicate checking on your end, because pre-generating a client_trans_id typically means you must store transactions in your own database so that the database can generate the unique ID.
Recurring & Pledge Transactions
For recurring transactions, the request must specify recurring frequency, recurring end criteria, and a recurring end value. A start date for the recurring payments other than the date of the initial payment can be specified using the "recur_first_charge_date" parameter. Entering a value for the "amt_today" parameter allows the initial payment to be a different amount from the calculated recurring installment amount. To process recurring transactions in the sandbox environment, use: https://sandbox.acceptivapro.com/api/api_request.php?api_key=<INSERT_API_KEY>&action=process_recur¶ms[0][date]=<INSERT_DATE>. The date specified is the date for which you want to process recurring payments. It can be omitted to process recurring for today. The recurring charges will be processed automatically for live transactions.
Pledges are indicated by submitting "true" for the "is_pledge" parameter. To submit an amount to be paid immediately other than the calculated installation for a pledge, enter the desired amount as the value for the "amt_today" parameter. Note that Ongoing (0) and End After Total Amount Paid (2) recurring criteria are not valid for pledges. The table below provides a list of recurring and pledge parameters and the inputs accepted for each. For further documentation, visit https://sandbox.acceptivapro.com/api/api_request.php?api_key=<INSERT_API_KEY>&action[0]=show_object_structure¶ms[0][object]=items_array.
Refer to Transaction String Examples for examples of recurring and pledge transaction URL strings.
Name | Type | Description | Required? | Default Value |
---|---|---|---|---|
is_pledge | boolean | Set to 'true' to treat the item amount as a total pledge amount and work backwards to figure out what the recurring installment amounts should be | No1 | false |
amt_today | float | Different amount to charge today from the regular installment amount; omit or set to 0 to charge regular installment amount today3 | No1 | 0 |
first_charge_date | date | When to process the charge for this item (defaults to today); max 6 months | No1 | today |
recur_first_charge_date | date | When to process the first follow-on charge for this item | No1 | recur_freq | int | 0 (One Time) 1 (Weekly) 2 (Every Other Week) 3 (Monthly) 4 (Quarterly) 5 (Half-Yearly) 6 (Yearly) |
No1 |
recur_end_criteria | int | 0 (One Time/Ongoing) 1 (End After Number of Payments) 2 (End After Total Amount Paid) 3 (End By Given Date) |
No1 | 0 |
recur_end_value | string(<=18) | if 'recur_end_criteria' == 1 then int (number of payments to process) if 'recur_end_criteria' == 2 then float (total amount to process) if 'recur_end_criteria' == 3 then date (date to end processing) |
No1 |
Callback URL
Some actions have an optional callback URL parameter, which will be called when the action is complete. The response data will be POSTed to the callback URL in the same structure as the API output for that action. Callback URLs can be utilized for either synchronous or asynchronous transactions, although they are obviously most useful for asynchronous transactions where you can get a response on-demand from the API rather than having to poll periodically for the final response (which is highly discouraged).
For testing purposes to see what the callback response will look like, we provide the following url: https://sandbox.acceptivapro.com/api/api_request.php?email=youremail@domain.com Using this url as your test callback url will forward you an email with the response POST data formatted as human-readable.
Transaction Synchronicity
By default all API requests are handled synchronously. Some actions (such as charge) have support for asynchronous handling. A request to batch multiple transactions will always be handled asynchronously to avoid long delays and timeouts in receiving a response. In an asynchronous transaction, the API will give an initial response immediately after submission of the request without waiting for a bank response. This initial response will indicate whether the submission was successful, but will not include the final transaction status. To receive the report with the final status, a callback URL must be provided that will send the transaction details to your email. As soon as a bank response is received and the status of the transaction is final, the transaction details will be sent to this URL, and thus to your e-mail. Do not periodically poll the API for a final transaction status. Note that batching more than 10 charge requests will force the entire batch to be performed asynchronously to avoid long processing delays.
To test asynchronous transactions, enter "1," "yes," or "true" into the "Async?" field. Enter a URL into the "Callback URL" field that will send the transaction details to your email. When you submit the request, the transaction details will be sent to the email specified by the URL.
Get_Trans_Details
To retrieve transaction details for a previous transaction, use the URL https://sandbox.acceptivapro.com/api/api_request.php?api_key=<INSERT_API_KEY>&action[0]=get_trans_details¶ms[0][trans_id_str]=<INSERT_TRANS_ID_STR>&output=xml into your browser. The trans_id_str is located in the API response report that opens after submitting the request, or in the e-mail sent to you if you completed an asynchronous transaction. Alternatively, an assigned client_trans_str can also be used.
To get transaction details for multiple transactions at once, pass multiple trans_id_str or client_trans_id separated by a comma. If the client_trans_ids are numerically serialized, a range can be passed to request a group of transaction detail reports. For example: https://sandbox.acceptivapro.com/api/api_request.php?api_key=<INSERT_API_KEY>&action[0]=get_trans_details¶ms[0][trans_id_str]=ID1,ID2,ID3¶ms[0][client_trans_id]=CLID1,CLID2,1-50&output=xml
With the get_trans_details action, details for all transactions associated with your API key will be retrieved if the trans_id_str parameter is left blank. You can add a filter parameter to your request to limit the details retrieved to transactions that fulfill certain criteria. Documentation for available filters is available at https://sandbox.acceptivapro.com/api/api_request.php?api_key=<INSERT_API_KEY>&action[0]=show_filters¶ms[0][object]=trans_filters_array&output=xml
Filter Name | Filter Operators | URL-Encoded Example |
---|---|---|
trans_status | = | ¶ms[][filters][]=trans_status%3D1234 |
trans_date | <, <=, =, >=, > | ¶ms[][filters][]=trans_date%3C2016-05-03 |
payment_type | = | ¶ms[][filters][]=payment_type%3D1234 |
payer_name | = (matches), ~= (contains), ^= (starts with), $= (ends with) | ¶ms[][filters][]=payer_name%3DThis+%26+That |
amount | <, <=, =, >=, > | ¶ms[][filters][]=amount%3C12.34 |
merch_acct_id_str | = | ¶ms[][filters][]=merch_acct_id_str%3DThis+%26+That |
sub_id1 | = | ¶ms[][filters][]=sub_id1%3DThis+%26+That |
sub_id2 | = | ¶ms[][filters][]=sub_id2%3DThis+%26+That |
sub_id3 | = | ¶ms[][filters][]=sub_id3%3DThis+%26+That |
sub_id4 | = | ¶ms[][filters][]=sub_id4%3DThis+%26+That |
sub_id5 | = | ¶ms[][filters][]=sub_id5%3DThis+%26+That |
sub_id6 | = | ¶ms[][filters][]=sub_id6%3DThis+%26+That |
sub_id7 | = | ¶ms[][filters][]=sub_id7%3DThis+%26+That |
sub_id8 | = | ¶ms[][filters][]=sub_id8%3DThis+%26+That |
sub_id9 | = | ¶ms[][filters][]=sub_id9%3DThis+%26+That |
sub_id10 | = | ¶ms[][filters][]=sub_id10%3DThis+%26+That |
The details for recurring transactions can be retrieved using the get_recur_details action. The value passed for trans_recur_id_str can be a single value or a comma separated list. The parameter can also be left blank to show all active recurring charges. Submit: https://sandbox.acceptivapro.com/api/api_request.php?api_key=<INSERT_API_KEY>&action[0]=get_recur_details¶ms[0][trans_recur_id_str]=<INSERT_TRANS_RECUR_ID_STR>&output=xml
Tokenization
Tokenization allows you to store and re-use payer information. Refer to the Tokenization Use & Management Examples for examples of utilizing and managing tokenization. Stored parameters are:
- Payer_name
- Payer_address
- Payer_city
- Payer_state
- Payer_zip
- Payer_country
- Payer_phone
- Payer_email
- Cc_num_last_four (last four digits of the credit card number)
- Cc_exp_mo
- Cc_exp_yr
- Full Credit card number
- Ach_acct_last_four (last four digits of bank account number)
- Full eCheck routing/account numbers
To generate a token, use the action store_payer_data. The minimum parameters you must include are payer_name and payment information for either credit card (cc_num, cc_exp_mo, and cc_exp_yr) or eCheck (ach_account_num and ach_routing_num).
To save payer information while submitting a transaction request, set the parameter store_payer_data to Boolean true. The API will generate a unique payer_id_str for each saved payer. You may also optionally specify your own client_payer_id for future use of the saved data. Only the payment information pertaining to the payment type of the transaction will be saved, though additional payment information for other payment types can be added later.
To use saved payer information, set store_payer_data to Boolean false. Leave all payer parameters blank and submit the payer_id_str or client_payer_id. Incoming payer data (name, address, city, state, zip, country, email, phone) will override the saved payer data and will be used for the transaction.
To update saved payer data, submit a valid payer_id_str and set store_payer_data to Boolean true. Incoming payer data will be saved in place of the old data. To update payer information for a client_payer_id, you must submit the payer_id_str associated with that data. This can be found using get_payer_details.
To fetch the details for saved payer data, use the URLs below:
Errors will be thrown in the following cases:
- When setting a new client_payer_id, a record already exists with the same client_payer_id
- The saved payer info can't be found using client_payer_id or payer_id_str
- Both the client_payer_id and payer_id_str are used at once, but they each return different payer information
- The submitted client_payer_id or payer_id_str does not contain the payment information required for the type of payment being transacted.
Email Receipts
Email receipts can be sent whenever a one-time or recurring transaction takes place. Email receipts are created and saved in the Client Area, and are assigned an auto-generated receipt id. There is no limit to the number of receipts that can be created, so there can be seperate receipts saved for intial transactions and follow-on recurring transactions.
The parameters receipt_id_str and recur_receipt_id_str differentaite between initial and follow-on recurring receipts, respectively. To assign initial and recurring receipts, code the receipt id as the value for these parameters. For example:
¶ms[0][receipt_id_str]=¶ms[0][recur_receipt_id_str]=<ID_OF_RECURRING_RECEIPT>
A default receipt can also be set, so that when the receipt_id_str and recur_receipt_id_str parameters are omitted from the code, the default receipt will automatically be sent. However, if the receipt parameters are passed, those values will always be used to override the default. Therefore, if the parameters are included but left blank, no receipt will be sent.
Voiding Transactions
Voiding charges is supported for credit card and e-check transactions. Enter https://sandbox.acceptivapro.com/api/api_request.php?api_key=<INSERT_API_KEY>&action[0]=void_trans¶ms[0][trans_id_str]=<INSERT TRANS_ID_STR>&output=xml into your browser. The transaction was successfully voided if the status is "success"" and the trans_status is 13, displaying the message "Transaction voided." For e-check, the cut-off for voiding transactions is 11:00 am Pacific Standard Time. The cutoff will not adjust with daylight savings.
Refunding Transactions
Refunding charges is supported for credit card and e-check transactions. In the URL examples below, either trans_id_str or client_trans_id can be used. Before the charge can be refunded, the transaction must be settled. For the sandbox environment, settle transactions using: https://sandbox.acceptivapro.com/api/api_request.php?api_key=<INSERT_API_KEY>&action[0]=settle_trans¶ms[0][trans_id_str]=<INSERT_TRANS_ID_STR>
- URL for Full Refund
- https://sandbox.acceptivapro.com/api/api_request.php?api_key=<INSERT_API_KEY>&action[0]=refund_trans_full¶ms[0][trans_id_str]=<INSERT_TRANS_ID_STR>&output=xml
Multiple partial refunds can be performed for a transaction until the full amount has been refunded. When a refund is successful, a refund_trans_id_str is generated. Alternatively, you may assign a client_refund_trans_id when passing your refund request that becomes the new client_trans_id. Use these ids to make calls to get_trans_details/void_trans/settle_trans/etc.
To cancel a pending refund, call void_trans (see Voiding Transactions) using the refund_trans_id or the new client_ trans_id.
Available Actions
charge
Name | Type | Description | Required? | Default Value |
---|---|---|---|---|
api_key | string | rFv696TwFUcpRwHZiyAJLxeDoNHftEm2 | Yes | |
action | string | charge | Yes | |
payer_name | string (<= 64) | Payer name | No1 | |
payer_address | string (<= 64) | Payer street address | No1 | |
payer_city | string (<= 32) | Payer city | No1 | |
payer_state | string (2) | Payer state/province (2 letter abbreviation if USA or CAN transaction) | No1 | |
payer_zip | string (<= 10) | Payer zip code (5 digits or 5+4, e.g. 12345-6789) | No1 | |
payer_country | string (3) | Payer country (3 letter ISO 3166-1 alpha-3 code, e.g. USA) | No1 | USA |
payer_phone | string (<= 32) | Payer phone | No1 | |
payer_email | Payer email (can be comma separated list) | No1 | ||
email_cc | Addresses to CC on email receipts (can be comma separated list) | No1 | ||
email_bcc | Addresses to BCC on email receipts (can be comma separated list) | No1 | ||
email_subject | string (<= 128) | Email receipt subject line | No1 | |
email_body | string | Email receipt body | No1 | |
recur_email_cc | Addresses to CC on recurring email receipts (can be comma separated list) | No1 | ||
recur_email_bcc | Addresses to BCC on recurring email receipts (can be comma separated list) | No1 | ||
recur_email_subject | string (<= 128) | Recurring email receipt subject line | No1 | |
recur_email_body | string | Recurring email receipt body | No1 | |
send_email | boolean | Whether or not to send email receipt to payer_email, email_cc, and email_bcc on successful transaction | No1 | false |
payment_type | int | 0 for non-payment (recordkeeping only), 1 for credit card, 2 for e-check processing | Yes | |
payer_id_str | string | Saved payer account data to use for this transaction | No1 | |
merch_acct_id_str | string | Credit Card: 2GAqpz6e (default) (TSYS) eCheck: FkkCwsNy (default) (CheckGateway) | No1 | |
cc_num | int | Credit card number (digits only) | No1 | |
cc_exp_mo | int | Credit card expiration month (1-12) | No1 | |
cc_exp_yr | int | Credit card expiration year (4 digits) | No1 | |
cc_cvv | string | Credit card verification code | No1 | |
settlement_length | int | Credit card settlement length (in days), min: 1, max: 7; default value depends on the merchant account | No1 | |
ach_acct_num | string (<= 17) | eCheck account number | No1 | |
ach_routing_num | string | eCheck routing number | No1 | |
items | items_array | See documentation | Yes | |
currency | int | 840 (US Dollars), 124 (Canadian Dollars) | No1 | 840 |
dynamic_descriptor | string (<= 25) | Charge description on payer's credit card statement (alphanumeric with spaces, dots, dashes, and asterisks only) | No1 | TEST CHARGE |
client_trans_id | string (<= 64) | Your own ID number for this transaction | No1 | |
client_payer_id | string (<= 64) | Your own ID number for this payer | No1 | |
store_payer_data | boolean | Whether or not you would like us to store the payer's billing data for future transactions (will update payer's billing data if boolean true and payer_id_str is valid) | No1 | false |
sub_id1 | string (<= 64) | Transaction Sub ID | No1 | |
sub_id2 | string (<= 64) | Transaction Sub ID | No1 | |
sub_id3 | string (<= 64) | Transaction Sub ID | No1 | |
sub_id4 | string (<= 64) | Transaction Sub ID | No1 | |
sub_id5 | string (<= 64) | Transaction Sub ID | No1 | |
sub_id6 | string (<= 64) | Transaction Sub ID | No1 | |
sub_id7 | string (<= 64) | Transaction Sub ID | No1 | |
sub_id8 | string (<= 64) | Transaction Sub ID | No1 | |
sub_id9 | string (<= 64) | Transaction Sub ID | No1 | |
sub_id10 | string (<= 64) | Transaction Sub ID | No1 | |
async | boolean | Whether or not to wait for a bank response or return immediately; this is recommended for processing batches of transactions and required when batching > 1 synchronous charge transactions | No1 | false |
callback_url | string | URL that will be called when we have a bank response or internal timeout has been reached | No1 | |
extra_params | extra_array | See documentation | No1 | |
output | string | json, xml, or php (serialized) | No1 | json |
Name | Type | Description |
---|---|---|
trans_id_str | string (16) | Transaction ID |
trans_recur_id_str | string (16) | Transaction Recurring ID |
trans_status | int (2) | Transaction status ID |
trans_status_msg | string | Transaction status message |
processor_response_code | int (3) | Processor response code |
processor_response_msg | string | Processor response message |
acct_last_four | string (4) | Last four digits of the credit card or account number |
amt_processed | float | Total transaction amount processed today |
payer_id_str | string (8) | Stored payer ID for processing future transactions without re-sending account data |
items | items_response_array | See documentation |
status | string | 'success' or 'failure', this indicates only whether the input to the API is valid |
errors | array | Array of error code/message pairs ('err_no' => int, 'err_msg' => string) if status == 'failure'. See documentation. |
request_id_str | string (16) | A unique ID generated for each request made to the API. Please reference this value for customer support. |
Example GET Request
https://206.188.31.58/api_request.php?api_key=rFv696TwFUcpRwHZiyAJLxeDoNHftEm2&action[0]=charge¶ms[0][payment_type]=1¶ms[0][items][0][id]=This%20%26%20That¶ms[0][items][0][desc]=This%20%26%20That¶ms[0][items][0][amt]=12.34¶ms[0][items][1][id]=This%20%26%20That¶ms[0][items][1][desc]=This%20%26%20That¶ms[0][items][1][amt]=12.34
Example XML Response
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <responses> <response_set> <request> <action>charge</action> <params> <payer_name>This & That</payer_name> <payer_address>This & That</payer_address> <payer_city>This & That</payer_city> <payer_state>WA</payer_state> <payer_zip>98123</payer_zip> <payer_country>USA</payer_country> <payer_phone>This & That</payer_phone> <payer_email>test@example.com</payer_email> <email_cc>test@example.com</email_cc> <email_bcc>test@example.com</email_bcc> <email_subject>This & That</email_subject> <email_body>This & That</email_body> <recur_email_cc>test@example.com</recur_email_cc> <recur_email_bcc>test@example.com</recur_email_bcc> <recur_email_subject>This & That</recur_email_subject> <recur_email_body>This & That</recur_email_body> <send_email>false</send_email> <payment_type>1</payment_type> <payer_id_str>This & That</payer_id_str> <merch_acct_id_str>This & That</merch_acct_id_str> <cc_num>4111111111111111</cc_num> <cc_exp_mo>1</cc_exp_mo> <cc_exp_yr>2016</cc_exp_yr> <cc_cvv>This & That</cc_cvv> <settlement_length>1234</settlement_length> <ach_acct_num>This & That</ach_acct_num> <ach_routing_num>This & That</ach_routing_num> <items> <item0> <id>This & That</id> <desc>This & That</desc> <amt>12.34</amt> </item0> <item1> <id>This & That</id> <desc>This & That</desc> <amt>12.34</amt> </item1> </items> <currency>840</currency> <dynamic_descriptor>This & That</dynamic_descriptor> <client_trans_id>This & That</client_trans_id> <client_payer_id>This & That</client_payer_id> <store_payer_data>false</store_payer_data> <sub_id1>This & That</sub_id1> <sub_id2>This & That</sub_id2> <sub_id3>This & That</sub_id3> <sub_id4>This & That</sub_id4> <sub_id5>This & That</sub_id5> <sub_id6>This & That</sub_id6> <sub_id7>This & That</sub_id7> <sub_id8>This & That</sub_id8> <sub_id9>This & That</sub_id9> <sub_id10>This & That</sub_id10> <async>false</async> <callback_url>This & That</callback_url> <extra_params> <my_key_1>my_value_1</my_key_1> <my_key_2>my_value_2</my_key_2> </extra_params> </params> </request> <response> <status></status> <errors> </errors> <request_id_str>example_request_id_str</request_id_str> <trans_id_str>This & That</trans_id_str> <trans_recur_id_str>This & That</trans_recur_id_str> <trans_status>This & That</trans_status> <trans_status_msg>This & That</trans_status_msg> <processor_response_code>This & That</processor_response_code> <processor_response_msg>This & That</processor_response_msg> <acct_last_four>This & That</acct_last_four> <amt_processed>12.34</amt_processed> <payer_id_str>This & That</payer_id_str> <items> <item0> <id>This & That</id> <desc>This & That</desc> <amt>12.34</amt> <qty>1234</qty> <hide_qty>false</hide_qty> <is_pledge>false</is_pledge> <amt_today>12.34</amt_today> <first_charge_date>2016-01-26</first_charge_date> <recur_first_charge_date>2016-01-26</recur_first_charge_date> <recur_freq>1234</recur_freq> <recur_end_criteria>1234</recur_end_criteria> <recur_end_value>This & That</recur_end_value> <sub_id1>This & That</sub_id1> <sub_id2>This & That</sub_id2> <sub_id3>This & That</sub_id3> <sub_id4>This & That</sub_id4> <sub_id5>This & That</sub_id5> <sub_id6>This & That</sub_id6> <sub_id7>This & That</sub_id7> <sub_id8>This & That</sub_id8> <sub_id9>This & That</sub_id9> <sub_id10>This & That</sub_id10> <id_str>This & That</id_str> <charge_day_of_month>This & That</charge_day_of_month> <next_charge_date>2016-01-26</next_charge_date> <last_charge_date>2016-01-26</last_charge_date> <last_charge_amt>12.34</last_charge_amt> <installment_amt>12.34</installment_amt> <remaining_amt>12.34</remaining_amt> <remaining_charges>1234</remaining_charges> <amt_to_date>12.34</amt_to_date> <charges_to_date>1234</charges_to_date> <total_amt>12.34</total_amt> <total_charges>1234</total_charges> </item0> <item1> <id>This & That</id> <desc>This & That</desc> <amt>12.34</amt> <qty>1234</qty> <hide_qty>false</hide_qty> <is_pledge>false</is_pledge> <amt_today>12.34</amt_today> <first_charge_date>2016-01-26</first_charge_date> <recur_first_charge_date>2016-01-26</recur_first_charge_date> <recur_freq>1234</recur_freq> <recur_end_criteria>1234</recur_end_criteria> <recur_end_value>This & That</recur_end_value> <sub_id1>This & That</sub_id1> <sub_id2>This & That</sub_id2> <sub_id3>This & That</sub_id3> <sub_id4>This & That</sub_id4> <sub_id5>This & That</sub_id5> <sub_id6>This & That</sub_id6> <sub_id7>This & That</sub_id7> <sub_id8>This & That</sub_id8> <sub_id9>This & That</sub_id9> <sub_id10>This & That</sub_id10> <id_str>This & That</id_str> <charge_day_of_month>This & That</charge_day_of_month> <next_charge_date>2016-01-26</next_charge_date> <last_charge_date>2016-01-26</last_charge_date> <last_charge_amt>12.34</last_charge_amt> <installment_amt>12.34</installment_amt> <remaining_amt>12.34</remaining_amt> <remaining_charges>1234</remaining_charges> <amt_to_date>12.34</amt_to_date> <charges_to_date>1234</charges_to_date> <total_amt>12.34</total_amt> <total_charges>1234</total_charges> </item1> </items> </response> </response_set> </responses>
Example PHP Response
a:1:{i:0;a:2:{s:7:"request";a:2:{s:6:"action";s:6:"charge";s:6:"params";a:46:{s:10:"payer_name";s:11:"This & That";s:13:"payer_address";s:11:"This & That";s:10:"payer_city";s:11:"This & That";s:11:"payer_state";s:2:"WA";s:9:"payer_zip";s:5:"98123";s:13:"payer_country";s:3:"USA";s:11:"payer_phone";s:11:"This & That";s:11:"payer_email";s:16:"test@example.com";s:8:"email_cc";s:16:"test@example.com";s:9:"email_bcc";s:16:"test@example.com";s:13:"email_subject";s:11:"This & That";s:10:"email_body";s:11:"This & That";s:14:"recur_email_cc";s:16:"test@example.com";s:15:"recur_email_bcc";s:16:"test@example.com";s:19:"recur_email_subject";s:11:"This & That";s:16:"recur_email_body";s:11:"This & That";s:10:"send_email";s:5:"false";s:12:"payment_type";i:1;s:12:"payer_id_str";s:11:"This & That";s:17:"merch_acct_id_str";s:11:"This & That";s:6:"cc_num";i:4111111111111111;s:9:"cc_exp_mo";s:1:"1";s:9:"cc_exp_yr";s:4:"2016";s:6:"cc_cvv";s:11:"This & That";s:17:"settlement_length";i:1234;s:12:"ach_acct_num";s:11:"This & That";s:15:"ach_routing_num";s:11:"This & That";s:5:"items";a:2:{i:0;a:3:{s:2:"id";s:11:"This & That";s:4:"desc";s:11:"This & That";s:3:"amt";d:12.34;}i:1;a:3:{s:2:"id";s:11:"This & That";s:4:"desc";s:11:"This & That";s:3:"amt";d:12.34;}}s:8:"currency";i:840;s:18:"dynamic_descriptor";s:11:"This & That";s:15:"client_trans_id";s:11:"This & That";s:15:"client_payer_id";s:11:"This & That";s:16:"store_payer_data";s:5:"false";s:7:"sub_id1";s:11:"This & That";s:7:"sub_id2";s:11:"This & That";s:7:"sub_id3";s:11:"This & That";s:7:"sub_id4";s:11:"This & That";s:7:"sub_id5";s:11:"This & That";s:7:"sub_id6";s:11:"This & That";s:7:"sub_id7";s:11:"This & That";s:7:"sub_id8";s:11:"This & That";s:7:"sub_id9";s:11:"This & That";s:8:"sub_id10";s:11:"This & That";s:5:"async";s:5:"false";s:12:"callback_url";s:11:"This & That";s:12:"extra_params";a:2:{s:8:"my_key_1";s:10:"my_value_1";s:8:"my_key_2";s:10:"my_value_2";}}}s:8:"response";a:13:{s:6:"status";s:0:"";s:6:"errors";a:0:{}s:14:"request_id_str";s:22:"example_request_id_str";s:12:"trans_id_str";s:11:"This & That";s:18:"trans_recur_id_str";s:11:"This & That";s:12:"trans_status";s:11:"This & That";s:16:"trans_status_msg";s:11:"This & That";s:23:"processor_response_code";s:11:"This & That";s:22:"processor_response_msg";s:11:"This & That";s:14:"acct_last_four";s:11:"This & That";s:13:"amt_processed";d:12.34;s:12:"payer_id_str";s:11:"This & That";s:5:"items";a:2:{i:0;a:34:{s:2:"id";s:11:"This & That";s:4:"desc";s:11:"This & That";s:3:"amt";d:12.34;s:3:"qty";i:1234;s:8:"hide_qty";s:5:"false";s:9:"is_pledge";s:5:"false";s:9:"amt_today";d:12.34;s:17:"first_charge_date";s:10:"2016-01-26";s:23:"recur_first_charge_date";s:10:"2016-01-26";s:10:"recur_freq";i:1234;s:18:"recur_end_criteria";i:1234;s:15:"recur_end_value";s:11:"This & That";s:7:"sub_id1";s:11:"This & That";s:7:"sub_id2";s:11:"This & That";s:7:"sub_id3";s:11:"This & That";s:7:"sub_id4";s:11:"This & That";s:7:"sub_id5";s:11:"This & That";s:7:"sub_id6";s:11:"This & That";s:7:"sub_id7";s:11:"This & That";s:7:"sub_id8";s:11:"This & That";s:7:"sub_id9";s:11:"This & That";s:8:"sub_id10";s:11:"This & That";s:6:"id_str";s:11:"This & That";s:19:"charge_day_of_month";s:11:"This & That";s:16:"next_charge_date";s:10:"2016-01-26";s:16:"last_charge_date";s:10:"2016-01-26";s:15:"last_charge_amt";d:12.34;s:15:"installment_amt";d:12.34;s:13:"remaining_amt";d:12.34;s:17:"remaining_charges";i:1234;s:11:"amt_to_date";d:12.34;s:15:"charges_to_date";i:1234;s:9:"total_amt";d:12.34;s:13:"total_charges";i:1234;}i:1;a:34:{s:2:"id";s:11:"This & That";s:4:"desc";s:11:"This & That";s:3:"amt";d:12.34;s:3:"qty";i:1234;s:8:"hide_qty";s:5:"false";s:9:"is_pledge";s:5:"false";s:9:"amt_today";d:12.34;s:17:"first_charge_date";s:10:"2016-01-26";s:23:"recur_first_charge_date";s:10:"2016-01-26";s:10:"recur_freq";i:1234;s:18:"recur_end_criteria";i:1234;s:15:"recur_end_value";s:11:"This & That";s:7:"sub_id1";s:11:"This & That";s:7:"sub_id2";s:11:"This & That";s:7:"sub_id3";s:11:"This & That";s:7:"sub_id4";s:11:"This & That";s:7:"sub_id5";s:11:"This & That";s:7:"sub_id6";s:11:"This & That";s:7:"sub_id7";s:11:"This & That";s:7:"sub_id8";s:11:"This & That";s:7:"sub_id9";s:11:"This & That";s:8:"sub_id10";s:11:"This & That";s:6:"id_str";s:11:"This & That";s:19:"charge_day_of_month";s:11:"This & That";s:16:"next_charge_date";s:10:"2016-01-26";s:16:"last_charge_date";s:10:"2016-01-26";s:15:"last_charge_amt";d:12.34;s:15:"installment_amt";d:12.34;s:13:"remaining_amt";d:12.34;s:17:"remaining_charges";i:1234;s:11:"amt_to_date";d:12.34;s:15:"charges_to_date";i:1234;s:9:"total_amt";d:12.34;s:13:"total_charges";i:1234;}}}}}
Example JSON Response
[{"request":{"action":"charge","params":{"payer_name":"This & That","payer_address":"This & That","payer_city":"This & That","payer_state":"WA","payer_zip":"98123","payer_country":"USA","payer_phone":"This & That","payer_email":"test@example.com","email_cc":"test@example.com","email_bcc":"test@example.com","email_subject":"This & That","email_body":"This & That","recur_email_cc":"test@example.com","recur_email_bcc":"test@example.com","recur_email_subject":"This & That","recur_email_body":"This & That","send_email":"false","payment_type":1,"payer_id_str":"This & That","merch_acct_id_str":"This & That","cc_num":4111111111111111,"cc_exp_mo":"1","cc_exp_yr":"2016","cc_cvv":"This & That","settlement_length":1234,"ach_acct_num":"This & That","ach_routing_num":"This & That","items":[{"id":"This & That","desc":"This & That","amt":12.34},{"id":"This & That","desc":"This & That","amt":12.34}],"currency":840,"dynamic_descriptor":"This & That","client_trans_id":"This & That","client_payer_id":"This & That","store_payer_data":"false","sub_id1":"This & That","sub_id2":"This & That","sub_id3":"This & That","sub_id4":"This & That","sub_id5":"This & That","sub_id6":"This & That","sub_id7":"This & That","sub_id8":"This & That","sub_id9":"This & That","sub_id10":"This & That","async":"false","callback_url":"This & That","extra_params":{"my_key_1":"my_value_1","my_key_2":"my_value_2"}}},"response":{"status":"","errors":[],"request_id_str":"example_request_id_str","trans_id_str":"This & That","trans_recur_id_str":"This & That","trans_status":"This & That","trans_status_msg":"This & That","processor_response_code":"This & That","processor_response_msg":"This & That","acct_last_four":"This & That","amt_processed":12.34,"payer_id_str":"This & That","items":[{"id":"This & That","desc":"This & That","amt":12.34,"qty":1234,"hide_qty":"false","is_pledge":"false","amt_today":12.34,"first_charge_date":"2016-01-26","recur_first_charge_date":"2016-01-26","recur_freq":1234,"recur_end_criteria":1234,"recur_end_value":"This & That","sub_id1":"This & That","sub_id2":"This & That","sub_id3":"This & That","sub_id4":"This & That","sub_id5":"This & That","sub_id6":"This & That","sub_id7":"This & That","sub_id8":"This & That","sub_id9":"This & That","sub_id10":"This & That","id_str":"This & That","charge_day_of_month":"This & That","next_charge_date":"2016-01-26","last_charge_date":"2016-01-26","last_charge_amt":12.34,"installment_amt":12.34,"remaining_amt":12.34,"remaining_charges":1234,"amt_to_date":12.34,"charges_to_date":1234,"total_amt":12.34,"total_charges":1234},{"id":"This & That","desc":"This & That","amt":12.34,"qty":1234,"hide_qty":"false","is_pledge":"false","amt_today":12.34,"first_charge_date":"2016-01-26","recur_first_charge_date":"2016-01-26","recur_freq":1234,"recur_end_criteria":1234,"recur_end_value":"This & That","sub_id1":"This & That","sub_id2":"This & That","sub_id3":"This & That","sub_id4":"This & That","sub_id5":"This & That","sub_id6":"This & That","sub_id7":"This & That","sub_id8":"This & That","sub_id9":"This & That","sub_id10":"This & That","id_str":"This & That","charge_day_of_month":"This & That","next_charge_date":"2016-01-26","last_charge_date":"2016-01-26","last_charge_amt":12.34,"installment_amt":12.34,"remaining_amt":12.34,"remaining_charges":1234,"amt_to_date":12.34,"charges_to_date":1234,"total_amt":12.34,"total_charges":1234}]}}]
[{"request":{"action":"charge","params":{"payer_name":"This & That","payer_address":"This & That","payer_city":"This & That","payer_state":"WA","payer_zip":"98123","payer_country":"USA","payer_phone":"This & That","payer_email":"test@example.com","email_cc":"test@example.com","email_bcc":"test@example.com","email_subject":"This & That","email_body":"This & That","recur_email_cc":"test@example.com","recur_email_bcc":"test@example.com","recur_email_subject":"This & That","recur_email_body":"This & That","send_email":"false","payment_type":1,"payer_id_str":"This & That","merch_acct_id_str":"This & That","cc_num":4111111111111111,"cc_exp_mo":"1","cc_exp_yr":"2016","cc_cvv":"This & That","settlement_length":1234,"ach_acct_num":"This & That","ach_routing_num":"This & That","items":[{"id":"This & That","desc":"This & That","amt":12.34},{"id":"This & That","desc":"This & That","amt":12.34}],"currency":840,"dynamic_descriptor":"This & That","client_trans_id":"This & That","client_payer_id":"This & That","store_payer_data":"false","sub_id1":"This & That","sub_id2":"This & That","sub_id3":"This & That","sub_id4":"This & That","sub_id5":"This & That","sub_id6":"This & That","sub_id7":"This & That","sub_id8":"This & That","sub_id9":"This & That","sub_id10":"This & That","async":"false","callback_url":"This & That","extra_params":{"my_key_1":"my_value_1","my_key_2":"my_value_2"}}},"response":{"status":"","errors":[],"request_id_str":"example_request_id_str","trans_id_str":"This & That","trans_recur_id_str":"This & That","trans_status":"This & That","trans_status_msg":"This & That","processor_response_code":"This & That","processor_response_msg":"This & That","acct_last_four":"This & That","amt_processed":12.34,"payer_id_str":"This & That","items":[{"id":"This & That","desc":"This & That","amt":12.34,"qty":1234,"hide_qty":"false","is_pledge":"false","amt_today":12.34,"first_charge_date":"2016-01-26","recur_first_charge_date":"2016-01-26","recur_freq":1234,"recur_end_criteria":1234,"recur_end_value":"This & That","sub_id1":"This & That","sub_id2":"This & That","sub_id3":"This & That","sub_id4":"This & That","sub_id5":"This & That","sub_id6":"This & That","sub_id7":"This & That","sub_id8":"This & That","sub_id9":"This & That","sub_id10":"This & That","id_str":"This & That","charge_day_of_month":"This & That","next_charge_date":"2016-01-26","last_charge_date":"2016-01-26","last_charge_amt":12.34,"installment_amt":12.34,"remaining_amt":12.34,"remaining_charges":1234,"amt_to_date":12.34,"charges_to_date":1234,"total_amt":12.34,"total_charges":1234},{"id":"This & That","desc":"This & That","amt":12.34,"qty":1234,"hide_qty":"false","is_pledge":"false","amt_today":12.34,"first_charge_date":"2016-01-26","recur_first_charge_date":"2016-01-26","recur_freq":1234,"recur_end_criteria":1234,"recur_end_value":"This & That","sub_id1":"This & That","sub_id2":"This & That","sub_id3":"This & That","sub_id4":"This & That","sub_id5":"This & That","sub_id6":"This & That","sub_id7":"This & That","sub_id8":"This & That","sub_id9":"This & That","sub_id10":"This & That","id_str":"This & That","charge_day_of_month":"This & That","next_charge_date":"2016-01-26","last_charge_date":"2016-01-26","last_charge_amt":12.34,"installment_amt":12.34,"remaining_amt":12.34,"remaining_charges":1234,"amt_to_date":12.34,"charges_to_date":1234,"total_amt":12.34,"total_charges":1234}]}}]
error_codes
Error Code | Error Message |
---|---|
0 | No errors |
1 | API is currently down for maintenance |
2 | API can only be accessed using HTTPS |
3 | API can only be accessed directly (no incoming referrer) |
4 | Invalid API key |
5 | Unrecognized IP |
6 | Required parameter missing |
7 | Database error, tech support has been alerted to this issue and it should be resolved shortly |
8 | Internal error processing transaction |
9 | Invalid arguments to charge.php |
10 | Charge is not ready to process by charge.php |
11 | Shared memory could not be accessed by charge.php |
12 | Could not execute authorize.php |
13 | Invalid arguments to authorize.php |
14 | Shared memory could not be accessed by authorize.php |
15 | Transaction not found by authorize.php |
16 | Merchant account used in transaction not found by authorize.php |
17 | Merchant account used in transaction is inactive for authorize.php |
18 | Invalid payment type in authorize.php |
19 | Parent charge.php has timed out waiting for authorize.php |
20 | Script process_recur.php failed |
21 | Script process_settlement.php failed |
126 | Error processing transaction; please see trans_status |
127 | Merchant account not found |
128 | Transaction cart not found |
129 | Max transaction void processing time exceeded; please try again |
130 | There was a processor error voiding this transaction; please try again or contact customer service for help |
131 | Max transaction refund processing time exceeded |
132 | There was a processor error refunding this transaction; please contact customer service for help |
133 | We are currently unable to process transactions due to a planned processor outage from |
134 | Recurring cart has already been processed for this date |
135 | Recurring cart is not active |
Error Code | Error Message |
---|---|
1000 | Parameter format is invalid |
1001 | Same trans ID submitted previously, use a new trans ID (or leave blank) to ensure this transaction is not a duplicate |
1002 | This payer ID seems to be a duplicate of one already saved |
1003 | Stored payer info was not found based on |
1004 | Both payer_id_str and client_payer_id are used, but they don't reference the same stored payer |
1005 | Payment type is invalid |
1006 | Invalid country (3 letter ISO 3166-1 alpha-3 code, e.g. USA) |
1007 | Invalid state/province (2 letter abbreviation) |
1008 | Invalid zip code (5 digits or 5+4, e.g. 12345-6789) |
1009 | Invalid credit card data |
1010 | Expired credit card |
1011 | Invalid CVV format |
1012 | Settlement length is invalid |
1013 | Invalid routing number |
1014 | Invalid merchant account ID |
1015 | Merchant account is not setup to process this card type |
1016 | Invalid currency code (omit for USD) |
1017 | Invalid URL |
1018 | Nothing to process |
1019 | Amount cannot be negative |
1020 | Amount today must be less than the total pledge amount |
1021 | Start date is invalid |
1022 | Recurring items must have positive amounts |
1023 | Recurring frequency is invalid |
1024 | Recurring end criteria is invalid |
1025 | Recurring end value is invalid |
1026 | Maximum transaction amount exceeded |
1027 | Dynamic descriptor format is invalid |
1028 | Stored payer info does not contain the required account data for this type of transaction |
1029 | Transaction not found based on |
1030 | Item not found |
1031 | Only a currently authorized transaction can be voided |
1032 | Transaction void window has passed, you may want to refund the transaction instead |
1033 | Only a currently settled/funded transaction can be refunded |
1034 | Could not find account data for the transaction; usually this means that more than 180 days has passed since the transaction was settled |
1035 | Item is ineligible for a refund |
1036 | Refund amount is greater than original amount |
1037 | Only a currently authorized transaction can be settled |
get_payer_data
Name | Type | Description | Required? | Default Value |
---|---|---|---|---|
api_key | string | rFv696TwFUcpRwHZiyAJLxeDoNHftEm2 | Yes | |
action | string | get_payer_data | Yes | |
payer_id_str | string | Payer ID | No1 | |
client_payer_id | string | Your own ID number for this payer | No1 | |
output | string | json, xml, or php (serialized) | No1 | json |
Name | Type | Description |
---|---|---|
payer_id_str | string (8) | Stored payer ID for processing future transactions without re-sending account data |
client_payer_id | string (8) | Your own ID number for this payer |
payer_name | string | Payer name |
payer_address | string | Payer street address |
payer_city | string | Payer city |
payer_state | string (2) | Payer state/province |
payer_zip | string | Payer zip code |
payer_country | string (3) | Payer country (3 letter ISO 3166-1 alpha-3 code, e.g. USA) |
payer_phone | string | Payer phone |
payer_email | string | Payer email |
cc_num_last_four | string (4) | Last 4 digits of stored credit card number |
cc_exp_mo | int (2) | Credit card expiration month |
cc_exp_yr | int (4) | Credit card expiration year |
ach_acct_last_four | string (4) | Last 4 digits of stored bank account number |
status | string | 'success' or 'failure', this indicates only whether the input to the API is valid |
errors | array | Array of error code/message pairs ('err_no' => int, 'err_msg' => string) if status == 'failure'. See documentation. |
request_id_str | string (16) | A unique ID generated for each request made to the API. Please reference this value for customer support. |
Example GET Request
https://206.188.31.58/api_request.php?api_key=rFv696TwFUcpRwHZiyAJLxeDoNHftEm2&action[0]=get_payer_data
Example XML Response
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <responses> <response_set> <request> <action>get_payer_data</action> <params> <payer_id_str>This & That</payer_id_str> <client_payer_id>This & That</client_payer_id> </params> </request> <response> <status></status> <errors> </errors> <request_id_str>example_request_id_str</request_id_str> <payer_id_str>This & That</payer_id_str> <client_payer_id>This & That</client_payer_id> <payer_name>This & That</payer_name> <payer_address>This & That</payer_address> <payer_city>This & That</payer_city> <payer_state>WA</payer_state> <payer_zip>98123</payer_zip> <payer_country>USA</payer_country> <payer_phone>This & That</payer_phone> <payer_email>This & That</payer_email> <cc_num_last_four>This & That</cc_num_last_four> <cc_exp_mo>This & That</cc_exp_mo> <cc_exp_yr>This & That</cc_exp_yr> <ach_acct_last_four>This & That</ach_acct_last_four> </response> </response_set> </responses>
Example PHP Response
a:1:{i:0;a:2:{s:7:"request";a:2:{s:6:"action";s:14:"get_payer_data";s:6:"params";a:2:{s:12:"payer_id_str";s:11:"This & That";s:15:"client_payer_id";s:11:"This & That";}}s:8:"response";a:17:{s:6:"status";s:0:"";s:6:"errors";a:0:{}s:14:"request_id_str";s:22:"example_request_id_str";s:12:"payer_id_str";s:11:"This & That";s:15:"client_payer_id";s:11:"This & That";s:10:"payer_name";s:11:"This & That";s:13:"payer_address";s:11:"This & That";s:10:"payer_city";s:11:"This & That";s:11:"payer_state";s:2:"WA";s:9:"payer_zip";s:5:"98123";s:13:"payer_country";s:3:"USA";s:11:"payer_phone";s:11:"This & That";s:11:"payer_email";s:11:"This & That";s:16:"cc_num_last_four";s:11:"This & That";s:9:"cc_exp_mo";s:11:"This & That";s:9:"cc_exp_yr";s:11:"This & That";s:18:"ach_acct_last_four";s:11:"This & That";}}}
Example JSON Response
[{"request":{"action":"get_payer_data","params":{"payer_id_str":"This & That","client_payer_id":"This & That"}},"response":{"status":"","errors":[],"request_id_str":"example_request_id_str","payer_id_str":"This & That","client_payer_id":"This & That","payer_name":"This & That","payer_address":"This & That","payer_city":"This & That","payer_state":"WA","payer_zip":"98123","payer_country":"USA","payer_phone":"This & That","payer_email":"This & That","cc_num_last_four":"This & That","cc_exp_mo":"This & That","cc_exp_yr":"This & That","ach_acct_last_four":"This & That"}}]
get_recur_details
Get recurring charge details
Name | Type | Description | Required? | Default Value |
---|---|---|---|---|
api_key | string | rFv696TwFUcpRwHZiyAJLxeDoNHftEm2 | Yes | |
action | string | get_recur_details | Yes | |
trans_recur_id_str | string | Transaction Recurring ID or comma-separated list of recurring IDs (include this parameter but leave the value empty to view details for all active recurring charges) | No1 | |
output | string | json, xml, or php (serialized) | No1 | json |
Name | Type | Description |
---|---|---|
trans_recur_id_str | string (16) | Transaction Recurring ID |
orig_trans_id_str | string (16) | Initial transaction ID |
payer_id_str | string (8) | Stored payer ID for processing future transactions without re-sending account data |
dynamic_descriptor | string (25) | Charge description on payer's credit card statement |
payment_type | int (1) | 1 for credit card, 2 for e-check processing |
payer_name | ||
acct_last_four | string (4) | Last 4 digits of CC/eCheck account number |
cc_exp_mo | int (2) | Credit card expiration month |
cc_exp_yr | int (4) | Credit card expiration year |
payer_address | string | Payer street address |
payer_city | string | Payer city |
payer_state | string (2) | Payer state/province |
payer_zip | string | Payer zip code |
payer_country | string (3) | Payer country (3 letter ISO 3166-1 alpha-3 code, e.g. USA) |
payer_phone | string | Payer phone |
payer_email | Payer email | |
email_cc | Addresses to CC on email receipts | |
email_bcc | Addresses to BCC on email receipts | |
email_subject | string | Email receipt subject line |
email_body | string | Email receipt body |
send_email | boolean | Whether or not to send email receipt to payer_email, email_cc, and email_bcc on successful transaction |
currency | int (3) | 840 (US Dollars), 124 (Canadian Dollars) |
merch_acct_id_str | int | Merchant account ID |
client_payer_id | string (8) | Your own ID number for this payer |
sub_id1 | string | Transaction Sub ID |
sub_id2 | string | Transaction Sub ID |
sub_id3 | string | Transaction Sub ID |
sub_id4 | string | Transaction Sub ID |
sub_id5 | string | Transaction Sub ID |
sub_id6 | string | Transaction Sub ID |
sub_id7 | string | Transaction Sub ID |
sub_id8 | string | Transaction Sub ID |
sub_id9 | string | Transaction Sub ID |
sub_id10 | string | Transaction Sub ID |
callback_url | string | URL that will be called when we have a bank response or internal timeout has been reached |
prev_process_date | date | Last date that this charge was processed |
active | boolean | Whether or not the recurring charge is active |
items | items_response_array | See documentation |
status | string | 'success' or 'failure', this indicates only whether the input to the API is valid |
errors | array | Array of error code/message pairs ('err_no' => int, 'err_msg' => string) if status == 'failure'. See documentation. |
request_id_str | string (16) | A unique ID generated for each request made to the API. Please reference this value for customer support. |
Example GET Request
https://206.188.31.58/api_request.php?api_key=rFv696TwFUcpRwHZiyAJLxeDoNHftEm2&action[0]=get_recur_details
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <responses> <response_set> <request> <action>get_recur_details</action> <params> <trans_recur_id_str>This & That</trans_recur_id_str> </params> </request> <response> <status></status> <errors> </errors> <request_id_str>example_request_id_str</request_id_str> <trans_recur_id_str>This & That</trans_recur_id_str> <orig_trans_id_str>This & That</orig_trans_id_str> <payer_id_str>This & That</payer_id_str> <dynamic_descriptor>This & That</dynamic_descriptor> <payment_type>This & That</payment_type> <payer_name>This & That</payer_name> <acct_last_four>This & That</acct_last_four> <cc_exp_mo>This & That</cc_exp_mo> <cc_exp_yr>This & That</cc_exp_yr> <payer_address>This & That</payer_address> <payer_city>This & That</payer_city> <payer_state>WA</payer_state> <payer_zip>98123</payer_zip> <payer_country>USA</payer_country> <payer_phone>This & That</payer_phone> <payer_email>test@example.com</payer_email> <email_cc>test@example.com</email_cc> <email_bcc>test@example.com</email_bcc> <email_subject>This & That</email_subject> <email_body>This & That</email_body> <send_email>false</send_email> <currency>This & That</currency> <merch_acct_id_str>1234</merch_acct_id_str> <client_payer_id>This & That</client_payer_id> <sub_id1>This & That</sub_id1> <sub_id2>This & That</sub_id2> <sub_id3>This & That</sub_id3> <sub_id4>This & That</sub_id4> <sub_id5>This & That</sub_id5> <sub_id6>This & That</sub_id6> <sub_id7>This & That</sub_id7> <sub_id8>This & That</sub_id8> <sub_id9>This & That</sub_id9> <sub_id10>This & That</sub_id10> <callback_url>This & That</callback_url> <prev_process_date>2016-03-01</prev_process_date> <active>false</active> <items> <item0> <id>This & That</id> <desc>This & That</desc> <amt>12.34</amt> <qty>1234</qty> <hide_qty>false</hide_qty> <is_pledge>false</is_pledge> <amt_today>12.34</amt_today> <first_charge_date>2016-03-01</first_charge_date> <recur_first_charge_date>2016-03-01</recur_first_charge_date> <recur_freq>1234</recur_freq> <recur_end_criteria>1234</recur_end_criteria> <recur_end_value>This & That</recur_end_value> <sub_id1>This & That</sub_id1> <sub_id2>This & That</sub_id2> <sub_id3>This & That</sub_id3> <sub_id4>This & That</sub_id4> <sub_id5>This & That</sub_id5> <sub_id6>This & That</sub_id6> <sub_id7>This & That</sub_id7> <sub_id8>This & That</sub_id8> <sub_id9>This & That</sub_id9> <sub_id10>This & That</sub_id10> <id_str>This & That</id_str> <charge_day_of_month>This & That</charge_day_of_month> <next_charge_date>2016-03-01</next_charge_date> <last_charge_date>2016-03-01</last_charge_date> <last_charge_amt>12.34</last_charge_amt> <installment_amt>12.34</installment_amt> <remaining_amt>12.34</remaining_amt> <remaining_charges>1234</remaining_charges> <amt_to_date>12.34</amt_to_date> <charges_to_date>1234</charges_to_date> <total_amt>12.34</total_amt> <total_charges>1234</total_charges> </item0> <item1> <id>This & That</id> <desc>This & That</desc> <amt>12.34</amt> <qty>1234</qty> <hide_qty>false</hide_qty> <is_pledge>false</is_pledge> <amt_today>12.34</amt_today> <first_charge_date>2016-03-01</first_charge_date> <recur_first_charge_date>2016-03-01</recur_first_charge_date> <recur_freq>1234</recur_freq> <recur_end_criteria>1234</recur_end_criteria> <recur_end_value>This & That</recur_end_value> <sub_id1>This & That</sub_id1> <sub_id2>This & That</sub_id2> <sub_id3>This & That</sub_id3> <sub_id4>This & That</sub_id4> <sub_id5>This & That</sub_id5> <sub_id6>This & That</sub_id6> <sub_id7>This & That</sub_id7> <sub_id8>This & That</sub_id8> <sub_id9>This & That</sub_id9> <sub_id10>This & That</sub_id10> <id_str>This & That</id_str> <charge_day_of_month>This & That</charge_day_of_month> <next_charge_date>2016-03-01</next_charge_date> <last_charge_date>2016-03-01</last_charge_date> <last_charge_amt>12.34</last_charge_amt> <installment_amt>12.34</installment_amt> <remaining_amt>12.34</remaining_amt> <remaining_charges>1234</remaining_charges> <amt_to_date>12.34</amt_to_date> <charges_to_date>1234</charges_to_date> <total_amt>12.34</total_amt> <total_charges>1234</total_charges> </item1> </items> </response> </response_set> </responses>
Example PHP Response
a:1:{i:0;a:2:{s:7:"request";a:2:{s:6:"action";s:17:"get_recur_details";s:6:"params";a:1:{s:18:"trans_recur_id_str";s:11:"This & That";}}s:8:"response";a:41:{s:6:"status";s:0:"";s:6:"errors";a:0:{}s:14:"request_id_str";s:22:"example_request_id_str";s:18:"trans_recur_id_str";s:11:"This & That";s:17:"orig_trans_id_str";s:11:"This & That";s:12:"payer_id_str";s:11:"This & That";s:18:"dynamic_descriptor";s:11:"This & That";s:12:"payment_type";s:11:"This & That";s:10:"payer_name";s:11:"This & That";s:14:"acct_last_four";s:11:"This & That";s:9:"cc_exp_mo";s:11:"This & That";s:9:"cc_exp_yr";s:11:"This & That";s:13:"payer_address";s:11:"This & That";s:10:"payer_city";s:11:"This & That";s:11:"payer_state";s:2:"WA";s:9:"payer_zip";s:5:"98123";s:13:"payer_country";s:3:"USA";s:11:"payer_phone";s:11:"This & That";s:11:"payer_email";s:16:"test@example.com";s:8:"email_cc";s:16:"test@example.com";s:9:"email_bcc";s:16:"test@example.com";s:13:"email_subject";s:11:"This & That";s:10:"email_body";s:11:"This & That";s:10:"send_email";s:5:"false";s:8:"currency";s:11:"This & That";s:17:"merch_acct_id_str";i:1234;s:15:"client_payer_id";s:11:"This & That";s:7:"sub_id1";s:11:"This & That";s:7:"sub_id2";s:11:"This & That";s:7:"sub_id3";s:11:"This & That";s:7:"sub_id4";s:11:"This & That";s:7:"sub_id5";s:11:"This & That";s:7:"sub_id6";s:11:"This & That";s:7:"sub_id7";s:11:"This & That";s:7:"sub_id8";s:11:"This & That";s:7:"sub_id9";s:11:"This & That";s:8:"sub_id10";s:11:"This & That";s:12:"callback_url";s:11:"This & That";s:17:"prev_process_date";s:10:"2016-03-01";s:6:"active";s:5:"false";s:5:"items";a:2:{i:0;a:34:{s:2:"id";s:11:"This & That";s:4:"desc";s:11:"This & That";s:3:"amt";d:12.34;s:3:"qty";i:1234;s:8:"hide_qty";s:5:"false";s:9:"is_pledge";s:5:"false";s:9:"amt_today";d:12.34;s:17:"first_charge_date";s:10:"2016-03-01";s:23:"recur_first_charge_date";s:10:"2016-03-01";s:10:"recur_freq";i:1234;s:18:"recur_end_criteria";i:1234;s:15:"recur_end_value";s:11:"This & That";s:7:"sub_id1";s:11:"This & That";s:7:"sub_id2";s:11:"This & That";s:7:"sub_id3";s:11:"This & That";s:7:"sub_id4";s:11:"This & That";s:7:"sub_id5";s:11:"This & That";s:7:"sub_id6";s:11:"This & That";s:7:"sub_id7";s:11:"This & That";s:7:"sub_id8";s:11:"This & That";s:7:"sub_id9";s:11:"This & That";s:8:"sub_id10";s:11:"This & That";s:6:"id_str";s:11:"This & That";s:19:"charge_day_of_month";s:11:"This & That";s:16:"next_charge_date";s:10:"2016-03-01";s:16:"last_charge_date";s:10:"2016-03-01";s:15:"last_charge_amt";d:12.34;s:15:"installment_amt";d:12.34;s:13:"remaining_amt";d:12.34;s:17:"remaining_charges";i:1234;s:11:"amt_to_date";d:12.34;s:15:"charges_to_date";i:1234;s:9:"total_amt";d:12.34;s:13:"total_charges";i:1234;}i:1;a:34:{s:2:"id";s:11:"This & That";s:4:"desc";s:11:"This & That";s:3:"amt";d:12.34;s:3:"qty";i:1234;s:8:"hide_qty";s:5:"false";s:9:"is_pledge";s:5:"false";s:9:"amt_today";d:12.34;s:17:"first_charge_date";s:10:"2016-03-01";s:23:"recur_first_charge_date";s:10:"2016-03-01";s:10:"recur_freq";i:1234;s:18:"recur_end_criteria";i:1234;s:15:"recur_end_value";s:11:"This & That";s:7:"sub_id1";s:11:"This & That";s:7:"sub_id2";s:11:"This & That";s:7:"sub_id3";s:11:"This & That";s:7:"sub_id4";s:11:"This & That";s:7:"sub_id5";s:11:"This & That";s:7:"sub_id6";s:11:"This & That";s:7:"sub_id7";s:11:"This & That";s:7:"sub_id8";s:11:"This & That";s:7:"sub_id9";s:11:"This & That";s:8:"sub_id10";s:11:"This & That";s:6:"id_str";s:11:"This & That";s:19:"charge_day_of_month";s:11:"This & That";s:16:"next_charge_date";s:10:"2016-03-01";s:16:"last_charge_date";s:10:"2016-03-01";s:15:"last_charge_amt";d:12.34;s:15:"installment_amt";d:12.34;s:13:"remaining_amt";d:12.34;s:17:"remaining_charges";i:1234;s:11:"amt_to_date";d:12.34;s:15:"charges_to_date";i:1234;s:9:"total_amt";d:12.34;s:13:"total_charges";i:1234;}}}}}
Example JSON Response
[{"request":{"action":"get_recur_details","params":{"trans_recur_id_str":"This & That"}},"response":{"status":"","errors":[],"request_id_str":"example_request_id_str","trans_recur_id_str":"This & That","orig_trans_id_str":"This & That","payer_id_str":"This & That","dynamic_descriptor":"This & That","payment_type":"This & That","payer_name":"This & That","acct_last_four":"This & That","cc_exp_mo":"This & That","cc_exp_yr":"This & That","payer_address":"This & That","payer_city":"This & That","payer_state":"WA","payer_zip":"98123","payer_country":"USA","payer_phone":"This & That","payer_email":"test@example.com","email_cc":"test@example.com","email_bcc":"test@example.com","email_subject":"This & That","email_body":"This & That","send_email":"false","currency":"This & That","merch_acct_id_str":1234,"client_payer_id":"This & That","sub_id1":"This & That","sub_id2":"This & That","sub_id3":"This & That","sub_id4":"This & That","sub_id5":"This & That","sub_id6":"This & That","sub_id7":"This & That","sub_id8":"This & That","sub_id9":"This & That","sub_id10":"This & That","callback_url":"This & That","prev_process_date":"2016-03-01","active":"false","items":[{"id":"This & That","desc":"This & That","amt":12.34,"qty":1234,"hide_qty":"false","is_pledge":"false","amt_today":12.34,"first_charge_date":"2016-03-01","recur_first_charge_date":"2016-03-01","recur_freq":1234,"recur_end_criteria":1234,"recur_end_value":"This & That","sub_id1":"This & That","sub_id2":"This & That","sub_id3":"This & That","sub_id4":"This & That","sub_id5":"This & That","sub_id6":"This & That","sub_id7":"This & That","sub_id8":"This & That","sub_id9":"This & That","sub_id10":"This & That","id_str":"This & That","charge_day_of_month":"This & That","next_charge_date":"2016-03-01","last_charge_date":"2016-03-01","last_charge_amt":12.34,"installment_amt":12.34,"remaining_amt":12.34,"remaining_charges":1234,"amt_to_date":12.34,"charges_to_date":1234,"total_amt":12.34,"total_charges":1234},{"id":"This & That","desc":"This & That","amt":12.34,"qty":1234,"hide_qty":"false","is_pledge":"false","amt_today":12.34,"first_charge_date":"2016-03-01","recur_first_charge_date":"2016-03-01","recur_freq":1234,"recur_end_criteria":1234,"recur_end_value":"This & That","sub_id1":"This & That","sub_id2":"This & That","sub_id3":"This & That","sub_id4":"This & That","sub_id5":"This & That","sub_id6":"This & That","sub_id7":"This & That","sub_id8":"This & That","sub_id9":"This & That","sub_id10":"This & That","id_str":"This & That","charge_day_of_month":"This & That","next_charge_date":"2016-03-01","last_charge_date":"2016-03-01","last_charge_amt":12.34,"installment_amt":12.34,"remaining_amt":12.34,"remaining_charges":1234,"amt_to_date":12.34,"charges_to_date":1234,"total_amt":12.34,"total_charges":1234}]}}]
get_trans_details
Get full transaction details/status
Name | Type | Description | Required? | Default Value |
---|---|---|---|---|
api_key | string | rFv696TwFUcpRwHZiyAJLxeDoNHftEm2 | Yes | |
action | string | get_trans_details | Yes | |
trans_id_str | string | Transaction ID or comma-seperated list of transaction IDs | No1 | |
client_trans_id | string | Your transaction ID, or comma-separated list and/or range of your transaction IDs (e.g. 1,2,5-10) | No1 | |
output | string | json, xml, or php (serialized) | No1 | json |
Name | Type | Description |
---|---|---|
trans_id_str | string (16) | Transaction ID |
orig_trans_id_str | string (16) | Initial transaction ID (if this is a follow-on recurring transaction) |
trans_recur_id_str | string (16) | Transaction Recurring ID |
refund_trans_id_strs | array | Refund transaction ID(s) (if this transaction was refunded) |
trans_datetime | datetime | Date/time at which transaction occured |
trans_status | int (2) | Transaction status ID |
trans_status_msg | string | Transaction status message |
processor_response_code | int (3) | Processor response code |
processor_response_msg | string | Processor response message |
amt_processed | float | Total transaction amount processed |
payer_name | string | Payer name |
payer_address | string | Payer street address |
payer_city | string | Payer city |
payer_state | string (2) | Payer state/province |
payer_zip | string | Payer zip code |
payer_country | string (3) | Payer country (3 letter ISO 3166-1 alpha-3 code, e.g. USA) |
payer_phone | string | Payer phone |
payer_email | Payer email | |
email_cc | Addresses to CC on email receipts | |
email_bcc | Addresses to BCC on email receipts | |
email_subject | string | Email receipt subject line |
email_body | string | Email receipt body |
recur_email_cc | Addresses to CC on recurring email receipts | |
recur_email_bcc | Addresses to BCC on recurring email receipts | |
recur_email_subject | string | Recurring email receipt subject line |
recur_email_body | string | Recurring email receipt body |
send_email | boolean | Whether or not to send email receipt to payer_email, email_cc, and email_bcc on successful transaction |
payment_type | int (1) | 0 for non-payment (recordkeeping only), 1 for credit card, 2 for e-check processing |
payer_id_str | string (8) | Stored payer ID for processing future transactions without re-sending account data |
merch_acct_id_str | string (8) | Merchant account ID |
acct_last_four | string (4) | Last 4 digits of CC/eCheck account number |
cc_exp_mo | int (2) | Credit card expiration month |
cc_exp_yr | int (4) | Credit card expiration year |
settlement_length | int (1) | Credit card settlement length (in days) |
items | items_response_array | See documentation |
currency | int (3) | 840 (US Dollars), 124 (Canadian Dollars) |
dynamic_descriptor | string (25) | Charge description on payer's credit card statement |
client_trans_id | string | Your own ID number for this transaction |
client_payer_id | string | Your own ID number for this payer |
sub_id1 | string | Transaction Sub ID |
sub_id2 | string | Transaction Sub ID |
sub_id3 | string | Transaction Sub ID |
sub_id4 | string | Transaction Sub ID |
sub_id5 | string | Transaction Sub ID |
sub_id6 | string | Transaction Sub ID |
sub_id7 | string | Transaction Sub ID |
sub_id8 | string | Transaction Sub ID |
sub_id9 | string | Transaction Sub ID |
sub_id10 | string | Transaction Sub ID |
callback_url | string | URL that will be called when we have a bank response or internal timeout has been reached |
extra_params | extra_array | See documentation |
status | string | 'success' or 'failure', this indicates only whether the input to the API is valid |
errors | array | Array of error code/message pairs ('err_no' => int, 'err_msg' => string) if status == 'failure'. See documentation. |
request_id_str | string (16) | A unique ID generated for each request made to the API. Please reference this value for customer support. |
Example GET Request
https://206.188.31.58/api_request.php?api_key=rFv696TwFUcpRwHZiyAJLxeDoNHftEm2&action[0]=get_trans_details
Example XML Response
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <responses> <response_set> <request> <action>get_trans_details</action> <params> <trans_id_str>This & That</trans_id_str> <client_trans_id>This & That</client_trans_id> </params> </request> <response> <status></status> <errors> </errors> <request_id_str>example_request_id_str</request_id_str> <trans_id_str>This & That</trans_id_str> <orig_trans_id_str>This & That</orig_trans_id_str> <trans_recur_id_str>This & That</trans_recur_id_str> <refund_trans_id_strs>This & That</refund_trans_id_strs> <trans_datetime>This & That</trans_datetime> <trans_status>This & That</trans_status> <trans_status_msg>This & That</trans_status_msg> <processor_response_code>This & That</processor_response_code> <processor_response_msg>This & That</processor_response_msg> <amt_processed>12.34</amt_processed> <payer_name>This & That</payer_name> <payer_address>This & That</payer_address> <payer_city>This & That</payer_city> <payer_state>WA</payer_state> <payer_zip>98123</payer_zip> <payer_country>USA</payer_country> <payer_phone>This & That</payer_phone> <payer_email>test@example.com</payer_email> <email_cc>test@example.com</email_cc> <email_bcc>test@example.com</email_bcc> <email_subject>This & That</email_subject> <email_body>This & That</email_body> <recur_email_cc>test@example.com</recur_email_cc> <recur_email_bcc>test@example.com</recur_email_bcc> <recur_email_subject>This & That</recur_email_subject> <recur_email_body>This & That</recur_email_body> <send_email>false</send_email> <payment_type>This & That</payment_type> <payer_id_str>This & That</payer_id_str> <merch_acct_id_str>This & That</merch_acct_id_str> <acct_last_four>This & That</acct_last_four> <cc_exp_mo>This & That</cc_exp_mo> <cc_exp_yr>This & That</cc_exp_yr> <settlement_length>This & That</settlement_length> <items> <item0> <id>This & That</id> <desc>This & That</desc> <amt>12.34</amt> <qty>1234</qty> <hide_qty>false</hide_qty> <is_pledge>false</is_pledge> <amt_today>12.34</amt_today> <first_charge_date>2016-03-01</first_charge_date> <recur_first_charge_date>2016-03-01</recur_first_charge_date> <recur_freq>1234</recur_freq> <recur_end_criteria>1234</recur_end_criteria> <recur_end_value>This & That</recur_end_value> <sub_id1>This & That</sub_id1> <sub_id2>This & That</sub_id2> <sub_id3>This & That</sub_id3> <sub_id4>This & That</sub_id4> <sub_id5>This & That</sub_id5> <sub_id6>This & That</sub_id6> <sub_id7>This & That</sub_id7> <sub_id8>This & That</sub_id8> <sub_id9>This & That</sub_id9> <sub_id10>This & That</sub_id10> <id_str>This & That</id_str> <charge_day_of_month>This & That</charge_day_of_month> <next_charge_date>2016-03-01</next_charge_date> <last_charge_date>2016-03-01</last_charge_date> <last_charge_amt>12.34</last_charge_amt> <installment_amt>12.34</installment_amt> <remaining_amt>12.34</remaining_amt> <remaining_charges>1234</remaining_charges> <amt_to_date>12.34</amt_to_date> <charges_to_date>1234</charges_to_date> <total_amt>12.34</total_amt> <total_charges>1234</total_charges> </item0> <item1> <id>This & That</id> <desc>This & That</desc> <amt>12.34</amt> <qty>1234</qty> <hide_qty>false</hide_qty> <is_pledge>false</is_pledge> <amt_today>12.34</amt_today> <first_charge_date>2016-03-01</first_charge_date> <recur_first_charge_date>2016-03-01</recur_first_charge_date> <recur_freq>1234</recur_freq> <recur_end_criteria>1234</recur_end_criteria> <recur_end_value>This & That</recur_end_value> <sub_id1>This & That</sub_id1> <sub_id2>This & That</sub_id2> <sub_id3>This & That</sub_id3> <sub_id4>This & That</sub_id4> <sub_id5>This & That</sub_id5> <sub_id6>This & That</sub_id6> <sub_id7>This & That</sub_id7> <sub_id8>This & That</sub_id8> <sub_id9>This & That</sub_id9> <sub_id10>This & That</sub_id10> <id_str>This & That</id_str> <charge_day_of_month>This & That</charge_day_of_month> <next_charge_date>2016-03-01</next_charge_date> <last_charge_date>2016-03-01</last_charge_date> <last_charge_amt>12.34</last_charge_amt> <installment_amt>12.34</installment_amt> <remaining_amt>12.34</remaining_amt> <remaining_charges>1234</remaining_charges> <amt_to_date>12.34</amt_to_date> <charges_to_date>1234</charges_to_date> <total_amt>12.34</total_amt> <total_charges>1234</total_charges> </item1> </items> <currency>This & That</currency> <dynamic_descriptor>This & That</dynamic_descriptor> <client_trans_id>This & That</client_trans_id> <client_payer_id>This & That</client_payer_id> <sub_id1>This & That</sub_id1> <sub_id2>This & That</sub_id2> <sub_id3>This & That</sub_id3> <sub_id4>This & That</sub_id4> <sub_id5>This & That</sub_id5> <sub_id6>This & That</sub_id6> <sub_id7>This & That</sub_id7> <sub_id8>This & That</sub_id8> <sub_id9>This & That</sub_id9> <sub_id10>This & That</sub_id10> <callback_url>This & That</callback_url> <extra_params> <my_key_1>my_value_1</my_key_1> <my_key_2>my_value_2</my_key_2> </extra_params> </response> </response_set> </responses>
Example PHP Response
a:1:{i:0;a:2:{s:7:"request";a:2:{s:6:"action";s:17:"get_trans_details";s:6:"params";a:2:{s:12:"trans_id_str";s:11:"This & That";s:15:"client_trans_id";s:11:"This & That";}}s:8:"response";a:54:{s:6:"status";s:0:"";s:6:"errors";a:0:{}s:14:"request_id_str";s:22:"example_request_id_str";s:12:"trans_id_str";s:11:"This & That";s:17:"orig_trans_id_str";s:11:"This & That";s:18:"trans_recur_id_str";s:11:"This & That";s:20:"refund_trans_id_strs";s:11:"This & That";s:14:"trans_datetime";s:11:"This & That";s:12:"trans_status";s:11:"This & That";s:16:"trans_status_msg";s:11:"This & That";s:23:"processor_response_code";s:11:"This & That";s:22:"processor_response_msg";s:11:"This & That";s:13:"amt_processed";d:12.34;s:10:"payer_name";s:11:"This & That";s:13:"payer_address";s:11:"This & That";s:10:"payer_city";s:11:"This & That";s:11:"payer_state";s:2:"WA";s:9:"payer_zip";s:5:"98123";s:13:"payer_country";s:3:"USA";s:11:"payer_phone";s:11:"This & That";s:11:"payer_email";s:16:"test@example.com";s:8:"email_cc";s:16:"test@example.com";s:9:"email_bcc";s:16:"test@example.com";s:13:"email_subject";s:11:"This & That";s:10:"email_body";s:11:"This & That";s:14:"recur_email_cc";s:16:"test@example.com";s:15:"recur_email_bcc";s:16:"test@example.com";s:19:"recur_email_subject";s:11:"This & That";s:16:"recur_email_body";s:11:"This & That";s:10:"send_email";s:5:"false";s:12:"payment_type";s:11:"This & That";s:12:"payer_id_str";s:11:"This & That";s:17:"merch_acct_id_str";s:11:"This & That";s:14:"acct_last_four";s:11:"This & That";s:9:"cc_exp_mo";s:11:"This & That";s:9:"cc_exp_yr";s:11:"This & That";s:17:"settlement_length";s:11:"This & That";s:5:"items";a:2:{i:0;a:34:{s:2:"id";s:11:"This & That";s:4:"desc";s:11:"This & That";s:3:"amt";d:12.34;s:3:"qty";i:1234;s:8:"hide_qty";s:5:"false";s:9:"is_pledge";s:5:"false";s:9:"amt_today";d:12.34;s:17:"first_charge_date";s:10:"2016-03-01";s:23:"recur_first_charge_date";s:10:"2016-03-01";s:10:"recur_freq";i:1234;s:18:"recur_end_criteria";i:1234;s:15:"recur_end_value";s:11:"This & That";s:7:"sub_id1";s:11:"This & That";s:7:"sub_id2";s:11:"This & That";s:7:"sub_id3";s:11:"This & That";s:7:"sub_id4";s:11:"This & That";s:7:"sub_id5";s:11:"This & That";s:7:"sub_id6";s:11:"This & That";s:7:"sub_id7";s:11:"This & That";s:7:"sub_id8";s:11:"This & That";s:7:"sub_id9";s:11:"This & That";s:8:"sub_id10";s:11:"This & That";s:6:"id_str";s:11:"This & That";s:19:"charge_day_of_month";s:11:"This & That";s:16:"next_charge_date";s:10:"2016-03-01";s:16:"last_charge_date";s:10:"2016-03-01";s:15:"last_charge_amt";d:12.34;s:15:"installment_amt";d:12.34;s:13:"remaining_amt";d:12.34;s:17:"remaining_charges";i:1234;s:11:"amt_to_date";d:12.34;s:15:"charges_to_date";i:1234;s:9:"total_amt";d:12.34;s:13:"total_charges";i:1234;}i:1;a:34:{s:2:"id";s:11:"This & That";s:4:"desc";s:11:"This & That";s:3:"amt";d:12.34;s:3:"qty";i:1234;s:8:"hide_qty";s:5:"false";s:9:"is_pledge";s:5:"false";s:9:"amt_today";d:12.34;s:17:"first_charge_date";s:10:"2016-03-01";s:23:"recur_first_charge_date";s:10:"2016-03-01";s:10:"recur_freq";i:1234;s:18:"recur_end_criteria";i:1234;s:15:"recur_end_value";s:11:"This & That";s:7:"sub_id1";s:11:"This & That";s:7:"sub_id2";s:11:"This & That";s:7:"sub_id3";s:11:"This & That";s:7:"sub_id4";s:11:"This & That";s:7:"sub_id5";s:11:"This & That";s:7:"sub_id6";s:11:"This & That";s:7:"sub_id7";s:11:"This & That";s:7:"sub_id8";s:11:"This & That";s:7:"sub_id9";s:11:"This & That";s:8:"sub_id10";s:11:"This & That";s:6:"id_str";s:11:"This & That";s:19:"charge_day_of_month";s:11:"This & That";s:16:"next_charge_date";s:10:"2016-03-01";s:16:"last_charge_date";s:10:"2016-03-01";s:15:"last_charge_amt";d:12.34;s:15:"installment_amt";d:12.34;s:13:"remaining_amt";d:12.34;s:17:"remaining_charges";i:1234;s:11:"amt_to_date";d:12.34;s:15:"charges_to_date";i:1234;s:9:"total_amt";d:12.34;s:13:"total_charges";i:1234;}}s:8:"currency";s:11:"This & That";s:18:"dynamic_descriptor";s:11:"This & That";s:15:"client_trans_id";s:11:"This & That";s:15:"client_payer_id";s:11:"This & That";s:7:"sub_id1";s:11:"This & That";s:7:"sub_id2";s:11:"This & That";s:7:"sub_id3";s:11:"This & That";s:7:"sub_id4";s:11:"This & That";s:7:"sub_id5";s:11:"This & That";s:7:"sub_id6";s:11:"This & That";s:7:"sub_id7";s:11:"This & That";s:7:"sub_id8";s:11:"This & That";s:7:"sub_id9";s:11:"This & That";s:8:"sub_id10";s:11:"This & That";s:12:"callback_url";s:11:"This & That";s:12:"extra_params";a:2:{s:8:"my_key_1";s:10:"my_value_1";s:8:"my_key_2";s:10:"my_value_2";}}}}
Example JSON Response
[{"request":{"action":"get_trans_details","params":{"trans_id_str":"This & That","client_trans_id":"This & That"}},"response":{"status":"","errors":[],"request_id_str":"example_request_id_str","trans_id_str":"This & That","orig_trans_id_str":"This & That","trans_recur_id_str":"This & That","refund_trans_id_strs":"This & That","trans_datetime":"This & That","trans_status":"This & That","trans_status_msg":"This & That","processor_response_code":"This & That","processor_response_msg":"This & That","amt_processed":12.34,"payer_name":"This & That","payer_address":"This & That","payer_city":"This & That","payer_state":"WA","payer_zip":"98123","payer_country":"USA","payer_phone":"This & That","payer_email":"test@example.com","email_cc":"test@example.com","email_bcc":"test@example.com","email_subject":"This & That","email_body":"This & That","recur_email_cc":"test@example.com","recur_email_bcc":"test@example.com","recur_email_subject":"This & That","recur_email_body":"This & That","send_email":"false","payment_type":"This & That","payer_id_str":"This & That","merch_acct_id_str":"This & That","acct_last_four":"This & That","cc_exp_mo":"This & That","cc_exp_yr":"This & That","settlement_length":"This & That","items":[{"id":"This & That","desc":"This & That","amt":12.34,"qty":1234,"hide_qty":"false","is_pledge":"false","amt_today":12.34,"first_charge_date":"2016-03-01","recur_first_charge_date":"2016-03-01","recur_freq":1234,"recur_end_criteria":1234,"recur_end_value":"This & That","sub_id1":"This & That","sub_id2":"This & That","sub_id3":"This & That","sub_id4":"This & That","sub_id5":"This & That","sub_id6":"This & That","sub_id7":"This & That","sub_id8":"This & That","sub_id9":"This & That","sub_id10":"This & That","id_str":"This & That","charge_day_of_month":"This & That","next_charge_date":"2016-03-01","last_charge_date":"2016-03-01","last_charge_amt":12.34,"installment_amt":12.34,"remaining_amt":12.34,"remaining_charges":1234,"amt_to_date":12.34,"charges_to_date":1234,"total_amt":12.34,"total_charges":1234},{"id":"This & That","desc":"This & That","amt":12.34,"qty":1234,"hide_qty":"false","is_pledge":"false","amt_today":12.34,"first_charge_date":"2016-03-01","recur_first_charge_date":"2016-03-01","recur_freq":1234,"recur_end_criteria":1234,"recur_end_value":"This & That","sub_id1":"This & That","sub_id2":"This & That","sub_id3":"This & That","sub_id4":"This & That","sub_id5":"This & That","sub_id6":"This & That","sub_id7":"This & That","sub_id8":"This & That","sub_id9":"This & That","sub_id10":"This & That","id_str":"This & That","charge_day_of_month":"This & That","next_charge_date":"2016-03-01","last_charge_date":"2016-03-01","last_charge_amt":12.34,"installment_amt":12.34,"remaining_amt":12.34,"remaining_charges":1234,"amt_to_date":12.34,"charges_to_date":1234,"total_amt":12.34,"total_charges":1234}],"currency":"This & That","dynamic_descriptor":"This & That","client_trans_id":"This & That","client_payer_id":"This & That","sub_id1":"This & That","sub_id2":"This & That","sub_id3":"This & That","sub_id4":"This & That","sub_id5":"This & That","sub_id6":"This & That","sub_id7":"This & That","sub_id8":"This & That","sub_id9":"This & That","sub_id10":"This & That","callback_url":"This & That","extra_params":{"my_key_1":"my_value_1","my_key_2":"my_value_2"}}}]
refund_trans_full
Fully refund a settled transaction
refund_trans_partial
Partially refund a settled transaction
Name | Type | Description | Required? | Default Value |
---|---|---|---|---|
api_key | string | rFv696TwFUcpRwHZiyAJLxeDoNHftEm2 | Yes | |
action | string | refund_trans_partial | Yes | |
trans_id_str | string | Transaction ID | No1 | |
client_trans_id | string | Your own ID number for this transaction | No1 | |
client_refund_trans_id | string | Your own ID number to assign to the refund transaction (this becomes the client_trans_id for the refund transaction) | No1 | |
items | items_refund_array | See documentation | Yes | |
output | string | json, xml, or php (serialized) | No1 | json |
Name | Type | Description |
---|---|---|
trans_id_str | string (16) | Transaction ID |
orig_trans_id_str | string (16) | Initial transaction ID (if this is a follow-on recurring transaction) |
trans_recur_id_str | string (16) | Transaction Recurring ID |
refund_trans_id_strs | array | Refund transaction ID(s) (if this transaction was refunded) |
trans_datetime | datetime | Date/time at which transaction occured |
trans_status | int (2) | Transaction status ID |
trans_status_msg | string | Transaction status message |
processor_response_code | int (3) | Processor response code |
processor_response_msg | string | Processor response message |
amt_processed | float | Total transaction amount processed |
payer_name | string | Payer name |
payer_address | string | Payer street address |
payer_city | string | Payer city |
payer_state | string (2) | Payer state/province |
payer_zip | string | Payer zip code |
payer_country | string (3) | Payer country (3 letter ISO 3166-1 alpha-3 code, e.g. USA) |
payer_phone | string | Payer phone |
payer_email | Payer email | |
email_cc | Addresses to CC on email receipts | |
email_bcc | Addresses to BCC on email receipts | |
email_subject | string | Email receipt subject line |
email_body | string | Email receipt body |
recur_email_cc | Addresses to CC on recurring email receipts | |
recur_email_bcc | Addresses to BCC on recurring email receipts | |
recur_email_subject | string | Recurring email receipt subject line |
recur_email_body | string | Recurring email receipt body |
send_email | boolean | Whether or not to send email receipt to payer_email, email_cc, and email_bcc on successful transaction |
payment_type | int (1) | 0 for non-payment (recordkeeping only), 1 for credit card, 2 for e-check processing |
payer_id_str | string (8) | Stored payer ID for processing future transactions without re-sending account data |
merch_acct_id_str | string (8) | Merchant account ID |
acct_last_four | string (4) | Last 4 digits of CC/eCheck account number |
cc_exp_mo | int (2) | Credit card expiration month |
cc_exp_yr | int (4) | Credit card expiration year |
settlement_length | int (1) | Credit card settlement length (in days) |
items | items_response_array | See documentation |
currency | int (3) | 840 (US Dollars), 124 (Canadian Dollars) |
dynamic_descriptor | string (25) | Charge description on payer's credit card statement |
client_trans_id | string | Your own ID number for this transaction |
client_payer_id | string | Your own ID number for this payer |
sub_id1 | string | Transaction Sub ID |
sub_id2 | string | Transaction Sub ID |
sub_id3 | string | Transaction Sub ID |
sub_id4 | string | Transaction Sub ID |
sub_id5 | string | Transaction Sub ID |
sub_id6 | string | Transaction Sub ID |
sub_id7 | string | Transaction Sub ID |
sub_id8 | string | Transaction Sub ID |
sub_id9 | string | Transaction Sub ID |
sub_id10 | string | Transaction Sub ID |
callback_url | string | URL that will be called when we have a bank response or internal timeout has been reached |
extra_params | extra_array | See documentation |
status | string | 'success' or 'failure', this indicates only whether the input to the API is valid |
errors | array | Array of error code/message pairs ('err_no' => int, 'err_msg' => string) if status == 'failure'. See documentation. |
request_id_str | string (16) | A unique ID generated for each request made to the API. Please reference this value for customer support. |
Example GET Request
https://206.188.31.58/api_request.php?api_key=rFv696TwFUcpRwHZiyAJLxeDoNHftEm2&action[0]=refund_trans_partial¶ms[0][items][0][id_str]=This%20%26%20That¶ms[0][items][0][amt]=12.34¶ms[0][items][1][id_str]=This%20%26%20That¶ms[0][items][1][amt]=12.34
Example XML Response
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <responses> <response_set> <request> <action>refund_trans_partial</action> <params> <trans_id_str>This & That</trans_id_str> <client_trans_id>This & That</client_trans_id> <client_refund_trans_id>This & That</client_refund_trans_id> <items> <item0> <id_str>This & That</id_str> <amt>12.34</amt> </item0> <item1> <id_str>This & That</id_str> <amt>12.34</amt> </item1> </items> </params> </request> <response> <status></status> <errors> </errors> <request_id_str>example_request_id_str</request_id_str> <trans_id_str>This & That</trans_id_str> <orig_trans_id_str>This & That</orig_trans_id_str> <trans_recur_id_str>This & That</trans_recur_id_str> <refund_trans_id_strs>This & That</refund_trans_id_strs> <trans_datetime>This & That</trans_datetime> <trans_status>This & That</trans_status> <trans_status_msg>This & That</trans_status_msg> <processor_response_code>This & That</processor_response_code> <processor_response_msg>This & That</processor_response_msg> <amt_processed>12.34</amt_processed> <payer_name>This & That</payer_name> <payer_address>This & That</payer_address> <payer_city>This & That</payer_city> <payer_state>WA</payer_state> <payer_zip>98123</payer_zip> <payer_country>USA</payer_country> <payer_phone>This & That</payer_phone> <payer_email>test@example.com</payer_email> <email_cc>test@example.com</email_cc> <email_bcc>test@example.com</email_bcc> <email_subject>This & That</email_subject> <email_body>This & That</email_body> <recur_email_cc>test@example.com</recur_email_cc> <recur_email_bcc>test@example.com</recur_email_bcc> <recur_email_subject>This & That</recur_email_subject> <recur_email_body>This & That</recur_email_body> <send_email>false</send_email> <payment_type>This & That</payment_type> <payer_id_str>This & That</payer_id_str> <merch_acct_id_str>This & That</merch_acct_id_str> <acct_last_four>This & That</acct_last_four> <cc_exp_mo>This & That</cc_exp_mo> <cc_exp_yr>This & That</cc_exp_yr> <settlement_length>This & That</settlement_length> <items> <item0> <id>This & That</id> <desc>This & That</desc> <amt>12.34</amt> <qty>1234</qty> <hide_qty>false</hide_qty> <is_pledge>false</is_pledge> <amt_today>12.34</amt_today> <first_charge_date>2016-03-01</first_charge_date> <recur_first_charge_date>2016-03-01</recur_first_charge_date> <recur_freq>1234</recur_freq> <recur_end_criteria>1234</recur_end_criteria> <recur_end_value>This & That</recur_end_value> <sub_id1>This & That</sub_id1> <sub_id2>This & That</sub_id2> <sub_id3>This & That</sub_id3> <sub_id4>This & That</sub_id4> <sub_id5>This & That</sub_id5> <sub_id6>This & That</sub_id6> <sub_id7>This & That</sub_id7> <sub_id8>This & That</sub_id8> <sub_id9>This & That</sub_id9> <sub_id10>This & That</sub_id10> <id_str>This & That</id_str> <charge_day_of_month>This & That</charge_day_of_month> <next_charge_date>2016-03-01</next_charge_date> <last_charge_date>2016-03-01</last_charge_date> <last_charge_amt>12.34</last_charge_amt> <installment_amt>12.34</installment_amt> <remaining_amt>12.34</remaining_amt> <remaining_charges>1234</remaining_charges> <amt_to_date>12.34</amt_to_date> <charges_to_date>1234</charges_to_date> <total_amt>12.34</total_amt> <total_charges>1234</total_charges> </item0> <item1> <id>This & That</id> <desc>This & That</desc> <amt>12.34</amt> <qty>1234</qty> <hide_qty>false</hide_qty> <is_pledge>false</is_pledge> <amt_today>12.34</amt_today> <first_charge_date>2016-03-01</first_charge_date> <recur_first_charge_date>2016-03-01</recur_first_charge_date> <recur_freq>1234</recur_freq> <recur_end_criteria>1234</recur_end_criteria> <recur_end_value>This & That</recur_end_value> <sub_id1>This & That</sub_id1> <sub_id2>This & That</sub_id2> <sub_id3>This & That</sub_id3> <sub_id4>This & That</sub_id4> <sub_id5>This & That</sub_id5> <sub_id6>This & That</sub_id6> <sub_id7>This & That</sub_id7> <sub_id8>This & That</sub_id8> <sub_id9>This & That</sub_id9> <sub_id10>This & That</sub_id10> <id_str>This & That</id_str> <charge_day_of_month>This & That</charge_day_of_month> <next_charge_date>2016-03-01</next_charge_date> <last_charge_date>2016-03-01</last_charge_date> <last_charge_amt>12.34</last_charge_amt> <installment_amt>12.34</installment_amt> <remaining_amt>12.34</remaining_amt> <remaining_charges>1234</remaining_charges> <amt_to_date>12.34</amt_to_date> <charges_to_date>1234</charges_to_date> <total_amt>12.34</total_amt> <total_charges>1234</total_charges> </item1> </items> <currency>This & That</currency> <dynamic_descriptor>This & That</dynamic_descriptor> <client_trans_id>This & That</client_trans_id> <client_payer_id>This & That</client_payer_id> <sub_id1>This & That</sub_id1> <sub_id2>This & That</sub_id2> <sub_id3>This & That</sub_id3> <sub_id4>This & That</sub_id4> <sub_id5>This & That</sub_id5> <sub_id6>This & That</sub_id6> <sub_id7>This & That</sub_id7> <sub_id8>This & That</sub_id8> <sub_id9>This & That</sub_id9> <sub_id10>This & That</sub_id10> <callback_url>This & That</callback_url> <extra_params> <my_key_1>my_value_1</my_key_1> <my_key_2>my_value_2</my_key_2> </extra_params> </response> </response_set> </responses>
Example PHP Response
a:1:{i:0;a:2:{s:7:"request";a:2:{s:6:"action";s:20:"refund_trans_partial";s:6:"params";a:4:{s:12:"trans_id_str";s:11:"This & That";s:15:"client_trans_id";s:11:"This & That";s:22:"client_refund_trans_id";s:11:"This & That";s:5:"items";a:2:{i:0;a:2:{s:6:"id_str";s:11:"This & That";s:3:"amt";d:12.34;}i:1;a:2:{s:6:"id_str";s:11:"This & That";s:3:"amt";d:12.34;}}}}s:8:"response";a:54:{s:6:"status";s:0:"";s:6:"errors";a:0:{}s:14:"request_id_str";s:22:"example_request_id_str";s:12:"trans_id_str";s:11:"This & That";s:17:"orig_trans_id_str";s:11:"This & That";s:18:"trans_recur_id_str";s:11:"This & That";s:20:"refund_trans_id_strs";s:11:"This & That";s:14:"trans_datetime";s:11:"This & That";s:12:"trans_status";s:11:"This & That";s:16:"trans_status_msg";s:11:"This & That";s:23:"processor_response_code";s:11:"This & That";s:22:"processor_response_msg";s:11:"This & That";s:13:"amt_processed";d:12.34;s:10:"payer_name";s:11:"This & That";s:13:"payer_address";s:11:"This & That";s:10:"payer_city";s:11:"This & That";s:11:"payer_state";s:2:"WA";s:9:"payer_zip";s:5:"98123";s:13:"payer_country";s:3:"USA";s:11:"payer_phone";s:11:"This & That";s:11:"payer_email";s:16:"test@example.com";s:8:"email_cc";s:16:"test@example.com";s:9:"email_bcc";s:16:"test@example.com";s:13:"email_subject";s:11:"This & That";s:10:"email_body";s:11:"This & That";s:14:"recur_email_cc";s:16:"test@example.com";s:15:"recur_email_bcc";s:16:"test@example.com";s:19:"recur_email_subject";s:11:"This & That";s:16:"recur_email_body";s:11:"This & That";s:10:"send_email";s:5:"false";s:12:"payment_type";s:11:"This & That";s:12:"payer_id_str";s:11:"This & That";s:17:"merch_acct_id_str";s:11:"This & That";s:14:"acct_last_four";s:11:"This & That";s:9:"cc_exp_mo";s:11:"This & That";s:9:"cc_exp_yr";s:11:"This & That";s:17:"settlement_length";s:11:"This & That";s:5:"items";a:2:{i:0;a:34:{s:2:"id";s:11:"This & That";s:4:"desc";s:11:"This & That";s:3:"amt";d:12.34;s:3:"qty";i:1234;s:8:"hide_qty";s:5:"false";s:9:"is_pledge";s:5:"false";s:9:"amt_today";d:12.34;s:17:"first_charge_date";s:10:"2016-03-01";s:23:"recur_first_charge_date";s:10:"2016-03-01";s:10:"recur_freq";i:1234;s:18:"recur_end_criteria";i:1234;s:15:"recur_end_value";s:11:"This & That";s:7:"sub_id1";s:11:"This & That";s:7:"sub_id2";s:11:"This & That";s:7:"sub_id3";s:11:"This & That";s:7:"sub_id4";s:11:"This & That";s:7:"sub_id5";s:11:"This & That";s:7:"sub_id6";s:11:"This & That";s:7:"sub_id7";s:11:"This & That";s:7:"sub_id8";s:11:"This & That";s:7:"sub_id9";s:11:"This & That";s:8:"sub_id10";s:11:"This & That";s:6:"id_str";s:11:"This & That";s:19:"charge_day_of_month";s:11:"This & That";s:16:"next_charge_date";s:10:"2016-03-01";s:16:"last_charge_date";s:10:"2016-03-01";s:15:"last_charge_amt";d:12.34;s:15:"installment_amt";d:12.34;s:13:"remaining_amt";d:12.34;s:17:"remaining_charges";i:1234;s:11:"amt_to_date";d:12.34;s:15:"charges_to_date";i:1234;s:9:"total_amt";d:12.34;s:13:"total_charges";i:1234;}i:1;a:34:{s:2:"id";s:11:"This & That";s:4:"desc";s:11:"This & That";s:3:"amt";d:12.34;s:3:"qty";i:1234;s:8:"hide_qty";s:5:"false";s:9:"is_pledge";s:5:"false";s:9:"amt_today";d:12.34;s:17:"first_charge_date";s:10:"2016-03-01";s:23:"recur_first_charge_date";s:10:"2016-03-01";s:10:"recur_freq";i:1234;s:18:"recur_end_criteria";i:1234;s:15:"recur_end_value";s:11:"This & That";s:7:"sub_id1";s:11:"This & That";s:7:"sub_id2";s:11:"This & That";s:7:"sub_id3";s:11:"This & That";s:7:"sub_id4";s:11:"This & That";s:7:"sub_id5";s:11:"This & That";s:7:"sub_id6";s:11:"This & That";s:7:"sub_id7";s:11:"This & That";s:7:"sub_id8";s:11:"This & That";s:7:"sub_id9";s:11:"This & That";s:8:"sub_id10";s:11:"This & That";s:6:"id_str";s:11:"This & That";s:19:"charge_day_of_month";s:11:"This & That";s:16:"next_charge_date";s:10:"2016-03-01";s:16:"last_charge_date";s:10:"2016-03-01";s:15:"last_charge_amt";d:12.34;s:15:"installment_amt";d:12.34;s:13:"remaining_amt";d:12.34;s:17:"remaining_charges";i:1234;s:11:"amt_to_date";d:12.34;s:15:"charges_to_date";i:1234;s:9:"total_amt";d:12.34;s:13:"total_charges";i:1234;}}s:8:"currency";s:11:"This & That";s:18:"dynamic_descriptor";s:11:"This & That";s:15:"client_trans_id";s:11:"This & That";s:15:"client_payer_id";s:11:"This & That";s:7:"sub_id1";s:11:"This & That";s:7:"sub_id2";s:11:"This & That";s:7:"sub_id3";s:11:"This & That";s:7:"sub_id4";s:11:"This & That";s:7:"sub_id5";s:11:"This & That";s:7:"sub_id6";s:11:"This & That";s:7:"sub_id7";s:11:"This & That";s:7:"sub_id8";s:11:"This & That";s:7:"sub_id9";s:11:"This & That";s:8:"sub_id10";s:11:"This & That";s:12:"callback_url";s:11:"This & That";s:12:"extra_params";a:2:{s:8:"my_key_1";s:10:"my_value_1";s:8:"my_key_2";s:10:"my_value_2";}}}}
Example JSON Response
[{"request":{"action":"refund_trans_partial","params":{"trans_id_str":"This & That","client_trans_id":"This & That","client_refund_trans_id":"This & That","items":[{"id_str":"This & That","amt":12.34},{"id_str":"This & That","amt":12.34}]}},"response":{"status":"","errors":[],"request_id_str":"example_request_id_str","trans_id_str":"This & That","orig_trans_id_str":"This & That","trans_recur_id_str":"This & That","refund_trans_id_strs":"This & That","trans_datetime":"This & That","trans_status":"This & That","trans_status_msg":"This & That","processor_response_code":"This & That","processor_response_msg":"This & That","amt_processed":12.34,"payer_name":"This & That","payer_address":"This & That","payer_city":"This & That","payer_state":"WA","payer_zip":"98123","payer_country":"USA","payer_phone":"This & That","payer_email":"test@example.com","email_cc":"test@example.com","email_bcc":"test@example.com","email_subject":"This & That","email_body":"This & That","recur_email_cc":"test@example.com","recur_email_bcc":"test@example.com","recur_email_subject":"This & That","recur_email_body":"This & That","send_email":"false","payment_type":"This & That","payer_id_str":"This & That","merch_acct_id_str":"This & That","acct_last_four":"This & That","cc_exp_mo":"This & That","cc_exp_yr":"This & That","settlement_length":"This & That","items":[{"id":"This & That","desc":"This & That","amt":12.34,"qty":1234,"hide_qty":"false","is_pledge":"false","amt_today":12.34,"first_charge_date":"2016-03-01","recur_first_charge_date":"2016-03-01","recur_freq":1234,"recur_end_criteria":1234,"recur_end_value":"This & That","sub_id1":"This & That","sub_id2":"This & That","sub_id3":"This & That","sub_id4":"This & That","sub_id5":"This & That","sub_id6":"This & That","sub_id7":"This & That","sub_id8":"This & That","sub_id9":"This & That","sub_id10":"This & That","id_str":"This & That","charge_day_of_month":"This & That","next_charge_date":"2016-03-01","last_charge_date":"2016-03-01","last_charge_amt":12.34,"installment_amt":12.34,"remaining_amt":12.34,"remaining_charges":1234,"amt_to_date":12.34,"charges_to_date":1234,"total_amt":12.34,"total_charges":1234},{"id":"This & That","desc":"This & That","amt":12.34,"qty":1234,"hide_qty":"false","is_pledge":"false","amt_today":12.34,"first_charge_date":"2016-03-01","recur_first_charge_date":"2016-03-01","recur_freq":1234,"recur_end_criteria":1234,"recur_end_value":"This & That","sub_id1":"This & That","sub_id2":"This & That","sub_id3":"This & That","sub_id4":"This & That","sub_id5":"This & That","sub_id6":"This & That","sub_id7":"This & That","sub_id8":"This & That","sub_id9":"This & That","sub_id10":"This & That","id_str":"This & That","charge_day_of_month":"This & That","next_charge_date":"2016-03-01","last_charge_date":"2016-03-01","last_charge_amt":12.34,"installment_amt":12.34,"remaining_amt":12.34,"remaining_charges":1234,"amt_to_date":12.34,"charges_to_date":1234,"total_amt":12.34,"total_charges":1234}],"currency":"This & That","dynamic_descriptor":"This & That","client_trans_id":"This & That","client_payer_id":"This & That","sub_id1":"This & That","sub_id2":"This & That","sub_id3":"This & That","sub_id4":"This & That","sub_id5":"This & That","sub_id6":"This & That","sub_id7":"This & That","sub_id8":"This & That","sub_id9":"This & That","sub_id10":"This & That","callback_url":"This & That","extra_params":{"my_key_1":"my_value_1","my_key_2":"my_value_2"}}}]
show_object_structure
Show object structure documentation
Name | Type | Description | Required? | Default Value |
---|---|---|---|---|
object | string | Object name (items_array, items_refund_array, items_response_array, extra_array) | Yes |
Name | Type | Description | Required? | Default Value |
---|---|---|---|---|
id | string (<= 32) | Item SKU | Yes | |
desc | string (<= 64) | Item Description | Yes | |
amt | float | Item Unit Price/Amount (item unit amount is multiplied by item quantity to calculate the item total) | Yes | |
qty | int | Item Quantity | No1 | 1 |
hide_qty | boolean | Set to 'true' to hide item quantity for display purposes if quantity is not applicable for the item | No1 | false |
is_pledge | boolean | Set to 'true' to have the software treat the item amount as a total pledge amount and work backwards to figure out what the recurring installment amounts should be | No1 | false |
amt_today | float | Different amount to charge today from the regular installment amount; omit or set to 0 to charge regular installment amount today3 | No1 | 0 |
first_charge_date | date | When to process the charge for this item (defaults to today); max 6 months | No1 | 2016-04-26 |
recur_first_charge_date | date | When to process the first follow-on charge for this item3 | No1 | |
recur_freq | int | 0 (One Time), 1 (Weekly), 2 (Every Other Week), 3 (Monthly), 4 (Quarterly), 5 (Half-Yearly), 6 (Yearly) | No1 | 0 |
recur_end_criteria | int | 02 (One Time/Ongoing), 1 (End After Number of Payments), 22 (End After Total Amount Paid), 3 (End By Given Date)3 | No1 | 0 |
recur_end_value | string (<= 18) | if 'recur_end_criteria' == 1 then int (number of payments to process), if 'recur_end_criteria' == 2 then float (total amount to process), if 'recur_end_criteria' == 3 then date (date to end processing)3 | No1 | |
sub_id1 | string (<= 64) | Item Sub ID | No1 | |
sub_id2 | string (<= 64) | Item Sub ID | No1 | |
sub_id3 | string (<= 64) | Item Sub ID | No1 | |
sub_id4 | string (<= 64) | Item Sub ID | No1 | |
sub_id5 | string (<= 64) | Item Sub ID | No1 | |
sub_id6 | string (<= 64) | Item Sub ID | No1 | |
sub_id7 | string (<= 64) | Item Sub ID | No1 | |
sub_id8 | string (<= 64) | Item Sub ID | No1 | |
sub_id9 | string (<= 64) | Item Sub ID | No1 | |
sub_id10 | string (<= 64) | Item Sub ID | No1 |
Name | Type | Description | Required? |
---|---|---|---|
id_str | string | Item ID | Yes |
amt | float | Item refund amount | Yes |
Name | Type | Description |
---|---|---|
id | string | Item SKU |
desc | string | Item Description |
amt | float | Item Unit Price/Amount (item unit amount is multiplied by item quantity to calculate the item total) |
qty | int | Item Quantity |
hide_qty | boolean | Set to 'true' to hide item quantity for display purposes if quantity is not applicable for the item |
is_pledge | boolean | Set to 'true' to have the software treat the item amount as a total pledge amount and work backwards to figure out what the recurring installment amounts should be |
amt_today | float | Different amount to charge today from the regular installment amount; omit or set to 0 to charge regular installment amount today3 |
first_charge_date | date | When to process the charge for this item (defaults to today); max 6 months |
recur_first_charge_date | date | When to process the first follow-on charge for this item3 |
recur_freq | int | 0 (One Time), 1 (Weekly), 2 (Every Other Week), 3 (Monthly), 4 (Quarterly), 5 (Half-Yearly), 6 (Yearly) |
recur_end_criteria | int | 02 (One Time/Ongoing), 1 (End After Number of Payments), 22 (End After Total Amount Paid), 3 (End By Given Date)3 |
recur_end_value | string | if 'recur_end_criteria' == 1 then int (number of payments to process), if 'recur_end_criteria' == 2 then float (total amount to process), if 'recur_end_criteria' == 3 then date (date to end processing)3 |
sub_id1 | string | Item Sub ID |
sub_id2 | string | Item Sub ID |
sub_id3 | string | Item Sub ID |
sub_id4 | string | Item Sub ID |
sub_id5 | string | Item Sub ID |
sub_id6 | string | Item Sub ID |
sub_id7 | string | Item Sub ID |
sub_id8 | string | Item Sub ID |
sub_id9 | string | Item Sub ID |
sub_id10 | string | Item Sub ID |
id_str | string (16) | Item ID |
charge_day_of_month | int (2) | Day of the month that subsequent charges will be processed3 |
next_charge_date | date | Date of the next subsequent charge, most useful for recurring charges starting today3 |
last_charge_date | date | Date of the last charge3 |
last_charge_amt | float | Amount of the last charge3 |
installment_amt | float | Amount of subsequent charges, can be different from the item total if pledge and amt_today is different from the item total3 |
remaining_amt | float | Total amount remaining left to charge on this item after today3 |
remaining_charges | int | Number of remaining charges left after today3 |
amt_to_date | float | Amount paid to date for this item3 |
charges_to_date | int | Number of charges to date for this item3 |
total_amt | float | Total amount pledged to pay for this item3 |
total_charges | int | Total number of recurring charges for this item3 |
store_payer_data
Store payer data for future use
Name | Type | Description | Required? | Default Value |
---|---|---|---|---|
api_key | string | rFv696TwFUcpRwHZiyAJLxeDoNHftEm2 | Yes | |
action | string | store_payer_data | Yes | |
payer_id_str | string | Include this parameter to update saved payer data | No1 | |
client_payer_id | string (<= 64) | Your own ID number for this payer | No1 | |
payer_name | string (<= 64) | Payer name | No1 | |
payer_address | string (<= 64) | Payer street address | No1 | |
payer_city | string (<= 32) | Payer city | No1 | |
payer_state | string (2) | Payer state/province (2 letter abbreviation if USA or CAN transaction) | No1 | |
payer_zip | string (<= 10) | Payer zip code (5 digits or 5+4, e.g. 12345-6789) | No1 | |
payer_country | string (3) | Payer country (3 letter ISO 3166-1 alpha-3 code, e.g. USA) | No1 | USA |
payer_phone | string (<= 32) | Payer phone | No1 | |
payer_email | Payer email (can be comma separated list) | No1 | ||
cc_num | int | Credit card number (digits only) | No1 | |
cc_exp_mo | int | Credit card expiration month (1-12) | No1 | |
cc_exp_yr | int | Credit card expiration year (4 digits) | No1 | |
ach_acct_num | string | eCheck account number | No1 | |
ach_routing_num | string | eCheck routing number | No1 | |
output | string | json, xml, or php (serialized) | No1 | json |
Name | Type | Description |
---|---|---|
payer_id_str | string (8) | Stored payer ID for processing future transactions without re-sending account data |
client_payer_id | string (8) | Your own ID number for this payer |
payer_name | string | Payer name |
payer_address | string | Payer street address |
payer_city | string | Payer city |
payer_state | string (2) | Payer state/province |
payer_zip | string | Payer zip code |
payer_country | string (3) | Payer country (3 letter ISO 3166-1 alpha-3 code, e.g. USA) |
payer_phone | string | Payer phone |
payer_email | string | Payer email |
cc_num_last_four | string (4) | Last 4 digits of stored credit card number |
cc_exp_mo | int (2) | Credit card expiration month |
cc_exp_yr | int (4) | Credit card expiration year |
ach_acct_last_four | string (4) | Last 4 digits of stored bank account number |
status | string | 'success' or 'failure', this indicates only whether the input to the API is valid |
errors | array | Array of error code/message pairs ('err_no' => int, 'err_msg' => string) if status == 'failure'. See documentation. |
request_id_str | string (16) | A unique ID generated for each request made to the API. Please reference this value for customer support. |
Example GET Request
https://206.188.31.58/api_request.php?api_key=rFv696TwFUcpRwHZiyAJLxeDoNHftEm2&action[0]=store_payer_data
Example XML Response
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <responses> <response_set> <request> <action>store_payer_data</action> <params> <payer_id_str>This & That</payer_id_str> <client_payer_id>This & That</client_payer_id> <payer_name>This & That</payer_name> <payer_address>This & That</payer_address> <payer_city>This & That</payer_city> <payer_state>WA</payer_state> <payer_zip>98123</payer_zip> <payer_country>USA</payer_country> <payer_phone>This & That</payer_phone> <payer_email>test@example.com</payer_email> <cc_num>4111111111111111</cc_num> <cc_exp_mo>3</cc_exp_mo> <cc_exp_yr>2016</cc_exp_yr> <ach_acct_num>This & That</ach_acct_num> <ach_routing_num>This & That</ach_routing_num> </params> </request> <response> <status></status> <errors> </errors> <request_id_str>example_request_id_str</request_id_str> <payer_id_str>This & That</payer_id_str> <client_payer_id>This & That</client_payer_id> <payer_name>This & That</payer_name> <payer_address>This & That</payer_address> <payer_city>This & That</payer_city> <payer_state>WA</payer_state> <payer_zip>98123</payer_zip> <payer_country>USA</payer_country> <payer_phone>This & That</payer_phone> <payer_email>This & That</payer_email> <cc_num_last_four>This & That</cc_num_last_four> <cc_exp_mo>This & That</cc_exp_mo> <cc_exp_yr>This & That</cc_exp_yr> <ach_acct_last_four>This & That</ach_acct_last_four> </response> </response_set> </responses>
Example PHP Response
a:1:{i:0;a:2:{s:7:"request";a:2:{s:6:"action";s:16:"store_payer_data";s:6:"params";a:15:{s:12:"payer_id_str";s:11:"This & That";s:15:"client_payer_id";s:11:"This & That";s:10:"payer_name";s:11:"This & That";s:13:"payer_address";s:11:"This & That";s:10:"payer_city";s:11:"This & That";s:11:"payer_state";s:2:"WA";s:9:"payer_zip";s:5:"98123";s:13:"payer_country";s:3:"USA";s:11:"payer_phone";s:11:"This & That";s:11:"payer_email";s:16:"test@example.com";s:6:"cc_num";i:4111111111111111;s:9:"cc_exp_mo";s:1:"3";s:9:"cc_exp_yr";s:4:"2016";s:12:"ach_acct_num";s:11:"This & That";s:15:"ach_routing_num";s:11:"This & That";}}s:8:"response";a:17:{s:6:"status";s:0:"";s:6:"errors";a:0:{}s:14:"request_id_str";s:22:"example_request_id_str";s:12:"payer_id_str";s:11:"This & That";s:15:"client_payer_id";s:11:"This & That";s:10:"payer_name";s:11:"This & That";s:13:"payer_address";s:11:"This & That";s:10:"payer_city";s:11:"This & That";s:11:"payer_state";s:2:"WA";s:9:"payer_zip";s:5:"98123";s:13:"payer_country";s:3:"USA";s:11:"payer_phone";s:11:"This & That";s:11:"payer_email";s:11:"This & That";s:16:"cc_num_last_four";s:11:"This & That";s:9:"cc_exp_mo";s:11:"This & That";s:9:"cc_exp_yr";s:11:"This & That";s:18:"ach_acct_last_four";s:11:"This & That";}}}
Example JSON Response
[{"request":{"action":"store_payer_data","params":{"payer_id_str":"This & That","client_payer_id":"This & That","payer_name":"This & That","payer_address":"This & That","payer_city":"This & That","payer_state":"WA","payer_zip":"98123","payer_country":"USA","payer_phone":"This & That","payer_email":"test@example.com","cc_num":4111111111111111,"cc_exp_mo":"3","cc_exp_yr":"2016","ach_acct_num":"This & That","ach_routing_num":"This & That"}},"response":{"status":"","errors":[],"request_id_str":"example_request_id_str","payer_id_str":"This & That","client_payer_id":"This & That","payer_name":"This & That","payer_address":"This & That","payer_city":"This & That","payer_state":"WA","payer_zip":"98123","payer_country":"USA","payer_phone":"This & That","payer_email":"This & That","cc_num_last_four":"This & That","cc_exp_mo":"This & That","cc_exp_yr":"This & That","ach_acct_last_four":"This & That"}}]
trans_statuses
Get a list of transaction codes/messages
Trans Status | Trans Status Message |
---|---|
0 | Data input validated (but no charge was processed) |
1 | Data input error; data not saved; please fix errors and try again |
11 | Data input validated and charge will now begin processing |
12 | Transaction is currently processing |
13 | Transaction is authorized; settlement/transfer of funds can proceed soon |
14 | Internal error occured authorizing transaction |
15 | Max transaction processing time exceeded; transaction voided; please try again |
16 | Error processing transaction; please see processor_response_code |
31 | Error processing transaction; billing address mismatch |
32 | Error processing transaction; CVV mismatch |
33 | Error processing transaction; fraud detected |
41 | Transaction marked for void |
42 | Transaction void processing |
43 | Transaction voided |
44 | Transaction void failed; please see processor_response_code |
51 | Credit card transaction settlement is processing |
52 | Credit card transaction settled; funds have been transferred |
53 | Credit card transaction settlement failed; please see processor_response_code |
54 | Max settlement processing time exceeded; please try again |
61 | E-check transaction settled; funds have been transferred |
62 | E-check transaction settlement failed; could not be funded |
63 | E-check transaction settlement failed; check returned |
64 | E-check transaction settlement failed; chargeback |
71 | Transaction marked for refund |
72 | Transaction refund processing |
73 | Transaction refunded |
81 | Token saved; authorization automatically voided |
void_trans
Void a pending transaction (one that has not been settled)
Name | Type | Description | Required? | Default Value |
---|---|---|---|---|
api_key | string | rFv696TwFUcpRwHZiyAJLxeDoNHftEm2 | Yes | |
action | string | void_trans | Yes | |
trans_id_str | string | Transaction ID | No1 | |
client_trans_id | string | Your own ID number for this transaction | No1 | |
output | string | json, xml, or php (serialized) | No1 | json |
Name | Type | Description |
---|---|---|
trans_id_str | string (16) | Transaction ID |
orig_trans_id_str | string (16) | Initial transaction ID (if this is a follow-on recurring transaction) |
trans_recur_id_str | string (16) | Transaction Recurring ID |
refund_trans_id_strs | array | Refund transaction ID(s) (if this transaction was refunded) |
trans_datetime | datetime | Date/time at which transaction occured |
trans_status | int (2) | Transaction status ID |
trans_status_msg | string | Transaction status message |
processor_response_code | int (3) | Processor response code |
processor_response_msg | string | Processor response message |
amt_processed | float | Total transaction amount processed |
payer_name | string | Payer name |
payer_address | string | Payer street address |
payer_city | string | Payer city |
payer_state | string (2) | Payer state/province |
payer_zip | string | Payer zip code |
payer_country | string (3) | Payer country (3 letter ISO 3166-1 alpha-3 code, e.g. USA) |
payer_phone | string | Payer phone |
payer_email | Payer email | |
email_cc | Addresses to CC on email receipts | |
email_bcc | Addresses to BCC on email receipts | |
email_subject | string | Email receipt subject line |
email_body | string | Email receipt body |
recur_email_cc | Addresses to CC on recurring email receipts | |
recur_email_bcc | Addresses to BCC on recurring email receipts | |
recur_email_subject | string | Recurring email receipt subject line |
recur_email_body | string | Recurring email receipt body |
send_email | boolean | Whether or not to send email receipt to payer_email, email_cc, and email_bcc on successful transaction |
payment_type | int (1) | 0 for non-payment (recordkeeping only), 1 for credit card, 2 for e-check processing |
payer_id_str | string (8) | Stored payer ID for processing future transactions without re-sending account data |
merch_acct_id_str | string (8) | Merchant account ID |
acct_last_four | string (4) | Last 4 digits of CC/eCheck account number |
cc_exp_mo | int (2) | Credit card expiration month |
cc_exp_yr | int (4) | Credit card expiration year |
settlement_length | int (1) | Credit card settlement length (in days) |
items | items_response_array | See documentation |
currency | int (3) | 840 (US Dollars), 124 (Canadian Dollars) |
dynamic_descriptor | string (25) | Charge description on payer's credit card statement |
client_trans_id | string | Your own ID number for this transaction |
client_payer_id | string | Your own ID number for this payer |
sub_id1 | string | Transaction Sub ID |
sub_id2 | string | Transaction Sub ID |
sub_id3 | string | Transaction Sub ID |
sub_id4 | string | Transaction Sub ID |
sub_id5 | string | Transaction Sub ID |
sub_id6 | string | Transaction Sub ID |
sub_id7 | string | Transaction Sub ID |
sub_id8 | string | Transaction Sub ID |
sub_id9 | string | Transaction Sub ID |
sub_id10 | string | Transaction Sub ID |
callback_url | string | URL that will be called when we have a bank response or internal timeout has been reached |
extra_params | extra_array | See documentation |
status | string | 'success' or 'failure', this indicates only whether the input to the API is valid |
errors | array | Array of error code/message pairs ('err_no' => int, 'err_msg' => string) if status == 'failure'. See documentation. |
request_id_str | string (16) | A unique ID generated for each request made to the API. Please reference this value for customer support. |
Example GET Request
https://206.188.31.58/api_request.php?api_key=rFv696TwFUcpRwHZiyAJLxeDoNHftEm2&action[0]=void_trans
Example XML Response
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <responses> <response_set> <request> <action>void_trans</action> <params> <trans_id_str>This & That</trans_id_str> <client_trans_id>This & That</client_trans_id> </params> </request> <response> <status></status> <errors> </errors> <request_id_str>example_request_id_str</request_id_str> <trans_id_str>This & That</trans_id_str> <orig_trans_id_str>This & That</orig_trans_id_str> <trans_recur_id_str>This & That</trans_recur_id_str> <refund_trans_id_strs>This & That</refund_trans_id_strs> <trans_datetime>This & That</trans_datetime> <trans_status>This & That</trans_status> <trans_status_msg>This & That</trans_status_msg> <processor_response_code>This & That</processor_response_code> <processor_response_msg>This & That</processor_response_msg> <amt_processed>12.34</amt_processed> <payer_name>This & That</payer_name> <payer_address>This & That</payer_address> <payer_city>This & That</payer_city> <payer_state>WA</payer_state> <payer_zip>98123</payer_zip> <payer_country>USA</payer_country> <payer_phone>This & That</payer_phone> <payer_email>test@example.com</payer_email> <email_cc>test@example.com</email_cc> <email_bcc>test@example.com</email_bcc> <email_subject>This & That</email_subject> <email_body>This & That</email_body> <recur_email_cc>test@example.com</recur_email_cc> <recur_email_bcc>test@example.com</recur_email_bcc> <recur_email_subject>This & That</recur_email_subject> <recur_email_body>This & That</recur_email_body> <send_email>false</send_email> <payment_type>This & That</payment_type> <payer_id_str>This & That</payer_id_str> <merch_acct_id_str>This & That</merch_acct_id_str> <acct_last_four>This & That</acct_last_four> <cc_exp_mo>This & That</cc_exp_mo> <cc_exp_yr>This & That</cc_exp_yr> <settlement_length>This & That</settlement_length> <items> <item0> <id>This & That</id> <desc>This & That</desc> <amt>12.34</amt> <qty>1234</qty> <hide_qty>false</hide_qty> <is_pledge>false</is_pledge> <amt_today>12.34</amt_today> <first_charge_date>2016-03-03</first_charge_date> <recur_first_charge_date>2016-03-03</recur_first_charge_date> <recur_freq>1234</recur_freq> <recur_end_criteria>1234</recur_end_criteria> <recur_end_value>This & That</recur_end_value> <sub_id1>This & That</sub_id1> <sub_id2>This & That</sub_id2> <sub_id3>This & That</sub_id3> <sub_id4>This & That</sub_id4> <sub_id5>This & That</sub_id5> <sub_id6>This & That</sub_id6> <sub_id7>This & That</sub_id7> <sub_id8>This & That</sub_id8> <sub_id9>This & That</sub_id9> <sub_id10>This & That</sub_id10> <id_str>This & That</id_str> <charge_day_of_month>This & That</charge_day_of_month> <next_charge_date>2016-03-03</next_charge_date> <last_charge_date>2016-03-03</last_charge_date> <last_charge_amt>12.34</last_charge_amt> <installment_amt>12.34</installment_amt> <remaining_amt>12.34</remaining_amt> <remaining_charges>1234</remaining_charges> <amt_to_date>12.34</amt_to_date> <charges_to_date>1234</charges_to_date> <total_amt>12.34</total_amt> <total_charges>1234</total_charges> </item0> <item1> <id>This & That</id> <desc>This & That</desc> <amt>12.34</amt> <qty>1234</qty> <hide_qty>false</hide_qty> <is_pledge>false</is_pledge> <amt_today>12.34</amt_today> <first_charge_date>2016-03-03</first_charge_date> <recur_first_charge_date>2016-03-03</recur_first_charge_date> <recur_freq>1234</recur_freq> <recur_end_criteria>1234</recur_end_criteria> <recur_end_value>This & That</recur_end_value> <sub_id1>This & That</sub_id1> <sub_id2>This & That</sub_id2> <sub_id3>This & That</sub_id3> <sub_id4>This & That</sub_id4> <sub_id5>This & That</sub_id5> <sub_id6>This & That</sub_id6> <sub_id7>This & That</sub_id7> <sub_id8>This & That</sub_id8> <sub_id9>This & That</sub_id9> <sub_id10>This & That</sub_id10> <id_str>This & That</id_str> <charge_day_of_month>This & That</charge_day_of_month> <next_charge_date>2016-03-03</next_charge_date> <last_charge_date>2016-03-03</last_charge_date> <last_charge_amt>12.34</last_charge_amt> <installment_amt>12.34</installment_amt> <remaining_amt>12.34</remaining_amt> <remaining_charges>1234</remaining_charges> <amt_to_date>12.34</amt_to_date> <charges_to_date>1234</charges_to_date> <total_amt>12.34</total_amt> <total_charges>1234</total_charges> </item1> </items> <currency>This & That</currency> <dynamic_descriptor>This & That</dynamic_descriptor> <client_trans_id>This & That</client_trans_id> <client_payer_id>This & That</client_payer_id> <sub_id1>This & That</sub_id1> <sub_id2>This & That</sub_id2> <sub_id3>This & That</sub_id3> <sub_id4>This & That</sub_id4> <sub_id5>This & That</sub_id5> <sub_id6>This & That</sub_id6> <sub_id7>This & That</sub_id7> <sub_id8>This & That</sub_id8> <sub_id9>This & That</sub_id9> <sub_id10>This & That</sub_id10> <callback_url>This & That</callback_url> <extra_params> <my_key_1>my_value_1</my_key_1> <my_key_2>my_value_2</my_key_2> </extra_params> </response> </response_set> </responses>
Example PHP Response
a:1:{i:0;a:2:{s:7:"request";a:2:{s:6:"action";s:10:"void_trans";s:6:"params";a:2:{s:12:"trans_id_str";s:11:"This & That";s:15:"client_trans_id";s:11:"This & That";}}s:8:"response";a:54:{s:6:"status";s:0:"";s:6:"errors";a:0:{}s:14:"request_id_str";s:22:"example_request_id_str";s:12:"trans_id_str";s:11:"This & That";s:17:"orig_trans_id_str";s:11:"This & That";s:18:"trans_recur_id_str";s:11:"This & That";s:20:"refund_trans_id_strs";s:11:"This & That";s:14:"trans_datetime";s:11:"This & That";s:12:"trans_status";s:11:"This & That";s:16:"trans_status_msg";s:11:"This & That";s:23:"processor_response_code";s:11:"This & That";s:22:"processor_response_msg";s:11:"This & That";s:13:"amt_processed";d:12.34;s:10:"payer_name";s:11:"This & That";s:13:"payer_address";s:11:"This & That";s:10:"payer_city";s:11:"This & That";s:11:"payer_state";s:2:"WA";s:9:"payer_zip";s:5:"98123";s:13:"payer_country";s:3:"USA";s:11:"payer_phone";s:11:"This & That";s:11:"payer_email";s:16:"test@example.com";s:8:"email_cc";s:16:"test@example.com";s:9:"email_bcc";s:16:"test@example.com";s:13:"email_subject";s:11:"This & That";s:10:"email_body";s:11:"This & That";s:14:"recur_email_cc";s:16:"test@example.com";s:15:"recur_email_bcc";s:16:"test@example.com";s:19:"recur_email_subject";s:11:"This & That";s:16:"recur_email_body";s:11:"This & That";s:10:"send_email";s:5:"false";s:12:"payment_type";s:11:"This & That";s:12:"payer_id_str";s:11:"This & That";s:17:"merch_acct_id_str";s:11:"This & That";s:14:"acct_last_four";s:11:"This & That";s:9:"cc_exp_mo";s:11:"This & That";s:9:"cc_exp_yr";s:11:"This & That";s:17:"settlement_length";s:11:"This & That";s:5:"items";a:2:{i:0;a:34:{s:2:"id";s:11:"This & That";s:4:"desc";s:11:"This & That";s:3:"amt";d:12.34;s:3:"qty";i:1234;s:8:"hide_qty";s:5:"false";s:9:"is_pledge";s:5:"false";s:9:"amt_today";d:12.34;s:17:"first_charge_date";s:10:"2016-03-03";s:23:"recur_first_charge_date";s:10:"2016-03-03";s:10:"recur_freq";i:1234;s:18:"recur_end_criteria";i:1234;s:15:"recur_end_value";s:11:"This & That";s:7:"sub_id1";s:11:"This & That";s:7:"sub_id2";s:11:"This & That";s:7:"sub_id3";s:11:"This & That";s:7:"sub_id4";s:11:"This & That";s:7:"sub_id5";s:11:"This & That";s:7:"sub_id6";s:11:"This & That";s:7:"sub_id7";s:11:"This & That";s:7:"sub_id8";s:11:"This & That";s:7:"sub_id9";s:11:"This & That";s:8:"sub_id10";s:11:"This & That";s:6:"id_str";s:11:"This & That";s:19:"charge_day_of_month";s:11:"This & That";s:16:"next_charge_date";s:10:"2016-03-03";s:16:"last_charge_date";s:10:"2016-03-03";s:15:"last_charge_amt";d:12.34;s:15:"installment_amt";d:12.34;s:13:"remaining_amt";d:12.34;s:17:"remaining_charges";i:1234;s:11:"amt_to_date";d:12.34;s:15:"charges_to_date";i:1234;s:9:"total_amt";d:12.34;s:13:"total_charges";i:1234;}i:1;a:34:{s:2:"id";s:11:"This & That";s:4:"desc";s:11:"This & That";s:3:"amt";d:12.34;s:3:"qty";i:1234;s:8:"hide_qty";s:5:"false";s:9:"is_pledge";s:5:"false";s:9:"amt_today";d:12.34;s:17:"first_charge_date";s:10:"2016-03-03";s:23:"recur_first_charge_date";s:10:"2016-03-03";s:10:"recur_freq";i:1234;s:18:"recur_end_criteria";i:1234;s:15:"recur_end_value";s:11:"This & That";s:7:"sub_id1";s:11:"This & That";s:7:"sub_id2";s:11:"This & That";s:7:"sub_id3";s:11:"This & That";s:7:"sub_id4";s:11:"This & That";s:7:"sub_id5";s:11:"This & That";s:7:"sub_id6";s:11:"This & That";s:7:"sub_id7";s:11:"This & That";s:7:"sub_id8";s:11:"This & That";s:7:"sub_id9";s:11:"This & That";s:8:"sub_id10";s:11:"This & That";s:6:"id_str";s:11:"This & That";s:19:"charge_day_of_month";s:11:"This & That";s:16:"next_charge_date";s:10:"2016-03-03";s:16:"last_charge_date";s:10:"2016-03-03";s:15:"last_charge_amt";d:12.34;s:15:"installment_amt";d:12.34;s:13:"remaining_amt";d:12.34;s:17:"remaining_charges";i:1234;s:11:"amt_to_date";d:12.34;s:15:"charges_to_date";i:1234;s:9:"total_amt";d:12.34;s:13:"total_charges";i:1234;}}s:8:"currency";s:11:"This & That";s:18:"dynamic_descriptor";s:11:"This & That";s:15:"client_trans_id";s:11:"This & That";s:15:"client_payer_id";s:11:"This & That";s:7:"sub_id1";s:11:"This & That";s:7:"sub_id2";s:11:"This & That";s:7:"sub_id3";s:11:"This & That";s:7:"sub_id4";s:11:"This & That";s:7:"sub_id5";s:11:"This & That";s:7:"sub_id6";s:11:"This & That";s:7:"sub_id7";s:11:"This & That";s:7:"sub_id8";s:11:"This & That";s:7:"sub_id9";s:11:"This & That";s:8:"sub_id10";s:11:"This & That";s:12:"callback_url";s:11:"This & That";s:12:"extra_params";a:2:{s:8:"my_key_1";s:10:"my_value_1";s:8:"my_key_2";s:10:"my_value_2";}}}}
Example JSON Response
[{"request":{"action":"void_trans","params":{"trans_id_str":"This & That","client_trans_id":"This & That"}},"response":{"status":"","errors":[],"request_id_str":"example_request_id_str","trans_id_str":"This & That","orig_trans_id_str":"This & That","trans_recur_id_str":"This & That","refund_trans_id_strs":"This & That","trans_datetime":"This & That","trans_status":"This & That","trans_status_msg":"This & That","processor_response_code":"This & That","processor_response_msg":"This & That","amt_processed":12.34,"payer_name":"This & That","payer_address":"This & That","payer_city":"This & That","payer_state":"WA","payer_zip":"98123","payer_country":"USA","payer_phone":"This & That","payer_email":"test@example.com","email_cc":"test@example.com","email_bcc":"test@example.com","email_subject":"This & That","email_body":"This & That","recur_email_cc":"test@example.com","recur_email_bcc":"test@example.com","recur_email_subject":"This & That","recur_email_body":"This & That","send_email":"false","payment_type":"This & That","payer_id_str":"This & That","merch_acct_id_str":"This & That","acct_last_four":"This & That","cc_exp_mo":"This & That","cc_exp_yr":"This & That","settlement_length":"This & That","items":[{"id":"This & That","desc":"This & That","amt":12.34,"qty":1234,"hide_qty":"false","is_pledge":"false","amt_today":12.34,"first_charge_date":"2016-03-03","recur_first_charge_date":"2016-03-03","recur_freq":1234,"recur_end_criteria":1234,"recur_end_value":"This & That","sub_id1":"This & That","sub_id2":"This & That","sub_id3":"This & That","sub_id4":"This & That","sub_id5":"This & That","sub_id6":"This & That","sub_id7":"This & That","sub_id8":"This & That","sub_id9":"This & That","sub_id10":"This & That","id_str":"This & That","charge_day_of_month":"This & That","next_charge_date":"2016-03-03","last_charge_date":"2016-03-03","last_charge_amt":12.34,"installment_amt":12.34,"remaining_amt":12.34,"remaining_charges":1234,"amt_to_date":12.34,"charges_to_date":1234,"total_amt":12.34,"total_charges":1234},{"id":"This & That","desc":"This & That","amt":12.34,"qty":1234,"hide_qty":"false","is_pledge":"false","amt_today":12.34,"first_charge_date":"2016-03-03","recur_first_charge_date":"2016-03-03","recur_freq":1234,"recur_end_criteria":1234,"recur_end_value":"This & That","sub_id1":"This & That","sub_id2":"This & That","sub_id3":"This & That","sub_id4":"This & That","sub_id5":"This & That","sub_id6":"This & That","sub_id7":"This & That","sub_id8":"This & That","sub_id9":"This & That","sub_id10":"This & That","id_str":"This & That","charge_day_of_month":"This & That","next_charge_date":"2016-03-03","last_charge_date":"2016-03-03","last_charge_amt":12.34,"installment_amt":12.34,"remaining_amt":12.34,"remaining_charges":1234,"amt_to_date":12.34,"charges_to_date":1234,"total_amt":12.34,"total_charges":1234}],"currency":"This & That","dynamic_descriptor":"This & That","client_trans_id":"This & That","client_payer_id":"This & That","sub_id1":"This & That","sub_id2":"This & That","sub_id3":"This & That","sub_id4":"This & That","sub_id5":"This & That","sub_id6":"This & That","sub_id7":"This & That","sub_id8":"This & That","sub_id9":"This & That","sub_id10":"This & That","callback_url":"This & That","extra_params":{"my_key_1":"my_value_1","my_key_2":"my_value_2"}}}]
Valid Inputs
Many of the request parameters require a specific type of data input. The type of input required for each parameter and the character limits imposed on strings to ensure the value fits in our database are displayed in the documentation about request parameters here: https://sandbox.acceptivapro.com/api/api_request.php?api_key=<INSERT_API_KEY>&action[0]=charge.
Note: The API supports transaction processing to multiple merchant and associated bank accounts. You will have a default merchant account and dynamic descriptor that can be changed via API request parameters.
Definitions and Formats for Data Input | |
---|---|
int | Any positive numeric digits (no minus, comma, or period) ex: 0, 1, 2, etc |
float | Only numeric digits, including comma, minus, or period ex: -12.34, 12.34, 1234.5678, 1,234.56 |
string | Can be any combination of characters, (See documentation for character limit) |
boolean | A true/false, yes/no, or 1/0 value |
date | yyyy-mm-dd or mm/dd/yyyy |
youremail@domain.extension |
Test Transaction String Examples
Below are sets of parameters for example transactions with the URL strings that must be submitted to process them. You may use this as a template to generate your own test transactions.
Example Credit Card and E-check Transactions
URL:
Parameter | Value |
---|---|
api_key | use your API key |
action | charge |
payer_name | Jane Tester |
payment_type | 1 |
merch_acct_id_str | 154 (omit to use the default for your account) |
cc_num | 4111111111111111 |
cc_exp_mo | 12 |
cc_exp_yr | 2016 |
dynamic_descriptor | Building Fund (omit to use the default for your account) |
client_trans_id | 12345 (must be unique each time, or omitted) |
sub_id1 | 112233 |
items: | |
id | 00123 |
desc | Widget |
amt | 12.34 |
qty | 2 |
URL:
Parameters | |
---|---|
api_key | use your API key |
action | charge |
payer_name | Jane Tester |
payment_type | 2 |
merch_acct_id_str | 32 (omit to use the default for your account) |
ach_acct_num | 0012345 |
ach_routing_num | 123456780 |
client_trans_id | 12345 (must be unique each time, or omitted) |
sub_id1 | 112233 |
items: | |
id | 00123 |
desc | Widget |
amt | 12.34 |
qty | 2 |
Example Recurring Transactions
URL:
Parameters | |
---|---|
recur_freq | 3 (Monthly; the frequency doesn't affect how the other 2 parameters are used) |
recur_end_criteria | 0 |
recur_end_value | N/A |
URL:
Parameters | |
---|---|
recur_freq | 3 |
recur_end_criteria | 1 |
recur_end_value | 3 |
URL:
Parameters | |
---|---|
recur_freq | 3 |
recur_end_criteria | 2 |
recur_end_value | 100 |
URL:
Parameters | |
---|---|
recur_freq | 3 |
recur_end_criteria | 3 |
recur_end_value | 12/31/2015 |
Example Pledge Transactions
URL:
Name | Description |
---|---|
is_pledge | true |
recur_freq | 3 |
recur_end_criteria | 1 |
recur_end_value | 3 |
amt_today | 50 |
URL:
Name | Description |
---|---|
is_pledge | true |
recur_freq | 3 |
recur_end_criteria | 3 |
recur_end_value | 12/31/2015 |
amt_today | 50 |
Tokenization Use & Management Examples
Example 1: Using Existing Stored Credit Card Data
To use existing saved payer information, set store_payer_data to Boolean false. Leave all payer parameters blank and submit the payer_id_str or client_payer_id.
If included, incoming payer data (name, address, city, state, zip, country, email, phone) will override the saved payer data and will be used for the transaction.
Name | Description | Required? |
---|---|---|
payment_type | 1 | Yes |
payer_id_str | valid payer_id_str (for this API key, which has credit card data already saved) | Yes2 |
client_payer_id | valid client_payer_id | Yes2 |
payer_name | No1 | |
payer_address | No1 | |
payer_city | No1 | |
payer_state | No1 | |
payer_zip | No1 | |
payer_country | No1 | |
payer_phone | No1 | |
payer_phone | No1 | |
cc_num | No1 | |
cc_exp_mo | No1 | |
cc_exp_yr | No1 | |
store_payer_data | false | No1 (default is false) |
Example 2: Adding eCheck Data
To update saved payer data, submit a valid payer_id_str and set store_payer_data to Boolean true. Incoming payer data will be saved in place of the old data. To update payer information for a client_payer_id, you must submit the payer_id_str associated with that data. This can be found using get_payer_details.
Name | Description | Required? |
---|---|---|
payment_type | 2 | Yes |
payer_id_str | valid payer_id_str (for this API key, which has credit card data already saved) | Yes2 |
client_payer_id | valid client_payer_id | Yes2 |
payer_name | No1 | |
payer_address | No1 | |
payer_city | No1 | |
payer_state | No1 | |
payer_zip | No1 | |
payer_country | No1 | |
payer_phone | No1 | |
payer_phone | No1 | |
ach_acct_num | eCheck account number | Yes |
ach_routing_num | eCheck routing number | Yes |
store_payer_data | true | Yes (default is false) |
Example 3: Updating Credit Card and Payer Address Data
To update saved payer data, submit a valid payer_id_str and set store_payer_data to Boolean true. Incoming payer data will be saved in place of the old data. To update payer information for a client_payer_id, you must submit the payer_id_str associated with that data. This can be found using get_payer_details.
Name | Description | Required? |
---|---|---|
payment_type | 1 | Yes |
payer_id_str | valid payer_id_str (for this API key, which has credit card data already saved) | Yes2 |
client_payer_id | valid client_payer_id | Yes2 |
payer_name | new payer name | No1 |
payer_address | new address | No1 |
payer_city | new city | No1 |
payer_state | new state | No1 |
payer_zip | new zip | No1 |
payer_country | new country (default is USA) | No1 |
payer_phone | new phone | No1 |
payer_email | new email | No1 |
cc_num | new credit card number | No |
cc_exp_mo | new credit card expiration month | No |
cc_exp_yr | new credit card expiration year | No |
ach_acct_num | eCheck account number | No - IGNORED if present |
ach_routing_num | eCheck routing number | No - IGNORED if present |
store_payer_data | true | Yes (default is false) |
Example 4: Updating eCheck and Payer Address Data
To update saved payer data, submit a valid payer_id_str and set store_payer_data to Boolean true. Incoming payer data will be saved in place of the old data. To update payer information for a client_payer_id, you must submit the payer_id_str associated with that data. This can be found using get_payer_details.
Name | Description | Required? |
---|---|---|
payment_type | 2 | Yes |
payer_id_str | valid payer_id_str (for this API key, which has credit card data already saved) | Yes2 |
client_payer_id | valid client_payer_id | Yes2 |
payer_name | new payer name | No1 |
payer_address | new address | No1 |
payer_city | new city | No1 |
payer_state | new state | No1 |
payer_zip | new zip | No1 |
payer_country | new country (default is USA) | No1 |
payer_phone | new phone | No1 |
payer_email | new email | No1 |
ach_acct_num | eCheck account number | Yes |
ach_routing_num | eCheck routing number | No - IGNORED if present |
cc_num | credit card number | No - IGNORED if present |
cc_exp_mo | new credit card expiration month | No - IGNORED if present |
cc_exp_yr | new credit card expiration year | No - IGNORED if present |
store_payer_data | true | Yes (default is false) |