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.

Minimum required data for transaction to process:

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.

Optional fields:

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

Special Inputs for Testing

Zip Code99997-0008 returns an AVS match; any other value returns a mismatch
CVV999 returns a CVV match; any other value returns a CVV mismatch (except blank/omitted CVV which returns nothing)
Credit Card Amount6.66 returns a decline; any other amount returns an approval
eCheck Amount6.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.

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

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:

&params[0][extra_params][my_extra_name]=my_value&params[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.

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.

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&params[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&params[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

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.

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.

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&params[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&params[0][trans_id_str]=ID1,ID2,ID3&params[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&params[0][object]=trans_filters_array&output=xml

Filter Name Filter Operators URL-Encoded Example
trans_status=&params[][filters][]=trans_status%3D1234
trans_date<, <=, =, >=, >&params[][filters][]=trans_date%3C2016-05-03
payment_type=&params[][filters][]=payment_type%3D1234
payer_name= (matches), ~= (contains), ^= (starts with), $= (ends with)&params[][filters][]=payer_name%3DThis+%26+That
amount<, <=, =, >=, >&params[][filters][]=amount%3C12.34
merch_acct_id_str=&params[][filters][]=merch_acct_id_str%3DThis+%26+That
sub_id1=&params[][filters][]=sub_id1%3DThis+%26+That
sub_id2=&params[][filters][]=sub_id2%3DThis+%26+That
sub_id3=&params[][filters][]=sub_id3%3DThis+%26+That
sub_id4=&params[][filters][]=sub_id4%3DThis+%26+That
sub_id5=&params[][filters][]=sub_id5%3DThis+%26+That
sub_id6=&params[][filters][]=sub_id6%3DThis+%26+That
sub_id7=&params[][filters][]=sub_id7%3DThis+%26+That
sub_id8=&params[][filters][]=sub_id8%3DThis+%26+That
sub_id9=&params[][filters][]=sub_id9%3DThis+%26+That
sub_id10=&params[][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&params[0][trans_recur_id_str]=<INSERT_TRANS_RECUR_ID_STR>&output=xml

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:

Payer_id_str: https://sandbox.acceptivapro.com/api/api_request.php?api_key=<INSERT_API_KEY>&action[0]=get_payer_data&params[0][payer_id_str]=PAYER_ID_STR&output=xml

Client_payer_id: https://sandbox.acceptivapro.com/api/api_request.php?api_key=<INSERT_API_KEY>&action[0]=get_payer_data&params[0][client_payer_id]=CLIENT_PAYER_ID&output=xml

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 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:

&params[0][receipt_id_str]=&params[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 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&params[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 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&params[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&params[0][trans_id_str]=<INSERT_TRANS_ID_STR>&output=xml
URL for Partial Refund
https://sandbox.acceptivapro.com/api/api_request.php?api_key=<INSERT_API_KEY>&action[0]=refund_trans_partial&params[0][trans_id_str]=<INSERT_TRANS_ID_STR>&params[0][items][0][id_str]=<INSERT_ID_STR>&params[0][items][0][amt]=<INSERT_AMT>&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.

Name Type Description Required? Default Value
api_keystringrFv696TwFUcpRwHZiyAJLxeDoNHftEm2Yes
actionstringchargeYes
payer_namestring (<= 64)Payer nameNo1
payer_addressstring (<= 64)Payer street addressNo1
payer_citystring (<= 32)Payer cityNo1
payer_statestring (2)Payer state/province (2 letter abbreviation if USA or CAN transaction)No1
payer_zipstring (<= 10)Payer zip code (5 digits or 5+4, e.g. 12345-6789)No1
payer_countrystring (3)Payer country (3 letter ISO 3166-1 alpha-3 code, e.g. USA)No1USA
payer_phonestring (<= 32)Payer phoneNo1
payer_emailemailPayer email (can be comma separated list)No1
email_ccemailAddresses to CC on email receipts (can be comma separated list)No1
email_bccemailAddresses to BCC on email receipts (can be comma separated list)No1
email_subjectstring (<= 128)Email receipt subject lineNo1
email_bodystringEmail receipt bodyNo1
recur_email_ccemailAddresses to CC on recurring email receipts (can be comma separated list)No1
recur_email_bccemailAddresses to BCC on recurring email receipts (can be comma separated list)No1
recur_email_subjectstring (<= 128)Recurring email receipt subject lineNo1
recur_email_bodystringRecurring email receipt bodyNo1
send_emailbooleanWhether or not to send email receipt to payer_email, email_cc, and email_bcc on successful transactionNo1false
payment_typeint0 for non-payment (recordkeeping only), 1 for credit card, 2 for e-check processingYes
payer_id_strstringSaved payer account data to use for this transactionNo1
merch_acct_id_strstringCredit Card: 2GAqpz6e (default) (TSYS)
eCheck: FkkCwsNy (default) (CheckGateway)
No1
cc_numintCredit card number (digits only)No1
cc_exp_mointCredit card expiration month (1-12)No1
cc_exp_yrintCredit card expiration year (4 digits)No1
cc_cvvstringCredit card verification codeNo1
settlement_lengthintCredit card settlement length (in days), min: 1, max: 7; default value depends on the merchant accountNo1
ach_acct_numstring (<= 17)eCheck account numberNo1
ach_routing_numstringeCheck routing numberNo1
itemsitems_arraySee documentationYes
currencyint840 (US Dollars), 124 (Canadian Dollars)No1840
dynamic_descriptorstring (<= 25)Charge description on payer's credit card statement (alphanumeric with spaces, dots, dashes, and asterisks only)No1TEST CHARGE
client_trans_idstring (<= 64)Your own ID number for this transactionNo1
client_payer_idstring (<= 64)Your own ID number for this payerNo1
store_payer_databooleanWhether 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)No1false
sub_id1string (<= 64)Transaction Sub IDNo1
sub_id2string (<= 64)Transaction Sub IDNo1
sub_id3string (<= 64)Transaction Sub IDNo1
sub_id4string (<= 64)Transaction Sub IDNo1
sub_id5string (<= 64)Transaction Sub IDNo1
sub_id6string (<= 64)Transaction Sub IDNo1
sub_id7string (<= 64)Transaction Sub IDNo1
sub_id8string (<= 64)Transaction Sub IDNo1
sub_id9string (<= 64)Transaction Sub IDNo1
sub_id10string (<= 64)Transaction Sub IDNo1
asyncbooleanWhether 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 transactionsNo1false
callback_urlstringURL that will be called when we have a bank response or internal timeout has been reachedNo1
extra_paramsextra_arraySee documentationNo1
outputstringjson, xml, or php (serialized)No1json
Name Type Description
trans_id_strstring (16)Transaction ID
trans_recur_id_strstring (16)Transaction Recurring ID
trans_statusint (2)Transaction status ID
trans_status_msgstringTransaction status message
processor_response_codeint (3)Processor response code
processor_response_msgstringProcessor response message
acct_last_fourstring (4)Last four digits of the credit card or account number
amt_processedfloatTotal transaction amount processed today
payer_id_strstring (8)Stored payer ID for processing future transactions without re-sending account data
itemsitems_response_arraySee documentation
statusstring'success' or 'failure', this indicates only whether the input to the API is valid
errorsarrayArray of error code/message pairs ('err_no' => int, 'err_msg' => string) if status == 'failure'. See documentation.
request_id_strstring (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 &amp; That</payer_name>
          <payer_address>This &amp; That</payer_address>
          <payer_city>This &amp; That</payer_city>
          <payer_state>WA</payer_state>
          <payer_zip>98123</payer_zip>
          <payer_country>USA</payer_country>
          <payer_phone>This &amp; 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 &amp; That</email_subject>
          <email_body>This &amp; 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 &amp; That</recur_email_subject>
          <recur_email_body>This &amp; That</recur_email_body>
          <send_email>false</send_email>
          <payment_type>1</payment_type>
          <payer_id_str>This &amp; That</payer_id_str>
          <merch_acct_id_str>This &amp; 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 &amp; That</cc_cvv>
          <settlement_length>1234</settlement_length>
          <ach_acct_num>This &amp; That</ach_acct_num>
          <ach_routing_num>This &amp; That</ach_routing_num>
          <items>
            <item0>
              <id>This &amp; That</id>
              <desc>This &amp; That</desc>
              <amt>12.34</amt>
            </item0>
            <item1>
              <id>This &amp; That</id>
              <desc>This &amp; That</desc>
              <amt>12.34</amt>
            </item1>
          </items>
          <currency>840</currency>
          <dynamic_descriptor>This &amp; That</dynamic_descriptor>
          <client_trans_id>This &amp; That</client_trans_id>
          <client_payer_id>This &amp; That</client_payer_id>
          <store_payer_data>false</store_payer_data>
          <sub_id1>This &amp; That</sub_id1>
          <sub_id2>This &amp; That</sub_id2>
          <sub_id3>This &amp; That</sub_id3>
          <sub_id4>This &amp; That</sub_id4>
          <sub_id5>This &amp; That</sub_id5>
          <sub_id6>This &amp; That</sub_id6>
          <sub_id7>This &amp; That</sub_id7>
          <sub_id8>This &amp; That</sub_id8>
          <sub_id9>This &amp; That</sub_id9>
          <sub_id10>This &amp; That</sub_id10>
          <async>false</async>
          <callback_url>This &amp; 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 &amp; That</trans_id_str>
      <trans_recur_id_str>This &amp; That</trans_recur_id_str>
      <trans_status>This &amp; That</trans_status>
      <trans_status_msg>This &amp; That</trans_status_msg>
      <processor_response_code>This &amp; That</processor_response_code>
      <processor_response_msg>This &amp; That</processor_response_msg>
      <acct_last_four>This &amp; That</acct_last_four>
      <amt_processed>12.34</amt_processed>
      <payer_id_str>This &amp; That</payer_id_str>
      <items>
        <item0>
          <id>This &amp; That</id>
          <desc>This &amp; 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 &amp; That</recur_end_value>
          <sub_id1>This &amp; That</sub_id1>
          <sub_id2>This &amp; That</sub_id2>
          <sub_id3>This &amp; That</sub_id3>
          <sub_id4>This &amp; That</sub_id4>
          <sub_id5>This &amp; That</sub_id5>
          <sub_id6>This &amp; That</sub_id6>
          <sub_id7>This &amp; That</sub_id7>
          <sub_id8>This &amp; That</sub_id8>
          <sub_id9>This &amp; That</sub_id9>
          <sub_id10>This &amp; That</sub_id10>
          <id_str>This &amp; That</id_str>
          <charge_day_of_month>This &amp; 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 &amp; That</id>
          <desc>This &amp; 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 &amp; That</recur_end_value>
          <sub_id1>This &amp; That</sub_id1>
          <sub_id2>This &amp; That</sub_id2>
          <sub_id3>This &amp; That</sub_id3>
          <sub_id4>This &amp; That</sub_id4>
          <sub_id5>This &amp; That</sub_id5>
          <sub_id6>This &amp; That</sub_id6>
          <sub_id7>This &amp; That</sub_id7>
          <sub_id8>This &amp; That</sub_id8>
          <sub_id9>This &amp; That</sub_id9>
          <sub_id10>This &amp; That</sub_id10>
          <id_str>This &amp; That</id_str>
          <charge_day_of_month>This &amp; 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}]}}]
        

Error Code Error Message
0No errors
1API is currently down for maintenance
2API can only be accessed using HTTPS
3API can only be accessed directly (no incoming referrer)
4Invalid API key
5Unrecognized IP
6Required parameter missing
7Database error, tech support has been alerted to this issue and it should be resolved shortly
8Internal error processing transaction
9Invalid arguments to charge.php
10Charge is not ready to process by charge.php
11Shared memory could not be accessed by charge.php
12Could not execute authorize.php
13Invalid arguments to authorize.php
14Shared memory could not be accessed by authorize.php
15Transaction not found by authorize.php
16Merchant account used in transaction not found by authorize.php
17Merchant account used in transaction is inactive for authorize.php
18Invalid payment type in authorize.php
19Parent charge.php has timed out waiting for authorize.php
20Script process_recur.php failed
21Script process_settlement.php failed
126Error processing transaction; please see trans_status
127Merchant account not found
128Transaction cart not found
129Max transaction void processing time exceeded; please try again
130There was a processor error voiding this transaction; please try again or contact customer service for help
131Max transaction refund processing time exceeded
132There was a processor error refunding this transaction; please contact customer service for help
133We are currently unable to process transactions due to a planned processor outage from
134Recurring cart has already been processed for this date
135Recurring cart is not active
Error CodeError Message
1000Parameter format is invalid
1001Same trans ID submitted previously, use a new trans ID (or leave blank) to ensure this transaction is not a duplicate
1002This payer ID seems to be a duplicate of one already saved
1003Stored payer info was not found based on
1004Both payer_id_str and client_payer_id are used, but they don't reference the same stored payer
1005Payment type is invalid
1006Invalid country (3 letter ISO 3166-1 alpha-3 code, e.g. USA)
1007Invalid state/province (2 letter abbreviation)
1008Invalid zip code (5 digits or 5+4, e.g. 12345-6789)
1009Invalid credit card data
1010Expired credit card
1011Invalid CVV format
1012Settlement length is invalid
1013Invalid routing number
1014Invalid merchant account ID
1015Merchant account is not setup to process this card type
1016Invalid currency code (omit for USD)
1017Invalid URL
1018Nothing to process
1019Amount cannot be negative
1020Amount today must be less than the total pledge amount
1021Start date is invalid
1022Recurring items must have positive amounts
1023Recurring frequency is invalid
1024Recurring end criteria is invalid
1025Recurring end value is invalid
1026Maximum transaction amount exceeded
1027Dynamic descriptor format is invalid
1028Stored payer info does not contain the required account data for this type of transaction
1029Transaction not found based on
1030Item not found
1031Only a currently authorized transaction can be voided
1032Transaction void window has passed, you may want to refund the transaction instead
1033Only a currently settled/funded transaction can be refunded
1034Could not find account data for the transaction; usually this means that more than 180 days has passed since the transaction was settled
1035Item is ineligible for a refund
1036Refund amount is greater than original amount
1037Only a currently authorized transaction can be settled
Name Type Description Required? Default Value
api_keystringrFv696TwFUcpRwHZiyAJLxeDoNHftEm2Yes
actionstringget_payer_dataYes
payer_id_strstringPayer IDNo1
client_payer_idstringYour own ID number for this payerNo1
outputstringjson, xml, or php (serialized)No1json
NameTypeDescription
payer_id_strstring (8)Stored payer ID for processing future transactions without re-sending account data
client_payer_idstring (8)Your own ID number for this payer
payer_namestringPayer name
payer_addressstringPayer street address
payer_citystringPayer city
payer_statestring (2)Payer state/province
payer_zipstringPayer zip code
payer_countrystring (3)Payer country (3 letter ISO 3166-1 alpha-3 code, e.g. USA)
payer_phonestringPayer phone
payer_emailstringPayer email
cc_num_last_fourstring (4)Last 4 digits of stored credit card number
cc_exp_moint (2)Credit card expiration month
cc_exp_yrint (4)Credit card expiration year
ach_acct_last_fourstring (4)Last 4 digits of stored bank account number
statusstring'success' or 'failure', this indicates only whether the input to the API is valid
errorsarrayArray of error code/message pairs ('err_no' => int, 'err_msg' => string) if status == 'failure'. See documentation.
request_id_strstring (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 &amp; That</payer_id_str>
        <client_payer_id>This &amp; 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 &amp; That</payer_id_str>
      <client_payer_id>This &amp; That</client_payer_id>
      <payer_name>This &amp; That</payer_name>
      <payer_address>This &amp; That</payer_address>
      <payer_city>This &amp; That</payer_city>
      <payer_state>WA</payer_state>
      <payer_zip>98123</payer_zip>
      <payer_country>USA</payer_country>
      <payer_phone>This &amp; That</payer_phone>
      <payer_email>This &amp; That</payer_email>
      <cc_num_last_four>This &amp; That</cc_num_last_four>
      <cc_exp_mo>This &amp; That</cc_exp_mo>
      <cc_exp_yr>This &amp; That</cc_exp_yr>
      <ach_acct_last_four>This &amp; 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"}}]
Name Type Description Required? Default Value
api_keystringrFv696TwFUcpRwHZiyAJLxeDoNHftEm2Yes
actionstringget_recur_detailsYes
trans_recur_id_strstringTransaction 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
outputstringjson, xml, or php (serialized)No1json
Name Type Description
trans_recur_id_strstring (16)Transaction Recurring ID
orig_trans_id_strstring (16)Initial transaction ID
payer_id_strstring (8)Stored payer ID for processing future transactions without re-sending account data
dynamic_descriptorstring (25)Charge description on payer's credit card statement
payment_typeint (1)1 for credit card, 2 for e-check processing
payer_name
acct_last_fourstring (4)Last 4 digits of CC/eCheck account number
cc_exp_moint (2)Credit card expiration month
cc_exp_yrint (4)Credit card expiration year
payer_addressstringPayer street address
payer_citystringPayer city
payer_statestring (2)Payer state/province
payer_zipstringPayer zip code
payer_countrystring (3)Payer country (3 letter ISO 3166-1 alpha-3 code, e.g. USA)
payer_phonestringPayer phone
payer_emailemailPayer email
email_ccemailAddresses to CC on email receipts
email_bccemailAddresses to BCC on email receipts
email_subjectstringEmail receipt subject line
email_bodystringEmail receipt body
send_emailbooleanWhether or not to send email receipt to payer_email, email_cc, and email_bcc on successful transaction
currencyint (3)840 (US Dollars), 124 (Canadian Dollars)
merch_acct_id_strintMerchant account ID
client_payer_idstring (8)Your own ID number for this payer
sub_id1stringTransaction Sub ID
sub_id2stringTransaction Sub ID
sub_id3stringTransaction Sub ID
sub_id4stringTransaction Sub ID
sub_id5stringTransaction Sub ID
sub_id6stringTransaction Sub ID
sub_id7stringTransaction Sub ID
sub_id8stringTransaction Sub ID
sub_id9stringTransaction Sub ID
sub_id10stringTransaction Sub ID
callback_urlstringURL that will be called when we have a bank response or internal timeout has been reached
prev_process_datedateLast date that this charge was processed
activebooleanWhether or not the recurring charge is active
itemsitems_response_arraySee documentation
statusstring'success' or 'failure', this indicates only whether the input to the API is valid
errorsarrayArray of error code/message pairs ('err_no' => int, 'err_msg' => string) if status == 'failure'. See documentation.
request_id_strstring (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 &amp; 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 &amp; That</trans_recur_id_str>
      <orig_trans_id_str>This &amp; That</orig_trans_id_str>
      <payer_id_str>This &amp; That</payer_id_str>
      <dynamic_descriptor>This &amp; That</dynamic_descriptor>
      <payment_type>This &amp; That</payment_type>
      <payer_name>This &amp; That</payer_name>
      <acct_last_four>This &amp; That</acct_last_four>
      <cc_exp_mo>This &amp; That</cc_exp_mo>
      <cc_exp_yr>This &amp; That</cc_exp_yr>
      <payer_address>This &amp; That</payer_address>
      <payer_city>This &amp; That</payer_city>
      <payer_state>WA</payer_state>
      <payer_zip>98123</payer_zip>
      <payer_country>USA</payer_country>
      <payer_phone>This &amp; 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 &amp; That</email_subject>
      <email_body>This &amp; That</email_body>
      <send_email>false</send_email>
      <currency>This &amp; That</currency>
      <merch_acct_id_str>1234</merch_acct_id_str>
      <client_payer_id>This &amp; That</client_payer_id>
      <sub_id1>This &amp; That</sub_id1>
      <sub_id2>This &amp; That</sub_id2>
      <sub_id3>This &amp; That</sub_id3>
      <sub_id4>This &amp; That</sub_id4>
      <sub_id5>This &amp; That</sub_id5>
      <sub_id6>This &amp; That</sub_id6>
      <sub_id7>This &amp; That</sub_id7>
      <sub_id8>This &amp; That</sub_id8>
      <sub_id9>This &amp; That</sub_id9>
      <sub_id10>This &amp; That</sub_id10>
      <callback_url>This &amp; That</callback_url>
      <prev_process_date>2016-03-01</prev_process_date>
      <active>false</active>
      <items>
        <item0>
          <id>This &amp; That</id>
          <desc>This &amp; 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 &amp; That</recur_end_value>
          <sub_id1>This &amp; That</sub_id1>
          <sub_id2>This &amp; That</sub_id2>
          <sub_id3>This &amp; That</sub_id3>
          <sub_id4>This &amp; That</sub_id4>
          <sub_id5>This &amp; That</sub_id5>
          <sub_id6>This &amp; That</sub_id6>
          <sub_id7>This &amp; That</sub_id7>
          <sub_id8>This &amp; That</sub_id8>
          <sub_id9>This &amp; That</sub_id9>
          <sub_id10>This &amp; That</sub_id10>
          <id_str>This &amp; That</id_str>
          <charge_day_of_month>This &amp; 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 &amp; That</id>
          <desc>This &amp; 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 &amp; That</recur_end_value>
          <sub_id1>This &amp; That</sub_id1>
          <sub_id2>This &amp; That</sub_id2>
          <sub_id3>This &amp; That</sub_id3>
          <sub_id4>This &amp; That</sub_id4>
          <sub_id5>This &amp; That</sub_id5>
          <sub_id6>This &amp; That</sub_id6>
          <sub_id7>This &amp; That</sub_id7>
          <sub_id8>This &amp; That</sub_id8>
          <sub_id9>This &amp; That</sub_id9>
          <sub_id10>This &amp; That</sub_id10>
          <id_str>This &amp; That</id_str>
          <charge_day_of_month>This &amp; 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}]}}]
Name Type Description Required? Default Value
api_keystringrFv696TwFUcpRwHZiyAJLxeDoNHftEm2Yes
actionstringget_trans_detailsYes
trans_id_strstringTransaction ID or comma-seperated list of transaction IDsNo1
client_trans_idstringYour transaction ID, or comma-separated list and/or range of your transaction IDs (e.g. 1,2,5-10)No1
outputstringjson, xml, or php (serialized)No1json
Name Type Description
trans_id_strstring (16)Transaction ID
orig_trans_id_strstring (16)Initial transaction ID (if this is a follow-on recurring transaction)
trans_recur_id_strstring (16)Transaction Recurring ID
refund_trans_id_strsarrayRefund transaction ID(s) (if this transaction was refunded)
trans_datetimedatetimeDate/time at which transaction occured
trans_statusint (2)Transaction status ID
trans_status_msgstringTransaction status message
processor_response_codeint (3)Processor response code
processor_response_msgstringProcessor response message
amt_processedfloatTotal transaction amount processed
payer_namestringPayer name
payer_addressstringPayer street address
payer_citystringPayer city
payer_statestring (2)Payer state/province
payer_zipstringPayer zip code
payer_countrystring (3)Payer country (3 letter ISO 3166-1 alpha-3 code, e.g. USA)
payer_phonestringPayer phone
payer_emailemailPayer email
email_ccemailAddresses to CC on email receipts
email_bccemailAddresses to BCC on email receipts
email_subjectstringEmail receipt subject line
email_bodystringEmail receipt body
recur_email_ccemailAddresses to CC on recurring email receipts
recur_email_bccemailAddresses to BCC on recurring email receipts
recur_email_subjectstringRecurring email receipt subject line
recur_email_bodystringRecurring email receipt body
send_emailbooleanWhether or not to send email receipt to payer_email, email_cc, and email_bcc on successful transaction
payment_typeint (1)0 for non-payment (recordkeeping only), 1 for credit card, 2 for e-check processing
payer_id_strstring (8)Stored payer ID for processing future transactions without re-sending account data
merch_acct_id_strstring (8)Merchant account ID
acct_last_fourstring (4)Last 4 digits of CC/eCheck account number
cc_exp_moint (2)Credit card expiration month
cc_exp_yrint (4)Credit card expiration year
settlement_lengthint (1)Credit card settlement length (in days)
itemsitems_response_arraySee documentation
currencyint (3)840 (US Dollars), 124 (Canadian Dollars)
dynamic_descriptorstring (25)Charge description on payer's credit card statement
client_trans_idstringYour own ID number for this transaction
client_payer_idstringYour own ID number for this payer
sub_id1stringTransaction Sub ID
sub_id2stringTransaction Sub ID
sub_id3stringTransaction Sub ID
sub_id4stringTransaction Sub ID
sub_id5stringTransaction Sub ID
sub_id6stringTransaction Sub ID
sub_id7stringTransaction Sub ID
sub_id8stringTransaction Sub ID
sub_id9stringTransaction Sub ID
sub_id10stringTransaction Sub ID
callback_urlstringURL that will be called when we have a bank response or internal timeout has been reached
extra_paramsextra_arraySee documentation
statusstring'success' or 'failure', this indicates only whether the input to the API is valid
errorsarrayArray of error code/message pairs ('err_no' => int, 'err_msg' => string) if status == 'failure'. See documentation.
request_id_strstring (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 &amp; That</trans_id_str>
        <client_trans_id>This &amp; 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 &amp; That</trans_id_str>
      <orig_trans_id_str>This &amp; That</orig_trans_id_str>
      <trans_recur_id_str>This &amp; That</trans_recur_id_str>
      <refund_trans_id_strs>This &amp; That</refund_trans_id_strs>
      <trans_datetime>This &amp; That</trans_datetime>
      <trans_status>This &amp; That</trans_status>
      <trans_status_msg>This &amp; That</trans_status_msg>
      <processor_response_code>This &amp; That</processor_response_code>
      <processor_response_msg>This &amp; That</processor_response_msg>
      <amt_processed>12.34</amt_processed>
      <payer_name>This &amp; That</payer_name>
      <payer_address>This &amp; That</payer_address>
      <payer_city>This &amp; That</payer_city>
      <payer_state>WA</payer_state>
      <payer_zip>98123</payer_zip>
      <payer_country>USA</payer_country>
      <payer_phone>This &amp; 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 &amp; That</email_subject>
      <email_body>This &amp; 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 &amp; That</recur_email_subject>
      <recur_email_body>This &amp; That</recur_email_body>
      <send_email>false</send_email>
      <payment_type>This &amp; That</payment_type>
      <payer_id_str>This &amp; That</payer_id_str>
      <merch_acct_id_str>This &amp; That</merch_acct_id_str>
      <acct_last_four>This &amp; That</acct_last_four>
      <cc_exp_mo>This &amp; That</cc_exp_mo>
      <cc_exp_yr>This &amp; That</cc_exp_yr>
      <settlement_length>This &amp; That</settlement_length>
      <items>
        <item0>
          <id>This &amp; That</id>
          <desc>This &amp; 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 &amp; That</recur_end_value>
          <sub_id1>This &amp; That</sub_id1>
          <sub_id2>This &amp; That</sub_id2>
          <sub_id3>This &amp; That</sub_id3>
          <sub_id4>This &amp; That</sub_id4>
          <sub_id5>This &amp; That</sub_id5>
          <sub_id6>This &amp; That</sub_id6>
          <sub_id7>This &amp; That</sub_id7>
          <sub_id8>This &amp; That</sub_id8>
          <sub_id9>This &amp; That</sub_id9>
          <sub_id10>This &amp; That</sub_id10>
          <id_str>This &amp; That</id_str>
          <charge_day_of_month>This &amp; 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 &amp; That</id>
          <desc>This &amp; 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 &amp; That</recur_end_value>
          <sub_id1>This &amp; That</sub_id1>
          <sub_id2>This &amp; That</sub_id2>
          <sub_id3>This &amp; That</sub_id3>
          <sub_id4>This &amp; That</sub_id4>
          <sub_id5>This &amp; That</sub_id5>
          <sub_id6>This &amp; That</sub_id6>
          <sub_id7>This &amp; That</sub_id7>
          <sub_id8>This &amp; That</sub_id8>
          <sub_id9>This &amp; That</sub_id9>
          <sub_id10>This &amp; That</sub_id10>
          <id_str>This &amp; That</id_str>
          <charge_day_of_month>This &amp; 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 &amp; That</currency>
      <dynamic_descriptor>This &amp; That</dynamic_descriptor>
      <client_trans_id>This &amp; That</client_trans_id>
      <client_payer_id>This &amp; That</client_payer_id>
      <sub_id1>This &amp; That</sub_id1>
      <sub_id2>This &amp; That</sub_id2>
      <sub_id3>This &amp; That</sub_id3>
      <sub_id4>This &amp; That</sub_id4>
      <sub_id5>This &amp; That</sub_id5>
      <sub_id6>This &amp; That</sub_id6>
      <sub_id7>This &amp; That</sub_id7>
      <sub_id8>This &amp; That</sub_id8>
      <sub_id9>This &amp; That</sub_id9>
      <sub_id10>This &amp; That</sub_id10>
      <callback_url>This &amp; 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"}}}]
NameTypeDescriptionRequired?Default Value
api_keystringrFv696TwFUcpRwHZiyAJLxeDoNHftEm2Yes
actionstringrefund_trans_partialYes
trans_id_strstringTransaction IDNo1
client_trans_idstringYour own ID number for this transactionNo1
client_refund_trans_idstringYour own ID number to assign to the refund transaction (this becomes the client_trans_id for the refund transaction)No1
itemsitems_refund_arraySee documentationYes
outputstringjson, xml, or php (serialized)No1json
NameTypeDescription
trans_id_strstring (16)Transaction ID
orig_trans_id_strstring (16)Initial transaction ID (if this is a follow-on recurring transaction)
trans_recur_id_strstring (16)Transaction Recurring ID
refund_trans_id_strsarrayRefund transaction ID(s) (if this transaction was refunded)
trans_datetimedatetimeDate/time at which transaction occured
trans_statusint (2)Transaction status ID
trans_status_msgstringTransaction status message
processor_response_codeint (3)Processor response code
processor_response_msgstringProcessor response message
amt_processedfloatTotal transaction amount processed
payer_namestringPayer name
payer_addressstringPayer street address
payer_citystringPayer city
payer_statestring (2)Payer state/province
payer_zipstringPayer zip code
payer_countrystring (3)Payer country (3 letter ISO 3166-1 alpha-3 code, e.g. USA)
payer_phonestringPayer phone
payer_emailemailPayer email
email_ccemailAddresses to CC on email receipts
email_bccemailAddresses to BCC on email receipts
email_subjectstringEmail receipt subject line
email_bodystringEmail receipt body
recur_email_ccemailAddresses to CC on recurring email receipts
recur_email_bccemailAddresses to BCC on recurring email receipts
recur_email_subjectstringRecurring email receipt subject line
recur_email_bodystringRecurring email receipt body
send_emailbooleanWhether or not to send email receipt to payer_email, email_cc, and email_bcc on successful transaction
payment_typeint (1)0 for non-payment (recordkeeping only), 1 for credit card, 2 for e-check processing
payer_id_strstring (8)Stored payer ID for processing future transactions without re-sending account data
merch_acct_id_strstring (8)Merchant account ID
acct_last_fourstring (4)Last 4 digits of CC/eCheck account number
cc_exp_moint (2)Credit card expiration month
cc_exp_yrint (4)Credit card expiration year
settlement_lengthint (1)Credit card settlement length (in days)
itemsitems_response_arraySee documentation
currencyint (3)840 (US Dollars), 124 (Canadian Dollars)
dynamic_descriptorstring (25)Charge description on payer's credit card statement
client_trans_idstringYour own ID number for this transaction
client_payer_idstringYour own ID number for this payer
sub_id1stringTransaction Sub ID
sub_id2stringTransaction Sub ID
sub_id3stringTransaction Sub ID
sub_id4stringTransaction Sub ID
sub_id5stringTransaction Sub ID
sub_id6stringTransaction Sub ID
sub_id7stringTransaction Sub ID
sub_id8stringTransaction Sub ID
sub_id9stringTransaction Sub ID
sub_id10stringTransaction Sub ID
callback_urlstringURL that will be called when we have a bank response or internal timeout has been reached
extra_paramsextra_arraySee documentation
statusstring'success' or 'failure', this indicates only whether the input to the API is valid
errorsarrayArray of error code/message pairs ('err_no' => int, 'err_msg' => string) if status == 'failure'. See documentation.
request_id_strstring (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&params[0][items][0][id_str]=This%20%26%20That&params[0][items][0][amt]=12.34&params[0][items][1][id_str]=This%20%26%20That&params[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 &amp; That</trans_id_str>
        <client_trans_id>This &amp; That</client_trans_id>
        <client_refund_trans_id>This &amp; That</client_refund_trans_id>
        <items>
          <item0>
            <id_str>This &amp; That</id_str>
            <amt>12.34</amt>
          </item0>
          <item1>
            <id_str>This &amp; 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 &amp; That</trans_id_str>
      <orig_trans_id_str>This &amp; That</orig_trans_id_str>
      <trans_recur_id_str>This &amp; That</trans_recur_id_str>
      <refund_trans_id_strs>This &amp; That</refund_trans_id_strs>
      <trans_datetime>This &amp; That</trans_datetime>
      <trans_status>This &amp; That</trans_status>
      <trans_status_msg>This &amp; That</trans_status_msg>
      <processor_response_code>This &amp; That</processor_response_code>
      <processor_response_msg>This &amp; That</processor_response_msg>
      <amt_processed>12.34</amt_processed>
      <payer_name>This &amp; That</payer_name>
      <payer_address>This &amp; That</payer_address>
      <payer_city>This &amp; That</payer_city>
      <payer_state>WA</payer_state>
      <payer_zip>98123</payer_zip>
      <payer_country>USA</payer_country>
      <payer_phone>This &amp; 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 &amp; That</email_subject>
      <email_body>This &amp; 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 &amp; That</recur_email_subject>
      <recur_email_body>This &amp; That</recur_email_body>
      <send_email>false</send_email>
      <payment_type>This &amp; That</payment_type>
      <payer_id_str>This &amp; That</payer_id_str>
      <merch_acct_id_str>This &amp; That</merch_acct_id_str>
      <acct_last_four>This &amp; That</acct_last_four>
      <cc_exp_mo>This &amp; That</cc_exp_mo>
      <cc_exp_yr>This &amp; That</cc_exp_yr>
      <settlement_length>This &amp; That</settlement_length>
      <items>
        <item0>
          <id>This &amp; That</id>
          <desc>This &amp; 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 &amp; That</recur_end_value>
          <sub_id1>This &amp; That</sub_id1>
          <sub_id2>This &amp; That</sub_id2>
          <sub_id3>This &amp; That</sub_id3>
          <sub_id4>This &amp; That</sub_id4>
          <sub_id5>This &amp; That</sub_id5>
          <sub_id6>This &amp; That</sub_id6>
          <sub_id7>This &amp; That</sub_id7>
          <sub_id8>This &amp; That</sub_id8>
          <sub_id9>This &amp; That</sub_id9>
          <sub_id10>This &amp; That</sub_id10>
          <id_str>This &amp; That</id_str>
          <charge_day_of_month>This &amp; 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 &amp; That</id>
          <desc>This &amp; 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 &amp; That</recur_end_value>
          <sub_id1>This &amp; That</sub_id1>
          <sub_id2>This &amp; That</sub_id2>
          <sub_id3>This &amp; That</sub_id3>
          <sub_id4>This &amp; That</sub_id4>
          <sub_id5>This &amp; That</sub_id5>
          <sub_id6>This &amp; That</sub_id6>
          <sub_id7>This &amp; That</sub_id7>
          <sub_id8>This &amp; That</sub_id8>
          <sub_id9>This &amp; That</sub_id9>
          <sub_id10>This &amp; That</sub_id10>
          <id_str>This &amp; That</id_str>
          <charge_day_of_month>This &amp; 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 &amp; That</currency>
      <dynamic_descriptor>This &amp; That</dynamic_descriptor>
      <client_trans_id>This &amp; That</client_trans_id>
      <client_payer_id>This &amp; That</client_payer_id>
      <sub_id1>This &amp; That</sub_id1>
      <sub_id2>This &amp; That</sub_id2>
      <sub_id3>This &amp; That</sub_id3>
      <sub_id4>This &amp; That</sub_id4>
      <sub_id5>This &amp; That</sub_id5>
      <sub_id6>This &amp; That</sub_id6>
      <sub_id7>This &amp; That</sub_id7>
      <sub_id8>This &amp; That</sub_id8>
      <sub_id9>This &amp; That</sub_id9>
      <sub_id10>This &amp; That</sub_id10>
      <callback_url>This &amp; 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"}}}]
NameTypeDescriptionRequired?Default Value
objectstringObject name (items_array, items_refund_array, items_response_array, extra_array)Yes
NameTypeDescriptionRequired?Default Value
idstring (<= 32)Item SKUYes
descstring (<= 64)Item DescriptionYes
amtfloatItem Unit Price/Amount (item unit amount is multiplied by item quantity to calculate the item total)Yes
qtyintItem QuantityNo11
hide_qtybooleanSet to 'true' to hide item quantity for display purposes if quantity is not applicable for the itemNo1false
is_pledgebooleanSet 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 beNo1false
amt_todayfloatDifferent amount to charge today from the regular installment amount; omit or set to 0 to charge regular installment amount today3No10
first_charge_datedateWhen to process the charge for this item (defaults to today); max 6 monthsNo12016-04-26
recur_first_charge_datedateWhen to process the first follow-on charge for this item3No1
recur_freqint0 (One Time), 1 (Weekly), 2 (Every Other Week), 3 (Monthly), 4 (Quarterly), 5 (Half-Yearly), 6 (Yearly)No10
recur_end_criteriaint02 (One Time/Ongoing), 1 (End After Number of Payments), 22 (End After Total Amount Paid), 3 (End By Given Date)3No10
recur_end_valuestring (<= 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)3No1
sub_id1string (<= 64)Item Sub IDNo1
sub_id2string (<= 64)Item Sub IDNo1
sub_id3string (<= 64)Item Sub IDNo1
sub_id4string (<= 64)Item Sub IDNo1
sub_id5string (<= 64)Item Sub IDNo1
sub_id6string (<= 64)Item Sub IDNo1
sub_id7string (<= 64)Item Sub IDNo1
sub_id8string (<= 64)Item Sub IDNo1
sub_id9string (<= 64)Item Sub IDNo1
sub_id10string (<= 64)Item Sub IDNo1
NameTypeDescriptionRequired?
id_strstringItem IDYes
amtfloatItem refund amountYes
NameTypeDescription
idstringItem SKU
descstringItem Description
amtfloatItem Unit Price/Amount (item unit amount is multiplied by item quantity to calculate the item total)
qtyintItem Quantity
hide_qtybooleanSet to 'true' to hide item quantity for display purposes if quantity is not applicable for the item
is_pledgebooleanSet 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_todayfloatDifferent amount to charge today from the regular installment amount; omit or set to 0 to charge regular installment amount today3
first_charge_datedateWhen to process the charge for this item (defaults to today); max 6 months
recur_first_charge_datedateWhen to process the first follow-on charge for this item3
recur_freqint0 (One Time), 1 (Weekly), 2 (Every Other Week), 3 (Monthly), 4 (Quarterly), 5 (Half-Yearly), 6 (Yearly)
recur_end_criteriaint02 (One Time/Ongoing), 1 (End After Number of Payments), 22 (End After Total Amount Paid), 3 (End By Given Date)3
recur_end_valuestringif '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_id1stringItem Sub ID
sub_id2stringItem Sub ID
sub_id3stringItem Sub ID
sub_id4stringItem Sub ID
sub_id5stringItem Sub ID
sub_id6stringItem Sub ID
sub_id7stringItem Sub ID
sub_id8stringItem Sub ID
sub_id9stringItem Sub ID
sub_id10stringItem Sub ID
id_strstring (16)Item ID
charge_day_of_monthint (2)Day of the month that subsequent charges will be processed3
next_charge_datedateDate of the next subsequent charge, most useful for recurring charges starting today3
last_charge_datedateDate of the last charge3
last_charge_amtfloatAmount of the last charge3
installment_amtfloatAmount of subsequent charges, can be different from the item total if pledge and amt_today is different from the item total3
remaining_amtfloatTotal amount remaining left to charge on this item after today3
remaining_chargesintNumber of remaining charges left after today3
amt_to_datefloatAmount paid to date for this item3
charges_to_dateintNumber of charges to date for this item3
total_amtfloatTotal amount pledged to pay for this item3
total_chargesintTotal number of recurring charges for this item3
NameTypeDescriptionRequired?Default Value
api_keystringrFv696TwFUcpRwHZiyAJLxeDoNHftEm2Yes
actionstringstore_payer_dataYes
payer_id_strstringInclude this parameter to update saved payer dataNo1
client_payer_idstring (<= 64)Your own ID number for this payerNo1
payer_namestring (<= 64)Payer nameNo1
payer_addressstring (<= 64)Payer street addressNo1
payer_citystring (<= 32)Payer cityNo1
payer_statestring (2)Payer state/province (2 letter abbreviation if USA or CAN transaction)No1
payer_zipstring (<= 10)Payer zip code (5 digits or 5+4, e.g. 12345-6789)No1
payer_countrystring (3)Payer country (3 letter ISO 3166-1 alpha-3 code, e.g. USA)No1USA
payer_phonestring (<= 32)Payer phoneNo1
payer_emailemailPayer email (can be comma separated list)No1
cc_numintCredit card number (digits only)No1
cc_exp_mointCredit card expiration month (1-12)No1
cc_exp_yrintCredit card expiration year (4 digits)No1
ach_acct_numstringeCheck account numberNo1
ach_routing_numstringeCheck routing numberNo1
outputstringjson, xml, or php (serialized)No1json
NameTypeDescription
payer_id_strstring (8)Stored payer ID for processing future transactions without re-sending account data
client_payer_idstring (8)Your own ID number for this payer
payer_namestringPayer name
payer_addressstringPayer street address
payer_citystringPayer city
payer_statestring (2)Payer state/province
payer_zipstringPayer zip code
payer_countrystring (3)Payer country (3 letter ISO 3166-1 alpha-3 code, e.g. USA)
payer_phonestringPayer phone
payer_emailstringPayer email
cc_num_last_fourstring (4)Last 4 digits of stored credit card number
cc_exp_moint (2)Credit card expiration month
cc_exp_yrint (4)Credit card expiration year
ach_acct_last_fourstring (4)Last 4 digits of stored bank account number
statusstring'success' or 'failure', this indicates only whether the input to the API is valid
errorsarrayArray of error code/message pairs ('err_no' => int, 'err_msg' => string) if status == 'failure'. See documentation.
request_id_strstring (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 &amp; That</payer_id_str>
        <client_payer_id>This &amp; That</client_payer_id>
        <payer_name>This &amp; That</payer_name>
        <payer_address>This &amp; That</payer_address>
        <payer_city>This &amp; That</payer_city>
        <payer_state>WA</payer_state>
        <payer_zip>98123</payer_zip>
        <payer_country>USA</payer_country>
        <payer_phone>This &amp; 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 &amp; That</ach_acct_num>
        <ach_routing_num>This &amp; 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 &amp; That</payer_id_str>
      <client_payer_id>This &amp; That</client_payer_id>
      <payer_name>This &amp; That</payer_name>
      <payer_address>This &amp; That</payer_address>
      <payer_city>This &amp; That</payer_city>
      <payer_state>WA</payer_state>
      <payer_zip>98123</payer_zip>
      <payer_country>USA</payer_country>
      <payer_phone>This &amp; That</payer_phone>
      <payer_email>This &amp; That</payer_email>
      <cc_num_last_four>This &amp; That</cc_num_last_four>
      <cc_exp_mo>This &amp; That</cc_exp_mo>
      <cc_exp_yr>This &amp; That</cc_exp_yr>
      <ach_acct_last_four>This &amp; 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 StatusTrans Status Message
0Data input validated (but no charge was processed)
1Data input error; data not saved; please fix errors and try again
11Data input validated and charge will now begin processing
12Transaction is currently processing
13Transaction is authorized; settlement/transfer of funds can proceed soon
14Internal error occured authorizing transaction
15Max transaction processing time exceeded; transaction voided; please try again
16Error processing transaction; please see processor_response_code
31Error processing transaction; billing address mismatch
32Error processing transaction; CVV mismatch
33Error processing transaction; fraud detected
41Transaction marked for void
42Transaction void processing
43Transaction voided
44Transaction void failed; please see processor_response_code
51Credit card transaction settlement is processing
52Credit card transaction settled; funds have been transferred
53Credit card transaction settlement failed; please see processor_response_code
54Max settlement processing time exceeded; please try again
61E-check transaction settled; funds have been transferred
62E-check transaction settlement failed; could not be funded
63E-check transaction settlement failed; check returned
64E-check transaction settlement failed; chargeback
71Transaction marked for refund
72Transaction refund processing
73Transaction refunded
81Token saved; authorization automatically voided
NameTypeDescriptionRequired?Default Value
api_keystringrFv696TwFUcpRwHZiyAJLxeDoNHftEm2Yes
actionstringvoid_transYes
trans_id_strstringTransaction IDNo1
client_trans_idstringYour own ID number for this transactionNo1
outputstringjson, xml, or php (serialized)No1json
NameTypeDescription
trans_id_strstring (16)Transaction ID
orig_trans_id_strstring (16)Initial transaction ID (if this is a follow-on recurring transaction)
trans_recur_id_strstring (16)Transaction Recurring ID
refund_trans_id_strsarrayRefund transaction ID(s) (if this transaction was refunded)
trans_datetimedatetimeDate/time at which transaction occured
trans_statusint (2)Transaction status ID
trans_status_msgstringTransaction status message
processor_response_codeint (3)Processor response code
processor_response_msgstringProcessor response message
amt_processedfloatTotal transaction amount processed
payer_namestringPayer name
payer_addressstringPayer street address
payer_citystringPayer city
payer_statestring (2)Payer state/province
payer_zipstringPayer zip code
payer_countrystring (3)Payer country (3 letter ISO 3166-1 alpha-3 code, e.g. USA)
payer_phonestringPayer phone
payer_emailemailPayer email
email_ccemailAddresses to CC on email receipts
email_bccemailAddresses to BCC on email receipts
email_subjectstringEmail receipt subject line
email_bodystringEmail receipt body
recur_email_ccemailAddresses to CC on recurring email receipts
recur_email_bccemailAddresses to BCC on recurring email receipts
recur_email_subjectstringRecurring email receipt subject line
recur_email_bodystringRecurring email receipt body
send_emailbooleanWhether or not to send email receipt to payer_email, email_cc, and email_bcc on successful transaction
payment_typeint (1)0 for non-payment (recordkeeping only), 1 for credit card, 2 for e-check processing
payer_id_strstring (8)Stored payer ID for processing future transactions without re-sending account data
merch_acct_id_strstring (8)Merchant account ID
acct_last_fourstring (4)Last 4 digits of CC/eCheck account number
cc_exp_moint (2)Credit card expiration month
cc_exp_yrint (4)Credit card expiration year
settlement_lengthint (1)Credit card settlement length (in days)
itemsitems_response_arraySee documentation
currencyint (3)840 (US Dollars), 124 (Canadian Dollars)
dynamic_descriptorstring (25)Charge description on payer's credit card statement
client_trans_idstringYour own ID number for this transaction
client_payer_idstringYour own ID number for this payer
sub_id1stringTransaction Sub ID
sub_id2stringTransaction Sub ID
sub_id3stringTransaction Sub ID
sub_id4stringTransaction Sub ID
sub_id5stringTransaction Sub ID
sub_id6stringTransaction Sub ID
sub_id7stringTransaction Sub ID
sub_id8stringTransaction Sub ID
sub_id9stringTransaction Sub ID
sub_id10stringTransaction Sub ID
callback_urlstringURL that will be called when we have a bank response or internal timeout has been reached
extra_paramsextra_arraySee documentation
statusstring'success' or 'failure', this indicates only whether the input to the API is valid
errorsarrayArray of error code/message pairs ('err_no' => int, 'err_msg' => string) if status == 'failure'. See documentation.
request_id_strstring (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 &amp; That</trans_id_str>
        <client_trans_id>This &amp; 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 &amp; That</trans_id_str>
      <orig_trans_id_str>This &amp; That</orig_trans_id_str>
      <trans_recur_id_str>This &amp; That</trans_recur_id_str>
      <refund_trans_id_strs>This &amp; That</refund_trans_id_strs>
      <trans_datetime>This &amp; That</trans_datetime>
      <trans_status>This &amp; That</trans_status>
      <trans_status_msg>This &amp; That</trans_status_msg>
      <processor_response_code>This &amp; That</processor_response_code>
      <processor_response_msg>This &amp; That</processor_response_msg>
      <amt_processed>12.34</amt_processed>
      <payer_name>This &amp; That</payer_name>
      <payer_address>This &amp; That</payer_address>
      <payer_city>This &amp; That</payer_city>
      <payer_state>WA</payer_state>
      <payer_zip>98123</payer_zip>
      <payer_country>USA</payer_country>
      <payer_phone>This &amp; 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 &amp; That</email_subject>
      <email_body>This &amp; 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 &amp; That</recur_email_subject>
      <recur_email_body>This &amp; That</recur_email_body>
      <send_email>false</send_email>
      <payment_type>This &amp; That</payment_type>
      <payer_id_str>This &amp; That</payer_id_str>
      <merch_acct_id_str>This &amp; That</merch_acct_id_str>
      <acct_last_four>This &amp; That</acct_last_four>
      <cc_exp_mo>This &amp; That</cc_exp_mo>
      <cc_exp_yr>This &amp; That</cc_exp_yr>
      <settlement_length>This &amp; That</settlement_length>
      <items>
        <item0>
          <id>This &amp; That</id>
          <desc>This &amp; 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 &amp; That</recur_end_value>
          <sub_id1>This &amp; That</sub_id1>
          <sub_id2>This &amp; That</sub_id2>
          <sub_id3>This &amp; That</sub_id3>
          <sub_id4>This &amp; That</sub_id4>
          <sub_id5>This &amp; That</sub_id5>
          <sub_id6>This &amp; That</sub_id6>
          <sub_id7>This &amp; That</sub_id7>
          <sub_id8>This &amp; That</sub_id8>
          <sub_id9>This &amp; That</sub_id9>
          <sub_id10>This &amp; That</sub_id10>
          <id_str>This &amp; That</id_str>
          <charge_day_of_month>This &amp; 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 &amp; That</id>
          <desc>This &amp; 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 &amp; That</recur_end_value>
          <sub_id1>This &amp; That</sub_id1>
          <sub_id2>This &amp; That</sub_id2>
          <sub_id3>This &amp; That</sub_id3>
          <sub_id4>This &amp; That</sub_id4>
          <sub_id5>This &amp; That</sub_id5>
          <sub_id6>This &amp; That</sub_id6>
          <sub_id7>This &amp; That</sub_id7>
          <sub_id8>This &amp; That</sub_id8>
          <sub_id9>This &amp; That</sub_id9>
          <sub_id10>This &amp; That</sub_id10>
          <id_str>This &amp; That</id_str>
          <charge_day_of_month>This &amp; 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 &amp; That</currency>
      <dynamic_descriptor>This &amp; That</dynamic_descriptor>
      <client_trans_id>This &amp; That</client_trans_id>
      <client_payer_id>This &amp; That</client_payer_id>
      <sub_id1>This &amp; That</sub_id1>
      <sub_id2>This &amp; That</sub_id2>
      <sub_id3>This &amp; That</sub_id3>
      <sub_id4>This &amp; That</sub_id4>
      <sub_id5>This &amp; That</sub_id5>
      <sub_id6>This &amp; That</sub_id6>
      <sub_id7>This &amp; That</sub_id7>
      <sub_id8>This &amp; That</sub_id8>
      <sub_id9>This &amp; That</sub_id9>
      <sub_id10>This &amp; That</sub_id10>
      <callback_url>This &amp; 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"}}}]

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
email youremail@domain.extension

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:

https://sandbox.acceptivapro.com/api/api_request.php?api_key=<INSERT_API_KEY>&action[0]=charge&params[0][payer_name]=Jane%20Tester&params[0][payer_zip]=99997-0008&params[0][payment_type]=1&params[0][merch_acct_id_str]=154&params[0][cc_num]=4111111111111111&params[0][cc_exp_mo]=12&params[0][cc_exp_yr]=2016&params[0][dynamic_descriptor]=Building%20Fund&params[0][client_trans_id]=12345&params[0][sub_id1]=112233&params[0][items][0][id]=00123&params[0][items][0][desc]=Widget&params[0][items][0][amt]=12.34&params[0][items][0][qty]=2

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:

https://sandbox.acceptivapro.com/api/api_request.php?api_key=<INSERT_API_KEY>&action[0]=charge&params[0][payer_name]=Jane%20Tester&params[0][payment_type]=2&params[0][merch_acct_id_str]=32&params[0][ach_acct_num]=0012345&params[0][ach_routing_num]=123456780&params[0][client_trans_id]=6789&params[0][sub_id1]=112233&params[0][items][0][id]=00123&params[0][items][0][desc]=Widget&params[0][items][0][amt]=12.34&params[0][items][0][qty]=2

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

Example Pledge Transactions

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.

NameDescriptionRequired?
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.

NameDescriptionRequired?
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.

NameDescriptionRequired?
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.

NameDescriptionRequired?
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)
©2004-2016 Acceptiva