Classic: Subscription management
POST /transact.php · Subscription management
Classic protocol
This family uses POST /transact.php under the documented sandbox base https://sandbox.nmi.com/api. Send application/x-www-form-urlencoded fields with the private security_key on your server. Do not substitute a REST JSON body or REST Authorization header. Each named variant below has its own action selector and required fields. For maintenance of a Classic integration. Source examples are fixtures, not live credentials; replace their security_key before any authorized test. This reference sends no requests.
Choose the operation variant
Variant Selector fields Required fields SubscribeToPlanUsingCreditCard SubscribeToPlanUsingACH AddCustomSubscriptionMonthlyChargeACH AddCustomSubscriptionMonthlyChargeCC AddCustomSubscriptionMonthlyChargeDigitalWallet AddCustomSubscriptionNDayChargeACH AddCustomSubscriptionNDayChargeCC UpdateSubscription DeleteSubscription
Request language templates
Original transport templates derived from this endpoint’s documented method, server, authentication and media type. Replace path/query/credential placeholders with authorized sandbox values. These examples print the raw status and response; they do not infer business success or retry a request. Save properly URL-encoded name=value pairs for your selected operation as request.form, including its private security_key when required. JSON example objects below describe these form fields; they are not the wire encoding. Node requires a runtime with fetch; PHP requires cURL. Generated source-based examples have not been executed against provider accounts. curl --request POST \ --url 'https://sandbox.nmi.com/api/transact.php' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-binary '@request.form' import { readFile } from 'node:fs/promises'; const body = await readFile('request.form', 'utf8'); const response = await fetch("https://sandbox.nmi.com/api/transact.php", { method: 'POST', headers: { "Content-Type": "application/x-www-form-urlencoded" }, body }); console.log(response.status, await response.text()); from urllib.request import Request, urlopen from urllib.error import HTTPError from pathlib import Path request = Request('https://sandbox.nmi.com/api/transact.php', method='POST', headers={'Content-Type': 'application/x-www-form-urlencoded'}, data=Path('request.form').read_bytes()) try: with urlopen(request, timeout=30) as response: print(response.status, response.read().decode()) except HTTPError as error: print(error.code, error.read().decode()) require 'net/http' require 'uri' uri = URI("https://sandbox.nmi.com/api/transact.php") request = Net::HTTP::Post.new(uri) request["Content-Type"] = "application/x-www-form-urlencoded" request.body = File.binread('request.form') response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https', read_timeout: 30) { |http| http.request(request) } puts response.code puts response.body <?php $curl = curl_init('https://sandbox.nmi.com/api/transact.php'); curl_setopt_array($curl, [ CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_HTTPHEADER => ['Content-Type: application/x-www-form-urlencoded'], CURLOPT_POSTFIELDS => file_get_contents('request.form') ]); $response = curl_exec($curl); if ($response === false) { throw new RuntimeException(curl_error($curl)); } echo curl_getinfo($curl, CURLINFO_HTTP_CODE), PHP_EOL, $response; curl_close($curl);
Request fields
Choose one schema variant. Descriptions retain conditional requirements that are not always included in required arrays. Do not merge all variants into one request. Field Type Required Description Constraints [oneOf 1].[allOf 1].security_key string yes API Security Key assigned to a merchant account. New keys can be generated from the merchant control panel in Settings > Security Keys [oneOf 1].[allOf 1].recurring string yes Associate payment information with a recurring plan enum: ["add_subscription"] [oneOf 1].[allOf 1].plan_id string yes The plan ID of the plan that the subscription will be associated with [oneOf 1].[allOf 1].payment string no The type of payment. Default - `creditcard`. enum: ["creditcard"] [oneOf 1].[allOf 2].ccnumber string no Credit card number. <details> <summary>Allowed Card Numbers:</summary> | Card Type | Test Card Number | |:------------------|:---------------------| | Visa | 4111111111111111 | | MasterCard | 5431111111111111 | | Discover | 6011000991300009 | | American Express | 341111111111111 | | Diner's Club | 30205252489926 | | JCB | 3541963594572595 | | Maestro | 6799990100000000019 | </details> enum: ["4111111111111111", "5431111111111111", "6011000991300009", "341111111111111", "30205252489926", "3541963594572595", "6799990100000000019"] [oneOf 1].[allOf 2].ccexp string no Credit card expiration date. Format: `MMYY` [oneOf 1].[allOf 3].currency string no Set transaction currency. [oneOf 1].[allOf 3].acu_enabled string no If set to true, credit card will be evaluated and sent based upon Automatic Card Updater settings. If set to false, credit card will not be submitted for updates when Automatic Card Updater runs. Default - `true`. enum: ["true", "false"] [oneOf 1].[allOf 4].[allOf 1].start_date string no The first day that the customer will be charged. Format: `YYYYMMDD` format: "date" [oneOf 1].[allOf 4].[allOf 1].payment_token string no The tokenized version of the customer's card or check information, generated by the [Payment Component](../docs/payment-component) (npm packages / [Gateway.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#gjs_methodology)) and usable only once. Existing integrations may also supply a token from [Collect.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#cjs_methodology). [oneOf 1].[allOf 4].[allOf 1].applepay_payment_data string no The encrypted token created when integration directly to the Apple Pay SDK. [oneOf 1].[allOf 4].[allOf 1].googlepay_payment_data string no The encrypted token created when integration directly to the Google Pay SDK. [oneOf 1].[allOf 4].[allOf 1].first_name string no Cardholder's first name [oneOf 1].[allOf 4].[allOf 1].last_name string no Cardholder's last name [oneOf 1].[allOf 4].[allOf 1].address1 string no Card billing address. [oneOf 1].[allOf 4].[allOf 1].city string no Card billing city [oneOf 1].[allOf 4].[allOf 1].state string no Card billing state. Format: `CC` [oneOf 1].[allOf 4].[allOf 1].zip string no Card billing postal code [oneOf 1].[allOf 4].[allOf 1].country string no Card billing country code. *Country codes are as shown in ISO 3166-1 alpha-2*. Format: `CC` [oneOf 1].[allOf 4].[allOf 1].phone string no Billing phone number [oneOf 1].[allOf 4].[allOf 1].email string no Billing email address [oneOf 1].[allOf 4].[allOf 1].company string no Cardholder's company [oneOf 1].[allOf 4].[allOf 1].address2 string no Card billing address, line 2 [oneOf 1].[allOf 4].[allOf 1].fax string no Billing fax number [oneOf 1].[allOf 4].[allOf 1].orderid string no Order ID [oneOf 1].[allOf 4].[allOf 1].order_date string no Order Date [oneOf 1].[allOf 4].[allOf 1].order_description string no Order Description [oneOf 1].[allOf 4].[allOf 1].merchant_defined_field_1 string no Merchant defined field which can be set up in merchant control panel under Settings->Merchant Defined Fields. You can pass custom information in up to 20 fields. Format: `merchant_defined_field_1=Value1`, `merchant_defined_field_2=Value2`, etc... [oneOf 1].[allOf 4].[allOf 1].ponumber string no Cardholder's purchase order number [oneOf 1].[allOf 4].[allOf 1].processor_id string no If using Multiple MIDs, route to this processor (processor_id is obtained under Settings->Transaction Routing in the Control Panel) [oneOf 1].[allOf 4].[allOf 1].customer_receipt string no If set to true, when the customer is charged, they will be sent a transaction receipt enum: ["true", "false"] [oneOf 1].[allOf 4].[allOf 1].source_transaction_id string no Specifies a payment gateway transaction id in order to associate payment information with a Subscription record [oneOf 2].[allOf 1].security_key string yes API Security Key assigned to a merchant account. New keys can be generated from the merchant control panel in Settings > Security Keys [oneOf 2].[allOf 1].recurring string yes Associate payment information with a recurring plan enum: ["add_subscription"] [oneOf 2].[allOf 1].plan_id string yes The plan ID of the plan that the subscription will be associated with [oneOf 2].[allOf 1].payment string yes The type of payment enum: ["check"] [oneOf 2].[allOf 2].checkname string no The name on the customer's ACH account. [oneOf 2].[allOf 2].checkaba string no The customer's bank routing number. minLength: 9; maxLength: 9 [oneOf 2].[allOf 2].checkaccount string no The customer's bank account number. [oneOf 2].[allOf 2].account_holder_type string no The type of ACH account the customer has. enum: ["business", "personal"] [oneOf 2].[allOf 2].account_type string no The type of ACH account the customer has. enum: ["checking", "savings"] [oneOf 2].[allOf 2].sec_code string no The Standard Entry Class code of the ACH transaction. enum: ["PPD", "WEB", "TEL", "CCD"] [oneOf 2].[allOf 3].currency string no Set transaction currency [oneOf 2].[allOf 4].[allOf 1].start_date string no The first day that the customer will be charged. Format: `YYYYMMDD` format: "date" [oneOf 2].[allOf 4].[allOf 1].payment_token string no The tokenized version of the customer's card or check information, generated by the [Payment Component](../docs/payment-component) (npm packages / [Gateway.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#gjs_methodology)) and usable only once. Existing integrations may also supply a token from [Collect.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#cjs_methodology). [oneOf 2].[allOf 4].[allOf 1].applepay_payment_data string no The encrypted token created when integration directly to the Apple Pay SDK. [oneOf 2].[allOf 4].[allOf 1].googlepay_payment_data string no The encrypted token created when integration directly to the Google Pay SDK. [oneOf 2].[allOf 4].[allOf 1].first_name string no Cardholder's first name [oneOf 2].[allOf 4].[allOf 1].last_name string no Cardholder's last name [oneOf 2].[allOf 4].[allOf 1].address1 string no Card billing address. [oneOf 2].[allOf 4].[allOf 1].city string no Card billing city [oneOf 2].[allOf 4].[allOf 1].state string no Card billing state. Format: `CC` [oneOf 2].[allOf 4].[allOf 1].zip string no Card billing postal code [oneOf 2].[allOf 4].[allOf 1].country string no Card billing country code. *Country codes are as shown in ISO 3166-1 alpha-2*. Format: `CC` [oneOf 2].[allOf 4].[allOf 1].phone string no Billing phone number [oneOf 2].[allOf 4].[allOf 1].email string no Billing email address [oneOf 2].[allOf 4].[allOf 1].company string no Cardholder's company [oneOf 2].[allOf 4].[allOf 1].address2 string no Card billing address, line 2 [oneOf 2].[allOf 4].[allOf 1].fax string no Billing fax number [oneOf 2].[allOf 4].[allOf 1].orderid string no Order ID [oneOf 2].[allOf 4].[allOf 1].order_date string no Order Date [oneOf 2].[allOf 4].[allOf 1].order_description string no Order Description [oneOf 2].[allOf 4].[allOf 1].merchant_defined_field_1 string no Merchant defined field which can be set up in merchant control panel under Settings->Merchant Defined Fields. You can pass custom information in up to 20 fields. Format: `merchant_defined_field_1=Value1`, `merchant_defined_field_2=Value2`, etc... [oneOf 2].[allOf 4].[allOf 1].ponumber string no Cardholder's purchase order number [oneOf 2].[allOf 4].[allOf 1].processor_id string no If using Multiple MIDs, route to this processor (processor_id is obtained under Settings->Transaction Routing in the Control Panel) [oneOf 2].[allOf 4].[allOf 1].customer_receipt string no If set to true, when the customer is charged, they will be sent a transaction receipt enum: ["true", "false"] [oneOf 2].[allOf 4].[allOf 1].source_transaction_id string no Specifies a payment gateway transaction id in order to associate payment information with a Subscription record [oneOf 3].[allOf 2].security_key string no API Security Key assigned to a merchant account. New keys can be generated from the merchant control panel in Settings > Security Keys [oneOf 3].[allOf 2].recurring string no Add a custom recurring subscription that is NOT associated with an existing plan enum: ["add_subscription"] [oneOf 3].[allOf 2].payment string no The type of payment enum: ["check"] [oneOf 3].[allOf 3].plan_payments integer no The number of payments before the recurring plan is complete. Note: Use '0' for until canceled [oneOf 3].[allOf 3].plan_amount number no The plan amount to be charged each billing cycle. Format: `x.xx` [oneOf 3].[allOf 4].month_frequency integer no How often, in months, to charge the customer. Cannot be set with 'day_frequency'. Must be set with 'day_of_month'. minimum: 1; maximum: 24 [oneOf 3].[allOf 4].day_of_month integer no The day that the customer will be charged. Cannot be set with 'day_frequency'. Must be set with 'month_frequency'. For months without 29, 30, or 31 days, the charge will be on the last day. minimum: 1; maximum: 31 [oneOf 3].[allOf 5].checkname string no The name on the customer's ACH account. [oneOf 3].[allOf 5].checkaba string no The customer's bank routing number. minLength: 9; maxLength: 9 [oneOf 3].[allOf 5].checkaccount string no The customer's bank account number. [oneOf 3].[allOf 5].account_holder_type string no The type of ACH account the customer has. enum: ["business", "personal"] [oneOf 3].[allOf 5].account_type string no The type of ACH account the customer has. enum: ["checking", "savings"] [oneOf 3].[allOf 5].sec_code string no The Standard Entry Class code of the ACH transaction. enum: ["PPD", "WEB", "TEL", "CCD"] [oneOf 3].[allOf 6].[allOf 1].start_date string no The first day that the customer will be charged. Format: `YYYYMMDD` format: "date" [oneOf 3].[allOf 6].[allOf 1].payment_token string no The tokenized version of the customer's card or check information, generated by the [Payment Component](../docs/payment-component) (npm packages / [Gateway.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#gjs_methodology)) and usable only once. Existing integrations may also supply a token from [Collect.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#cjs_methodology). [oneOf 3].[allOf 6].[allOf 1].applepay_payment_data string no The encrypted token created when integration directly to the Apple Pay SDK. [oneOf 3].[allOf 6].[allOf 1].googlepay_payment_data string no The encrypted token created when integration directly to the Google Pay SDK. [oneOf 3].[allOf 6].[allOf 1].first_name string no Cardholder's first name [oneOf 3].[allOf 6].[allOf 1].last_name string no Cardholder's last name [oneOf 3].[allOf 6].[allOf 1].address1 string no Card billing address. [oneOf 3].[allOf 6].[allOf 1].city string no Card billing city [oneOf 3].[allOf 6].[allOf 1].state string no Card billing state. Format: `CC` [oneOf 3].[allOf 6].[allOf 1].zip string no Card billing postal code [oneOf 3].[allOf 6].[allOf 1].country string no Card billing country code. *Country codes are as shown in ISO 3166-1 alpha-2*. Format: `CC` [oneOf 3].[allOf 6].[allOf 1].phone string no Billing phone number [oneOf 3].[allOf 6].[allOf 1].email string no Billing email address [oneOf 3].[allOf 6].[allOf 1].company string no Cardholder's company [oneOf 3].[allOf 6].[allOf 1].address2 string no Card billing address, line 2 [oneOf 3].[allOf 6].[allOf 1].fax string no Billing fax number [oneOf 3].[allOf 6].[allOf 1].orderid string no Order ID [oneOf 3].[allOf 6].[allOf 1].order_date string no Order Date [oneOf 3].[allOf 6].[allOf 1].order_description string no Order Description [oneOf 3].[allOf 6].[allOf 1].merchant_defined_field_1 string no Merchant defined field which can be set up in merchant control panel under Settings->Merchant Defined Fields. You can pass custom information in up to 20 fields. Format: `merchant_defined_field_1=Value1`, `merchant_defined_field_2=Value2`, etc... [oneOf 3].[allOf 6].[allOf 1].ponumber string no Cardholder's purchase order number [oneOf 3].[allOf 6].[allOf 1].processor_id string no If using Multiple MIDs, route to this processor (processor_id is obtained under Settings->Transaction Routing in the Control Panel) [oneOf 3].[allOf 6].[allOf 1].customer_receipt string no If set to true, when the customer is charged, they will be sent a transaction receipt enum: ["true", "false"] [oneOf 3].[allOf 6].[allOf 1].source_transaction_id string no Specifies a payment gateway transaction id in order to associate payment information with a Subscription record [oneOf 3].[allOf 7].paused_subscription string no If set to true, the subscription will be paused. enum: ["true", "false"] [oneOf 4].[allOf 2].security_key string no API Security Key assigned to a merchant account. New keys can be generated from the merchant control panel in Settings > Security Keys [oneOf 4].[allOf 2].recurring string no Add a custom recurring subscription that is NOT associated with an existing plan enum: ["add_subscription"] [oneOf 4].[allOf 2].payment string no The type of payment enum: ["creditcard"] [oneOf 4].[allOf 3].plan_payments integer no The number of payments before the recurring plan is complete. Note: Use '0' for until canceled [oneOf 4].[allOf 3].plan_amount number no The plan amount to be charged each billing cycle. Format: `x.xx` [oneOf 4].[allOf 4].month_frequency integer no How often, in months, to charge the customer. Cannot be set with 'day_frequency'. Must be set with 'day_of_month'. minimum: 1; maximum: 24 [oneOf 4].[allOf 4].day_of_month integer no The day that the customer will be charged. Cannot be set with 'day_frequency'. Must be set with 'month_frequency'. For months without 29, 30, or 31 days, the charge will be on the last day. minimum: 1; maximum: 31 [oneOf 4].[allOf 5].ccnumber string no Credit card number. <details> <summary>Allowed Card Numbers:</summary> | Card Type | Test Card Number | |:------------------|:---------------------| | Visa | 4111111111111111 | | MasterCard | 5431111111111111 | | Discover | 6011000991300009 | | American Express | 341111111111111 | | Diner's Club | 30205252489926 | | JCB | 3541963594572595 | | Maestro | 6799990100000000019 | </details> enum: ["4111111111111111", "5431111111111111", "6011000991300009", "341111111111111", "30205252489926", "3541963594572595", "6799990100000000019"] [oneOf 4].[allOf 5].ccexp string no Credit card expiration date. Format: `MMYY` [oneOf 4].[allOf 6].[allOf 1].start_date string no The first day that the customer will be charged. Format: `YYYYMMDD` format: "date" [oneOf 4].[allOf 6].[allOf 1].payment_token string no The tokenized version of the customer's card or check information, generated by the [Payment Component](../docs/payment-component) (npm packages / [Gateway.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#gjs_methodology)) and usable only once. Existing integrations may also supply a token from [Collect.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#cjs_methodology). [oneOf 4].[allOf 6].[allOf 1].applepay_payment_data string no The encrypted token created when integration directly to the Apple Pay SDK. [oneOf 4].[allOf 6].[allOf 1].googlepay_payment_data string no The encrypted token created when integration directly to the Google Pay SDK. [oneOf 4].[allOf 6].[allOf 1].first_name string no Cardholder's first name [oneOf 4].[allOf 6].[allOf 1].last_name string no Cardholder's last name [oneOf 4].[allOf 6].[allOf 1].address1 string no Card billing address. [oneOf 4].[allOf 6].[allOf 1].city string no Card billing city [oneOf 4].[allOf 6].[allOf 1].state string no Card billing state. Format: `CC` [oneOf 4].[allOf 6].[allOf 1].zip string no Card billing postal code [oneOf 4].[allOf 6].[allOf 1].country string no Card billing country code. *Country codes are as shown in ISO 3166-1 alpha-2*. Format: `CC` [oneOf 4].[allOf 6].[allOf 1].phone string no Billing phone number [oneOf 4].[allOf 6].[allOf 1].email string no Billing email address [oneOf 4].[allOf 6].[allOf 1].company string no Cardholder's company [oneOf 4].[allOf 6].[allOf 1].address2 string no Card billing address, line 2 [oneOf 4].[allOf 6].[allOf 1].fax string no Billing fax number [oneOf 4].[allOf 6].[allOf 1].orderid string no Order ID [oneOf 4].[allOf 6].[allOf 1].order_date string no Order Date [oneOf 4].[allOf 6].[allOf 1].order_description string no Order Description [oneOf 4].[allOf 6].[allOf 1].merchant_defined_field_1 string no Merchant defined field which can be set up in merchant control panel under Settings->Merchant Defined Fields. You can pass custom information in up to 20 fields. Format: `merchant_defined_field_1=Value1`, `merchant_defined_field_2=Value2`, etc... [oneOf 4].[allOf 6].[allOf 1].ponumber string no Cardholder's purchase order number [oneOf 4].[allOf 6].[allOf 1].processor_id string no If using Multiple MIDs, route to this processor (processor_id is obtained under Settings->Transaction Routing in the Control Panel) [oneOf 4].[allOf 6].[allOf 1].customer_receipt string no If set to true, when the customer is charged, they will be sent a transaction receipt enum: ["true", "false"] [oneOf 4].[allOf 6].[allOf 1].source_transaction_id string no Specifies a payment gateway transaction id in order to associate payment information with a Subscription record [oneOf 4].[allOf 7].acu_enabled string no If set to true, credit card will be evaluated and sent based upon Automatic Card Updater settings. If set to false, credit card will not be submitted for updates when Automatic Card Updater runs. Default - `true`. enum: ["true", "false"] [oneOf 4].[allOf 7].paused_subscription string no If set to true, the subscription will be paused. enum: ["true", "false"] [oneOf 5].[allOf 2].security_key string no API Security Key assigned to a merchant account. New keys can be generated from the merchant control panel in Settings > Security Keys [oneOf 5].[allOf 2].recurring string no Add a custom recurring subscription that is NOT associated with an existing plan enum: ["add_subscription"] [oneOf 5].[allOf 2].applepay_payment_data string no The encrypted payment data from the Apple Pay SDK. Required when data collected directly from Apple Pay SDK. [oneOf 5].[allOf 2].googlepay_payment_data string no The encrypted payment data from the Google Pay SDK. Required when data collected directly from the Google Pay SDK. [oneOf 5].[allOf 2].payment_token string no The tokenized version of the customer's wallet information, generated by the [Payment Component](../docs/payment-component) (npm packages / [Gateway.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#gjs_methodology)) and usable only once. Usable for either Apple Pay or Google Pay. Existing integrations may also supply a token from [Collect.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#cjs_methodology). [oneOf 5].[allOf 3].plan_payments integer no The number of payments before the recurring plan is complete. Note: Use '0' for until canceled [oneOf 5].[allOf 3].plan_amount number no The plan amount to be charged each billing cycle. Format: `x.xx` [oneOf 5].[allOf 4].month_frequency integer no How often, in months, to charge the customer. Cannot be set with 'day_frequency'. Must be set with 'day_of_month'. minimum: 1; maximum: 24 [oneOf 5].[allOf 4].day_of_month integer no The day that the customer will be charged. Cannot be set with 'day_frequency'. Must be set with 'month_frequency'. For months without 29, 30, or 31 days, the charge will be on the last day. minimum: 1; maximum: 31 [oneOf 5].[allOf 5].[allOf 1].start_date string no The first day that the customer will be charged. Format: `YYYYMMDD` format: "date" [oneOf 5].[allOf 5].[allOf 1].payment_token string no The tokenized version of the customer's card or check information, generated by the [Payment Component](../docs/payment-component) (npm packages / [Gateway.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#gjs_methodology)) and usable only once. Existing integrations may also supply a token from [Collect.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#cjs_methodology). [oneOf 5].[allOf 5].[allOf 1].applepay_payment_data string no The encrypted token created when integration directly to the Apple Pay SDK. [oneOf 5].[allOf 5].[allOf 1].googlepay_payment_data string no The encrypted token created when integration directly to the Google Pay SDK. [oneOf 5].[allOf 5].[allOf 1].first_name string no Cardholder's first name [oneOf 5].[allOf 5].[allOf 1].last_name string no Cardholder's last name [oneOf 5].[allOf 5].[allOf 1].address1 string no Card billing address. [oneOf 5].[allOf 5].[allOf 1].city string no Card billing city [oneOf 5].[allOf 5].[allOf 1].state string no Card billing state. Format: `CC` [oneOf 5].[allOf 5].[allOf 1].zip string no Card billing postal code [oneOf 5].[allOf 5].[allOf 1].country string no Card billing country code. *Country codes are as shown in ISO 3166-1 alpha-2*. Format: `CC` [oneOf 5].[allOf 5].[allOf 1].phone string no Billing phone number [oneOf 5].[allOf 5].[allOf 1].email string no Billing email address [oneOf 5].[allOf 5].[allOf 1].company string no Cardholder's company [oneOf 5].[allOf 5].[allOf 1].address2 string no Card billing address, line 2 [oneOf 5].[allOf 5].[allOf 1].fax string no Billing fax number [oneOf 5].[allOf 5].[allOf 1].orderid string no Order ID [oneOf 5].[allOf 5].[allOf 1].order_date string no Order Date [oneOf 5].[allOf 5].[allOf 1].order_description string no Order Description [oneOf 5].[allOf 5].[allOf 1].merchant_defined_field_1 string no Merchant defined field which can be set up in merchant control panel under Settings->Merchant Defined Fields. You can pass custom information in up to 20 fields. Format: `merchant_defined_field_1=Value1`, `merchant_defined_field_2=Value2`, etc... [oneOf 5].[allOf 5].[allOf 1].ponumber string no Cardholder's purchase order number [oneOf 5].[allOf 5].[allOf 1].processor_id string no If using Multiple MIDs, route to this processor (processor_id is obtained under Settings->Transaction Routing in the Control Panel) [oneOf 5].[allOf 5].[allOf 1].customer_receipt string no If set to true, when the customer is charged, they will be sent a transaction receipt enum: ["true", "false"] [oneOf 5].[allOf 5].[allOf 1].source_transaction_id string no Specifies a payment gateway transaction id in order to associate payment information with a Subscription record [oneOf 5].[allOf 6].acu_enabled string no If set to true, credit card will be evaluated and sent based upon Automatic Card Updater settings. If set to false, credit card will not be submitted for updates when Automatic Card Updater runs. Default - `true`. enum: ["true", "false"] [oneOf 5].[allOf 6].paused_subscription string no If set to true, the subscription will be paused. enum: ["true", "false"] [oneOf 6].[allOf 2].security_key string no API Security Key assigned to a merchant account. New keys can be generated from the merchant control panel in Settings > Security Keys [oneOf 6].[allOf 2].recurring string no Add a custom recurring subscription that is NOT associated with an existing plan enum: ["add_subscription"] [oneOf 6].[allOf 2].payment string no The type of payment enum: ["check"] [oneOf 6].[allOf 3].plan_payments integer no The number of payments before the recurring plan is complete. Note: Use '0' for until canceled [oneOf 6].[allOf 3].plan_amount number no The plan amount to be charged each billing cycle. Format: `x.xx` [oneOf 6].[allOf 4].day_frequency integer no How often, in days, to charge the customer. Cannot be set with 'month_frequency' or 'day_of_month'. [oneOf 6].[allOf 5].checkname string no The name on the customer's ACH account. [oneOf 6].[allOf 5].checkaba string no The customer's bank routing number. minLength: 9; maxLength: 9 [oneOf 6].[allOf 5].checkaccount string no The customer's bank account number. [oneOf 6].[allOf 5].account_holder_type string no The type of ACH account the customer has. enum: ["business", "personal"] [oneOf 6].[allOf 5].account_type string no The type of ACH account the customer has. enum: ["checking", "savings"] [oneOf 6].[allOf 5].sec_code string no The Standard Entry Class code of the ACH transaction. enum: ["PPD", "WEB", "TEL", "CCD"] [oneOf 6].[allOf 6].[allOf 1].start_date string no The first day that the customer will be charged. Format: `YYYYMMDD` format: "date" [oneOf 6].[allOf 6].[allOf 1].payment_token string no The tokenized version of the customer's card or check information, generated by the [Payment Component](../docs/payment-component) (npm packages / [Gateway.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#gjs_methodology)) and usable only once. Existing integrations may also supply a token from [Collect.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#cjs_methodology). [oneOf 6].[allOf 6].[allOf 1].applepay_payment_data string no The encrypted token created when integration directly to the Apple Pay SDK. [oneOf 6].[allOf 6].[allOf 1].googlepay_payment_data string no The encrypted token created when integration directly to the Google Pay SDK. [oneOf 6].[allOf 6].[allOf 1].first_name string no Cardholder's first name [oneOf 6].[allOf 6].[allOf 1].last_name string no Cardholder's last name [oneOf 6].[allOf 6].[allOf 1].address1 string no Card billing address. [oneOf 6].[allOf 6].[allOf 1].city string no Card billing city [oneOf 6].[allOf 6].[allOf 1].state string no Card billing state. Format: `CC` [oneOf 6].[allOf 6].[allOf 1].zip string no Card billing postal code [oneOf 6].[allOf 6].[allOf 1].country string no Card billing country code. *Country codes are as shown in ISO 3166-1 alpha-2*. Format: `CC` [oneOf 6].[allOf 6].[allOf 1].phone string no Billing phone number [oneOf 6].[allOf 6].[allOf 1].email string no Billing email address [oneOf 6].[allOf 6].[allOf 1].company string no Cardholder's company [oneOf 6].[allOf 6].[allOf 1].address2 string no Card billing address, line 2 [oneOf 6].[allOf 6].[allOf 1].fax string no Billing fax number [oneOf 6].[allOf 6].[allOf 1].orderid string no Order ID [oneOf 6].[allOf 6].[allOf 1].order_date string no Order Date [oneOf 6].[allOf 6].[allOf 1].order_description string no Order Description [oneOf 6].[allOf 6].[allOf 1].merchant_defined_field_1 string no Merchant defined field which can be set up in merchant control panel under Settings->Merchant Defined Fields. You can pass custom information in up to 20 fields. Format: `merchant_defined_field_1=Value1`, `merchant_defined_field_2=Value2`, etc... [oneOf 6].[allOf 6].[allOf 1].ponumber string no Cardholder's purchase order number [oneOf 6].[allOf 6].[allOf 1].processor_id string no If using Multiple MIDs, route to this processor (processor_id is obtained under Settings->Transaction Routing in the Control Panel) [oneOf 6].[allOf 6].[allOf 1].customer_receipt string no If set to true, when the customer is charged, they will be sent a transaction receipt enum: ["true", "false"] [oneOf 6].[allOf 6].[allOf 1].source_transaction_id string no Specifies a payment gateway transaction id in order to associate payment information with a Subscription record [oneOf 6].[allOf 7].paused_subscription string no If set to true, the subscription will be paused. enum: ["true", "false"] [oneOf 7].[allOf 2].security_key string no API Security Key assigned to a merchant account. New keys can be generated from the merchant control panel in Settings > Security Keys [oneOf 7].[allOf 2].recurring string no Add a custom recurring subscription that is NOT associated with an existing plan enum: ["add_subscription"] [oneOf 7].[allOf 2].payment string no The type of payment enum: ["creditcard"] [oneOf 7].[allOf 3].plan_payments integer no The number of payments before the recurring plan is complete. Note: Use '0' for until canceled [oneOf 7].[allOf 3].plan_amount number no The plan amount to be charged each billing cycle. Format: `x.xx` [oneOf 7].[allOf 4].day_frequency integer no How often, in days, to charge the customer. Cannot be set with 'month_frequency' or 'day_of_month'. [oneOf 7].[allOf 5].ccnumber string no Credit card number. <details> <summary>Allowed Card Numbers:</summary> | Card Type | Test Card Number | |:------------------|:---------------------| | Visa | 4111111111111111 | | MasterCard | 5431111111111111 | | Discover | 6011000991300009 | | American Express | 341111111111111 | | Diner's Club | 30205252489926 | | JCB | 3541963594572595 | | Maestro | 6799990100000000019 | </details> enum: ["4111111111111111", "5431111111111111", "6011000991300009", "341111111111111", "30205252489926", "3541963594572595", "6799990100000000019"] [oneOf 7].[allOf 5].ccexp string no Credit card expiration date. Format: `MMYY` [oneOf 7].[allOf 6].[allOf 1].start_date string no The first day that the customer will be charged. Format: `YYYYMMDD` format: "date" [oneOf 7].[allOf 6].[allOf 1].payment_token string no The tokenized version of the customer's card or check information, generated by the [Payment Component](../docs/payment-component) (npm packages / [Gateway.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#gjs_methodology)) and usable only once. Existing integrations may also supply a token from [Collect.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#cjs_methodology). [oneOf 7].[allOf 6].[allOf 1].applepay_payment_data string no The encrypted token created when integration directly to the Apple Pay SDK. [oneOf 7].[allOf 6].[allOf 1].googlepay_payment_data string no The encrypted token created when integration directly to the Google Pay SDK. [oneOf 7].[allOf 6].[allOf 1].first_name string no Cardholder's first name [oneOf 7].[allOf 6].[allOf 1].last_name string no Cardholder's last name [oneOf 7].[allOf 6].[allOf 1].address1 string no Card billing address. [oneOf 7].[allOf 6].[allOf 1].city string no Card billing city [oneOf 7].[allOf 6].[allOf 1].state string no Card billing state. Format: `CC` [oneOf 7].[allOf 6].[allOf 1].zip string no Card billing postal code [oneOf 7].[allOf 6].[allOf 1].country string no Card billing country code. *Country codes are as shown in ISO 3166-1 alpha-2*. Format: `CC` [oneOf 7].[allOf 6].[allOf 1].phone string no Billing phone number [oneOf 7].[allOf 6].[allOf 1].email string no Billing email address [oneOf 7].[allOf 6].[allOf 1].company string no Cardholder's company [oneOf 7].[allOf 6].[allOf 1].address2 string no Card billing address, line 2 [oneOf 7].[allOf 6].[allOf 1].fax string no Billing fax number [oneOf 7].[allOf 6].[allOf 1].orderid string no Order ID [oneOf 7].[allOf 6].[allOf 1].order_date string no Order Date [oneOf 7].[allOf 6].[allOf 1].order_description string no Order Description [oneOf 7].[allOf 6].[allOf 1].merchant_defined_field_1 string no Merchant defined field which can be set up in merchant control panel under Settings->Merchant Defined Fields. You can pass custom information in up to 20 fields. Format: `merchant_defined_field_1=Value1`, `merchant_defined_field_2=Value2`, etc... [oneOf 7].[allOf 6].[allOf 1].ponumber string no Cardholder's purchase order number [oneOf 7].[allOf 6].[allOf 1].processor_id string no If using Multiple MIDs, route to this processor (processor_id is obtained under Settings->Transaction Routing in the Control Panel) [oneOf 7].[allOf 6].[allOf 1].customer_receipt string no If set to true, when the customer is charged, they will be sent a transaction receipt enum: ["true", "false"] [oneOf 7].[allOf 6].[allOf 1].source_transaction_id string no Specifies a payment gateway transaction id in order to associate payment information with a Subscription record [oneOf 7].[allOf 7].acu_enabled string no If set to true, credit card will be evaluated and sent based upon Automatic Card Updater settings. If set to false, credit card will not be submitted for updates when Automatic Card Updater runs. Default - `true`. enum: ["true", "false"] [oneOf 7].[allOf 7].paused_subscription string no If set to true, the subscription will be paused. enum: ["true", "false"] [oneOf 8].[allOf 1].security_key string yes API Security Key assigned to a merchant account. New keys can be generated from the merchant control panel in Settings > Security Keys [oneOf 8].[allOf 1].recurring string yes Update the subscription's billing information. enum: ["update_subscription"] [oneOf 8].[allOf 1].subscription_id string yes The subscription ID that will be updated. [oneOf 8].[allOf 1].plan_payments integer no The number of payments before the recurring plan is complete. Notes: '0' for until canceled [oneOf 8].[allOf 1].plan_amount number no The plan amount to be charged each billing cycle. Format: `x.xx` [oneOf 8].[allOf 1].acu_enabled string no If set to true, credit card will be evaluated and sent based upon Automatic Card Updater settings. If set to false, credit card will not be submitted for updates when Automatic Card Updater runs. Default - `true`. enum: ["true", "false"] [oneOf 8].[allOf 1].paused_subscription string no If set to true, the subscription will be paused. enum: ["true", "false"] [oneOf 8].[allOf 2].[allOf 1].start_date string no The first day that the customer will be charged. Format: `YYYYMMDD` format: "date" [oneOf 8].[allOf 2].[allOf 1].payment_token string no The tokenized version of the customer's card or check information, generated by the [Payment Component](../docs/payment-component) (npm packages / [Gateway.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#gjs_methodology)) and usable only once. Existing integrations may also supply a token from [Collect.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#cjs_methodology). [oneOf 8].[allOf 2].[allOf 1].applepay_payment_data string no The encrypted token created when integration directly to the Apple Pay SDK. [oneOf 8].[allOf 2].[allOf 1].googlepay_payment_data string no The encrypted token created when integration directly to the Google Pay SDK. [oneOf 8].[allOf 2].[allOf 1].first_name string no Cardholder's first name [oneOf 8].[allOf 2].[allOf 1].last_name string no Cardholder's last name [oneOf 8].[allOf 2].[allOf 1].address1 string no Card billing address. [oneOf 8].[allOf 2].[allOf 1].city string no Card billing city [oneOf 8].[allOf 2].[allOf 1].state string no Card billing state. Format: `CC` [oneOf 8].[allOf 2].[allOf 1].zip string no Card billing postal code [oneOf 8].[allOf 2].[allOf 1].country string no Card billing country code. *Country codes are as shown in ISO 3166-1 alpha-2*. Format: `CC` [oneOf 8].[allOf 2].[allOf 1].phone string no Billing phone number [oneOf 8].[allOf 2].[allOf 1].email string no Billing email address [oneOf 8].[allOf 2].[allOf 1].company string no Cardholder's company [oneOf 8].[allOf 2].[allOf 1].address2 string no Card billing address, line 2 [oneOf 8].[allOf 2].[allOf 1].fax string no Billing fax number [oneOf 8].[allOf 2].[allOf 1].orderid string no Order ID [oneOf 8].[allOf 2].[allOf 1].order_date string no Order Date [oneOf 8].[allOf 2].[allOf 1].order_description string no Order Description [oneOf 8].[allOf 2].[allOf 1].merchant_defined_field_1 string no Merchant defined field which can be set up in merchant control panel under Settings->Merchant Defined Fields. You can pass custom information in up to 20 fields. Format: `merchant_defined_field_1=Value1`, `merchant_defined_field_2=Value2`, etc... [oneOf 8].[allOf 2].[allOf 1].ponumber string no Cardholder's purchase order number [oneOf 8].[allOf 2].[allOf 1].processor_id string no If using Multiple MIDs, route to this processor (processor_id is obtained under Settings->Transaction Routing in the Control Panel) [oneOf 8].[allOf 2].[allOf 1].customer_receipt string no If set to true, when the customer is charged, they will be sent a transaction receipt enum: ["true", "false"] [oneOf 8].[allOf 2].[allOf 1].source_transaction_id string no Specifies a payment gateway transaction id in order to associate payment information with a Subscription record [oneOf 8].[allOf 3].month_frequency integer no How often, in months, to charge the customer. Cannot be set with 'day_frequency'. Must be set with 'day_of_month'. minimum: 1; maximum: 24 [oneOf 8].[allOf 3].day_of_month integer no The day that the customer will be charged. Cannot be set with 'day_frequency'. Must be set with 'month_frequency'. For months without 29, 30, or 31 days, the charge will be on the last day. minimum: 1; maximum: 31 [oneOf 8].[allOf 4].day_frequency integer no How often, in days, to charge the customer. Cannot be set with 'month_frequency' or 'day_of_month'. [oneOf 8].[allOf 5].checkname string no The name on the customer's ACH account. [oneOf 8].[allOf 5].checkaba string no The customer's bank routing number. minLength: 9; maxLength: 9 [oneOf 8].[allOf 5].checkaccount string no The customer's bank account number. [oneOf 8].[allOf 5].account_holder_type string no The type of ACH account the customer has. enum: ["business", "personal"] [oneOf 8].[allOf 5].account_type string no The type of ACH account the customer has. enum: ["checking", "savings"] [oneOf 8].[allOf 5].sec_code string no The Standard Entry Class code of the ACH transaction. enum: ["PPD", "WEB", "TEL", "CCD"] [oneOf 8].[allOf 6].ccnumber string no Credit card number. <details> <summary>Allowed Card Numbers:</summary> | Card Type | Test Card Number | |:------------------|:---------------------| | Visa | 4111111111111111 | | MasterCard | 5431111111111111 | | Discover | 6011000991300009 | | American Express | 341111111111111 | | Diner's Club | 30205252489926 | | JCB | 3541963594572595 | | Maestro | 6799990100000000019 | </details> enum: ["4111111111111111", "5431111111111111", "6011000991300009", "341111111111111", "30205252489926", "3541963594572595", "6799990100000000019"] [oneOf 8].[allOf 6].ccexp string no Credit card expiration date. Format: `MMYY` [oneOf 9].[allOf 1].security_key string yes API Security Key assigned to a merchant account. New keys can be generated from the merchant control panel in Settings > Security Keys [oneOf 9].[allOf 1].recurring string yes Delete the subscription. Customer will no longer be charged. enum: ["delete_subscription"] [oneOf 9].[allOf 1].subscription_id string yes The subscription ID that will be deleted. { "content": { "application/x-www-form-urlencoded": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/SubscribeToPlanUsingCreditCard" }, { "$ref": "#/components/schemas/SubscribeToPlanUsingACH" }, { "$ref": "#/components/schemas/AddCustomSubscriptionMonthlyChargeACH" }, { "$ref": "#/components/schemas/AddCustomSubscriptionMonthlyChargeCC" }, { "$ref": "#/components/schemas/AddCustomSubscriptionMonthlyChargeDigitalWallet" }, { "$ref": "#/components/schemas/AddCustomSubscriptionNDayChargeACH" }, { "$ref": "#/components/schemas/AddCustomSubscriptionNDayChargeCC" }, { "$ref": "#/components/schemas/UpdateSubscription" }, { "$ref": "#/components/schemas/DeleteSubscription" } ] }, "examples": { "Add Credit Card Subscription To Plan": { "$ref": "#/components/examples/SubscribeToPlanUsingCreditCard" }, "Add ACH Subscription To Plan": { "$ref": "#/components/examples/SubscribeToPlanUsingACH" }, "Add Custom Subscription Daily ACH": { "$ref": "#/components/examples/AddCustomSubscriptionDailyACH" }, "Add Custom Subscription Daily Credit Card": { "$ref": "#/components/examples/AddCustomSubscriptionDailyCC" }, "Add Custom Subscription Monthly ACH": { "$ref": "#/components/examples/AddCustomSubscriptionMonthlyACH" }, "Add Custom Subscription Monthly Credit Card": { "$ref": "#/components/examples/AddCustomSubscriptionMonthlyCC" }, "Add Custom Subscription Monthly Digital Wallet": { "$ref": "#/components/examples/AddCustomSubscriptionDigitalWallet" }, "Update Subscription": { "$ref": "#/components/examples/UpdateSubscription" }, "Update Subscription Plan Details": { "$ref": "#/components/examples/UpdateSubscriptionPlanDetails" }, "Delete Subscription": { "$ref": "#/components/examples/DeleteSubscription" } } } } } true
Response contract
The Classic methodology describes ampersand-delimited name/value responses. Where this schema advertises JSON media, that declaration is retained below as a source inconsistency; do not assume REST response parsing. For payments, response 1/2/3 distinguishes approval, decline and error. A transport success alone does not prove a payment was approved. { "200": { "description": "Subscription operation completed successfully", "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/Response" }, "examples": { "Subscription Added": { "$ref": "#/components/examples/SubscriptionAdded" }, "Subscription Updated": { "$ref": "#/components/examples/SubscriptionUpdated" }, "Deleted Subscription": { "$ref": "#/components/examples/SubscriptionDeleted" }, "Declined Request": { "$ref": "#/components/examples/DeclinedResponse" } } } } } } true
Referenced schema definitions
All schemas and source example objects are preserved here, including descriptions, enums and references. Sample data may be historical. These JSON objects describe form parameters; they are not instructions to send JSON to Classic. { "schemas": { "SecurityKey": { "type": "string", "description": "API Security Key assigned to a merchant account. New keys can be generated from the merchant control panel in Settings > Security Keys" }, "CreditCard": { "type": "object", "properties": { "ccnumber": { "type": "string", "enum": [ "4111111111111111", "5431111111111111", "6011000991300009", "341111111111111", "30205252489926", "3541963594572595", "6799990100000000019" ], "description": "Credit card number.\n\n<details>\n<summary>Allowed Card Numbers:</summary>\n\n| Card Type | Test Card Number |\n|:------------------|:---------------------|\n| Visa | 4111111111111111 |\n| MasterCard | 5431111111111111 |\n| Discover | 6011000991300009 |\n| American Express | 341111111111111 |\n| Diner's Club | 30205252489926 |\n| JCB | 3541963594572595 |\n| Maestro | 6799990100000000019 |\n</details>" }, "ccexp": { "type": "string", "description": "Credit card expiration date.\n \nFormat: `MMYY`" } } }, "BaseSubscription": { "allOf": [ { "type": "object", "properties": { "start_date": { "type": "string", "format": "date", "description": "The first day that the customer will be charged. Format: `YYYYMMDD`" }, "payment_token": { "type": "string", "description": "The tokenized version of the customer's card or check information, generated by the [Payment Component](../docs/payment-component) (npm packages / [Gateway.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#gjs_methodology)) and usable only once. Existing integrations may also supply a token from [Collect.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#cjs_methodology)." }, "applepay_payment_data": { "type": "string", "description": "The encrypted token created when integration directly to the Apple Pay SDK." }, "googlepay_payment_data": { "type": "string", "description": "The encrypted token created when integration directly to the Google Pay SDK." }, "first_name": { "type": "string", "description": "Cardholder's first name" }, "last_name": { "type": "string", "description": "Cardholder's last name" }, "address1": { "type": "string", "description": "Card billing address." }, "city": { "type": "string", "description": "Card billing city" }, "state": { "type": "string", "description": "Card billing state.\n \nFormat: `CC`" }, "zip": { "type": "string", "description": "Card billing postal code" }, "country": { "type": "string", "description": "Card billing country code. *Country codes are as shown in ISO 3166-1 alpha-2*.\n \nFormat: `CC`" }, "phone": { "type": "string", "description": "Billing phone number" }, "email": { "type": "string", "description": "Billing email address" }, "company": { "type": "string", "description": "Cardholder's company" }, "address2": { "type": "string", "description": "Card billing address, line 2" }, "fax": { "type": "string", "description": "Billing fax number" }, "orderid": { "type": "string", "description": "Order ID" }, "order_date": { "type": "string", "description": "Order Date" }, "order_description": { "type": "string", "description": "Order Description" }, "merchant_defined_field_1": { "type": "string", "description": "Merchant defined field which can be set up in merchant control panel under Settings->Merchant Defined Fields. You can pass custom information in up to 20 fields.\n\nFormat: `merchant_defined_field_1=Value1`, `merchant_defined_field_2=Value2`, etc..." }, "ponumber": { "type": "string", "description": "Cardholder's purchase order number" }, "processor_id": { "type": "string", "description": "If using Multiple MIDs, route to this processor (processor_id is obtained under Settings->Transaction Routing in the Control Panel)" }, "customer_receipt": { "type": "string", "enum": [ "true", "false" ], "description": "If set to true, when the customer is charged, they will be sent a transaction receipt" }, "source_transaction_id": { "type": "string", "description": "Specifies a payment gateway transaction id in order to associate payment information with a Subscription record" } } } ] }, "SubscribeToPlanUsingCreditCard": { "title": "Subscribe to Plan Using Credit Card", "allOf": [ { "required": [ "recurring", "plan_id", "ccnumber", "ccexp", "security_key" ], "type": "object", "properties": { "security_key": { "$ref": "#/components/schemas/SecurityKey" }, "recurring": { "type": "string", "enum": [ "add_subscription" ], "description": "Associate payment information with a recurring plan" }, "plan_id": { "type": "string", "description": "The plan ID of the plan that the subscription will be associated with" }, "payment": { "type": "string", "enum": [ "creditcard" ], "description": "The type of payment. Default - `creditcard`." } } }, { "$ref": "#/components/schemas/CreditCard" }, { "type": "object", "properties": { "currency": { "type": "string", "description": "Set transaction currency." }, "acu_enabled": { "type": "string", "enum": [ "true", "false" ], "description": "If set to true, credit card will be evaluated and sent based upon Automatic Card Updater settings. If set to false, credit card will not be submitted for updates when Automatic Card Updater runs. Default - `true`." } } }, { "$ref": "#/components/schemas/BaseSubscription" } ] }, "ACH": { "type": "object", "properties": { "checkname": { "type": "string", "description": "The name on the customer's ACH account." }, "checkaba": { "type": "string", "minLength": 9, "maxLength": 9, "description": "The customer's bank routing number." }, "checkaccount": { "type": "string", "description": "The customer's bank account number." }, "account_holder_type": { "type": "string", "enum": [ "business", "personal" ], "description": "The type of ACH account the customer has." }, "account_type": { "type": "string", "enum": [ "checking", "savings" ], "description": "The type of ACH account the customer has." }, "sec_code": { "type": "string", "enum": [ "PPD", "WEB", "TEL", "CCD" ], "description": "The Standard Entry Class code of the ACH transaction." } } }, "SubscribeToPlanUsingACH": { "title": "Subscribe to Plan Using ACH", "allOf": [ { "required": [ "recurring", "plan_id", "checkname", "checkaccount", "checkaba", "payment", "security_key" ], "type": "object", "properties": { "security_key": { "$ref": "#/components/schemas/SecurityKey" }, "recurring": { "type": "string", "enum": [ "add_subscription" ], "description": "Associate payment information with a recurring plan" }, "plan_id": { "type": "string", "description": "The plan ID of the plan that the subscription will be associated with" }, "payment": { "type": "string", "enum": [ "check" ], "description": "The type of payment" } } }, { "$ref": "#/components/schemas/ACH" }, { "type": "object", "properties": { "currency": { "type": "string", "description": "Set transaction currency" } } }, { "$ref": "#/components/schemas/BaseSubscription" } ] }, "RecurringFields": { "type": "object", "properties": { "plan_payments": { "type": "integer", "description": "The number of payments before the recurring plan is complete.\n\nNote: Use '0' for until canceled" }, "plan_amount": { "type": "number", "description": "The plan amount to be charged each billing cycle.\n\nFormat: `x.xx`" } } }, "RecurringMonthlyFields": { "type": "object", "properties": { "month_frequency": { "type": "integer", "minimum": 1, "maximum": 24, "description": "How often, in months, to charge the customer. Cannot be set with 'day_frequency'. Must be set with 'day_of_month'." }, "day_of_month": { "type": "integer", "minimum": 1, "maximum": 31, "description": "The day that the customer will be charged. Cannot be set with 'day_frequency'. Must be set with 'month_frequency'. For months without 29, 30, or 31 days, the charge will be on the last day." } } }, "AddCustomSubscriptionMonthlyChargeACH": { "title": "Add a Custom Subscription Monthly Charge ACH", "allOf": [ { "type": "object", "required": [ "recurring", "plan_payments", "plan_amount", "month_frequency", "day_of_month", "checkname", "checkaccount", "checkaba", "payment", "security_key" ] }, { "type": "object", "properties": { "security_key": { "$ref": "#/components/schemas/SecurityKey" }, "recurring": { "type": "string", "enum": [ "add_subscription" ], "description": "Add a custom recurring subscription that is NOT associated with an existing plan" }, "payment": { "type": "string", "enum": [ "check" ], "description": "The type of payment" } } }, { "$ref": "#/components/schemas/RecurringFields" }, { "$ref": "#/components/schemas/RecurringMonthlyFields" }, { "$ref": "#/components/schemas/ACH" }, { "$ref": "#/components/schemas/BaseSubscription" }, { "type": "object", "properties": { "paused_subscription": { "type": "string", "enum": [ "true", "false" ], "description": "If set to true, the subscription will be paused." } } } ] }, "AddCustomSubscriptionMonthlyChargeCC": { "title": "Add a Custom Subscription Monthly Charge Credit Card", "allOf": [ { "type": "object", "required": [ "recurring", "plan_payments", "plan_amount", "month_frequency", "day_of_month", "ccnumber", "ccexp", "security_key" ] }, { "type": "object", "properties": { "security_key": { "$ref": "#/components/schemas/SecurityKey" }, "recurring": { "type": "string", "enum": [ "add_subscription" ], "description": "Add a custom recurring subscription that is NOT associated with an existing plan" }, "payment": { "type": "string", "enum": [ "creditcard" ], "description": "The type of payment" } } }, { "$ref": "#/components/schemas/RecurringFields" }, { "$ref": "#/components/schemas/RecurringMonthlyFields" }, { "$ref": "#/components/schemas/CreditCard" }, { "$ref": "#/components/schemas/BaseSubscription" }, { "type": "object", "properties": { "acu_enabled": { "type": "string", "enum": [ "true", "false" ], "description": "If set to true, credit card will be evaluated and sent based upon Automatic Card Updater settings. If set to false, credit card will not be submitted for updates when Automatic Card Updater runs. Default - `true`." }, "paused_subscription": { "type": "string", "enum": [ "true", "false" ], "description": "If set to true, the subscription will be paused." } } } ] }, "AddCustomSubscriptionMonthlyChargeDigitalWallet": { "title": "Add a Custom Subscription Monthly Charge Digital Wallet", "allOf": [ { "type": "object", "required": [ "recurring", "plan_payments", "plan_amount", "month_frequency", "day_of_month", "security_key" ] }, { "type": "object", "properties": { "security_key": { "$ref": "#/components/schemas/SecurityKey" }, "recurring": { "type": "string", "enum": [ "add_subscription" ], "description": "Add a custom recurring subscription that is NOT associated with an existing plan" }, "applepay_payment_data": { "type": "string", "description": "The encrypted payment data from the Apple Pay SDK. Required when data collected directly from Apple Pay SDK." }, "googlepay_payment_data": { "type": "string", "description": "The encrypted payment data from the Google Pay SDK. Required when data collected directly from the Google Pay SDK." }, "payment_token": { "type": "string", "description": "The tokenized version of the customer's wallet information, generated by the [Payment Component](../docs/payment-component) (npm packages / [Gateway.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#gjs_methodology)) and usable only once. Usable for either Apple Pay or Google Pay. Existing integrations may also supply a token from [Collect.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#cjs_methodology)." } } }, { "$ref": "#/components/schemas/RecurringFields" }, { "$ref": "#/components/schemas/RecurringMonthlyFields" }, { "$ref": "#/components/schemas/BaseSubscription" }, { "type": "object", "properties": { "acu_enabled": { "type": "string", "enum": [ "true", "false" ], "description": "If set to true, credit card will be evaluated and sent based upon Automatic Card Updater settings. If set to false, credit card will not be submitted for updates when Automatic Card Updater runs. Default - `true`." }, "paused_subscription": { "type": "string", "enum": [ "true", "false" ], "description": "If set to true, the subscription will be paused." } } } ] }, "RecurringDailyFields": { "type": "object", "properties": { "day_frequency": { "type": "integer", "description": "How often, in days, to charge the customer. Cannot be set with 'month_frequency' or 'day_of_month'." } } }, "AddCustomSubscriptionNDayChargeACH": { "title": "Add a Custom Subscription Daily Charge ACH", "allOf": [ { "type": "object", "required": [ "recurring", "plan_payments", "plan_amount", "day_frequency", "checkname", "checkaccount", "checkaba", "payment", "security_key" ] }, { "type": "object", "properties": { "security_key": { "$ref": "#/components/schemas/SecurityKey" }, "recurring": { "type": "string", "enum": [ "add_subscription" ], "description": "Add a custom recurring subscription that is NOT associated with an existing plan" }, "payment": { "type": "string", "enum": [ "check" ], "description": "The type of payment" } } }, { "$ref": "#/components/schemas/RecurringFields" }, { "$ref": "#/components/schemas/RecurringDailyFields" }, { "$ref": "#/components/schemas/ACH" }, { "$ref": "#/components/schemas/BaseSubscription" }, { "type": "object", "properties": { "paused_subscription": { "type": "string", "enum": [ "true", "false" ], "description": "If set to true, the subscription will be paused." } } } ] }, "AddCustomSubscriptionNDayChargeCC": { "title": "Add a Custom Subscription Daily Charge Credit Card", "allOf": [ { "type": "object", "required": [ "recurring", "plan_payments", "plan_amount", "day_frequency", "ccnumber", "ccexp", "security_key" ] }, { "type": "object", "properties": { "security_key": { "$ref": "#/components/schemas/SecurityKey" }, "recurring": { "type": "string", "enum": [ "add_subscription" ], "description": "Add a custom recurring subscription that is NOT associated with an existing plan" }, "payment": { "type": "string", "enum": [ "creditcard" ], "description": "The type of payment" } } }, { "$ref": "#/components/schemas/RecurringFields" }, { "$ref": "#/components/schemas/RecurringDailyFields" }, { "$ref": "#/components/schemas/CreditCard" }, { "$ref": "#/components/schemas/BaseSubscription" }, { "type": "object", "properties": { "acu_enabled": { "type": "string", "enum": [ "true", "false" ], "description": "If set to true, credit card will be evaluated and sent based upon Automatic Card Updater settings. If set to false, credit card will not be submitted for updates when Automatic Card Updater runs. Default - `true`." }, "paused_subscription": { "type": "string", "enum": [ "true", "false" ], "description": "If set to true, the subscription will be paused." } } } ] }, "UpdateSubscription": { "title": "Update Subscription", "allOf": [ { "type": "object", "required": [ "recurring", "subscription_id", "ccnumber", "security_key" ], "properties": { "security_key": { "$ref": "#/components/schemas/SecurityKey" }, "recurring": { "type": "string", "enum": [ "update_subscription" ], "description": "Update the subscription's billing information." }, "subscription_id": { "type": "string", "description": "The subscription ID that will be updated." }, "plan_payments": { "type": "integer", "description": "The number of payments before the recurring plan is complete. \n \nNotes: '0' for until canceled" }, "plan_amount": { "type": "number", "description": "The plan amount to be charged each billing cycle.\n\nFormat: `x.xx`" }, "acu_enabled": { "type": "string", "enum": [ "true", "false" ], "description": "If set to true, credit card will be evaluated and sent based upon Automatic Card Updater settings. If set to false, credit card will not be submitted for updates when Automatic Card Updater runs. Default - `true`." }, "paused_subscription": { "type": "string", "enum": [ "true", "false" ], "description": "If set to true, the subscription will be paused." } } }, { "$ref": "#/components/schemas/BaseSubscription" }, { "$ref": "#/components/schemas/RecurringMonthlyFields" }, { "$ref": "#/components/schemas/RecurringDailyFields" }, { "$ref": "#/components/schemas/ACH" }, { "$ref": "#/components/schemas/CreditCard" } ] }, "DeleteSubscription": { "title": "Delete Subscription", "allOf": [ { "type": "object", "required": [ "recurring", "subscription_id", "security_key" ], "properties": { "security_key": { "$ref": "#/components/schemas/SecurityKey" }, "recurring": { "type": "string", "enum": [ "delete_subscription" ], "description": "Delete the subscription. Customer will no longer be charged." }, "subscription_id": { "type": "string", "description": "The subscription ID that will be deleted." } } } ] }, "Response": { "type": "object", "title": "Response", "properties": { "response": { "type": "string", "enum": [ "1", "2", "3" ], "description": "Status code for the operation. (1) - success, (2) - failed, (3) system error" }, "responsetext": { "type": "string", "description": "Textual description of the operation's result." }, "authcode": { "type": "string", "description": "Authorization code for the operation." }, "amount_authorized": { "type": "string", "description": "(Conditional) This will optionally come back when requesting partial payment. Authorization amount." }, "transactionid": { "type": "string", "description": "(Conditional - Payment) Payment gateway transaction id." }, "invoice_id": { "type": "string", "description": "(Conditional - Invoice) Identifier for the invoice." }, "avsresponse": { "type": "string", "description": "Address Verification Service response code." }, "cvvresponse": { "type": "string", "description": "Card Verification Value response." }, "orderid": { "type": "string", "description": "Identifier for an order related to this invoice." }, "type": { "type": "string", "enum": [ "sale", "auth", "validate", "credit", "offline", "capture", "void", "refund", "complete_partial_payment", "add_invoice", "update_invoice", "send_invoice", "close_invoice", "add_plan", "edit_plan", "add_subscription", "" ], "description": "Type of operation that this response is for." }, "partial_payment_id": { "type": "string", "description": "(Conditional) This will optionally come back when requesting partial payment. A numeric identifier which is used when submitting subsequent transactions." }, "partial_payment_balance": { "type": "string", "description": "(Conditional) This will optionally come back when requesting partial payment. The payment's remaining balance." }, "platform_id": { "type": "string", "description": "Platform ID associated with the transaction." }, "response_code": { "type": "string", "description": "Another status or result code for the operation. See [Response Code Table](#section/Appendixes/Payment-API-Response-Codes)" }, "subscription_id": { "type": "string", "description": "(Conditional - Subscription) The subscription ID that was created" }, "emv_auth_response_data": { "type": "string", "description": "(Conditional) This will optionally come back when any chip card data is provided on the authorization. This data needs to be sent back to the SDK after an authorization." }, "payment_terms": { "type": "string", "description": "(Conditional - Invoice) The terms of payment for the invoice." }, "customer_vault_id": { "type": "string", "description": "(Conditional - Customer Vault) The original customer_vault_id passed in the transaction request or the resulting customer_vault_id created on an approved transaction.\n\nNote: Only returned when the \"Customer Vault\" service is active." }, "kount_score": { "type": "string", "description": "The Kount \"Omniscore\" indicating the level of risk on a given transaction. The higher the score, the lower the risk.\n\nNote: Only returned when the \"Kount\" service is active." } } } }, "examples": { "SubscribeToPlanUsingCreditCard": { "summary": "Add a Subscription to Plan Using Credit Card ", "description": "Add a Subscription to an Existing Plan using Credit Card", "value": { "recurring": "add_subscription", "plan_id": "12345", "start_date": "20230901", "ccnumber": "4111111111111111", "ccexp": "1225", "first_name": "John", "last_name": "Doe", "address1": "123 Main St", "city": "New York", "state": "NY", "zip": "10001", "country": "US", "phone": "5555555555", "email": "johndoe@example.com", "security_key": "6457Thfj624V5r7WUwc5v6a68Zsd6YEm" } }, "SubscribeToPlanUsingACH": { "summary": "Add a Subscription to Plan Using ACH", "description": "Add a Subscription to an Existing Plan Using ACH", "value": { "recurring": "add_subscription", "plan_id": "12345", "start_date": "20230901", "checkname": "John Doe", "checkaccount": "123123123", "checkaba": "123123123", "payment": "check", "first_name": "John", "last_name": "Doe", "address1": "123 Main St", "city": "New York", "state": "NY", "zip": "10001", "country": "US", "phone": "5555555555", "email": "johndoe@example.com", "security_key": "6457Thfj624V5r7WUwc5v6a68Zsd6YEm" } }, "AddCustomSubscriptionDailyACH": { "summary": "Adding a Custom Daily Subscription Using ACH", "description": "Adding a Custom (NOT associated with an existing plan) Daily Charge Subscription Using ACH", "value": { "recurring": "add_subscription", "plan_payments": 0, "plan_amount": 22.22, "start_date": "20230901", "checkname": "John Doe", "day_frequency": 31, "checkaccount": "123123123", "checkaba": "123123123", "payment": "check", "first_name": "John", "last_name": "Doe", "address1": "123 Main St", "city": "New York", "state": "NY", "zip": "10001", "country": "US", "phone": "5555555555", "email": "johndoe@example.com", "security_key": "6457Thfj624V5r7WUwc5v6a68Zsd6YEm" } }, "AddCustomSubscriptionDailyCC": { "summary": "Adding a Custom Daily Subscription Using Credit Card", "description": "Adding a Custom (NOT associated with an existing plan) Daily Charge Subscription Using Credit Card", "value": { "recurring": "add_subscription", "plan_payments": 0, "plan_amount": 11.12, "start_date": "20230901", "day_frequency": 31, "ccnumber": "4111111111111111", "ccexp": "1225", "first_name": "John", "last_name": "Doe", "address1": "123 Main St", "city": "New York", "state": "NY", "zip": "10001", "country": "US", "phone": "5555555555", "email": "johndoe@example.com", "security_key": "6457Thfj624V5r7WUwc5v6a68Zsd6YEm" } }, "AddCustomSubscriptionMonthlyACH": { "summary": "Adding a Custom Monthly Subscription Using ACH", "description": "Adding a Custom (NOT associated with an existing plan) Monthly Charge Subscription Using ACH", "value": { "recurring": "add_subscription", "plan_payments": 0, "plan_amount": 22.22, "start_date": "20230901", "checkname": "John Doe", "month_frequency": 2, "day_of_month": 4, "checkaccount": "123123123", "checkaba": "123123123", "payment": "check", "first_name": "John", "last_name": "Doe", "address1": "123 Main St", "city": "New York", "state": "NY", "zip": "10001", "country": "US", "phone": "5555555555", "email": "johndoe@example.com", "security_key": "6457Thfj624V5r7WUwc5v6a68Zsd6YEm" } }, "AddCustomSubscriptionMonthlyCC": { "summary": "Adding a Custom Monthly Subscription Using Credit Card", "description": "Adding a Custom (NOT associated with an existing plan) Monthly Charge Subscription Using Credit Card", "value": { "recurring": "add_subscription", "plan_payments": 0, "plan_amount": 11.12, "start_date": "20230901", "month_frequency": 2, "day_of_month": 4, "ccnumber": "4111111111111111", "ccexp": "1225", "first_name": "John", "last_name": "Doe", "address1": "123 Main St", "city": "New York", "state": "NY", "zip": "10001", "country": "US", "phone": "5555555555", "email": "johndoe@example.com", "security_key": "6457Thfj624V5r7WUwc5v6a68Zsd6YEm" } }, "AddCustomSubscriptionDigitalWallet": { "summary": "Adding a Custom Monthly Subscription Using Digital Wallet", "description": "Adding a Custom (NOT associated with an existing plan) Monthly Charge Subscription Using Digital Wallet", "value": { "recurring": "add_subscription", "plan_payments": 0, "plan_amount": 11.12, "start_date": "20230901", "month_frequency": 2, "day_of_month": 4, "applepay_payment_data": "7b2264617461223a2239434c57325...a6a6b7", "first_name": "John", "last_name": "Doe", "address1": "123 Main St", "city": "New York", "state": "NY", "zip": "10001", "country": "US", "phone": "5555555555", "email": "johndoe@example.com", "security_key": "6457Thfj624V5r7WUwc5v6a68Zsd6YEm" } }, "UpdateSubscription": { "summary": "Update Subscription", "description": "Update Subscription", "value": { "recurring": "update_subscription", "subscription_id": "8549996066", "plan_amount": 33.33, "email": "johndoe2@example.com", "security_key": "6457Thfj624V5r7WUwc5v6a68Zsd6YEm" } }, "UpdateSubscriptionPlanDetails": { "summary": "Update Subscription Plan Details", "description": "Update a Custom Subscription's Plan Details", "value": { "recurring": "update_subscription", "subscription_id": "8549996066", "plan_amount": 44.33, "day_frequency": 22, "security_key": "6457Thfj624V5r7WUwc5v6a68Zsd6YEm" } }, "DeleteSubscription": { "summary": "Delete a Subscription", "description": "Delete a Subscription", "value": { "recurring": "delete_subscription", "subscription_id": "8301923480", "security_key": "6457Thfj624V5r7WUwc5v6a68Zsd6YEm" } }, "SubscriptionAdded": { "summary": "Subscription Added", "description": "Subscription Added", "value": { "response": "1", "responsetext": "Subscription added", "authcode": "", "transactionid": "8548988955", "avsresponse": "", "cvvresponse": "", "orderid": "", "type": "", "response_code": "100", "subscription_id": "8548988955" } }, "SubscriptionUpdated": { "summary": "Subscription Updated", "description": "Subscription Added", "value": { "response": "1", "responsetext": "Subscription Updated", "authcode": "", "transactionid": "8548988955", "avsresponse": "", "cvvresponse": "", "orderid": "", "type": "", "response_code": "100", "subscription_id": "8548988955" } }, "SubscriptionDeleted": { "summary": "Subscription Deleted", "description": "The Given Subscription Deleted", "value": { "response": "1", "responsetext": "Recurring Transaction Deleted", "authcode": "", "transactionid": "8550030567", "avsresponse": "", "cvvresponse": "", "orderid": "", "type": "", "response_code": "100", "subscription_id": "8550030567" } }, "DeclinedResponse": { "summary": "Failed to Create Plan", "description": "Failed to create a new plan", "value": { "response": "3", "responsetext": "There is already a plan using the SKU you have specified. REFID:1203610329", "authcode": "", "transactionid": "", "avsresponse": "", "cvvresponse": "", "orderid": "", "type": "", "response_code": "100" } } } } true
Published operation notes
Additional operation-specific source notes, including legacy outcome tables where published. Read alongside the family guidance above; source marketing claims are not compliance guarantees. <details> <summary>Methodology</summary> **Steps:** 1. The customer sends their payment information to the merchant's web site. 2. The merchant web site posts the payment data to the Payment Gateway. 3. The Payment Gateway responds immediately with the results of the transactions. 4. The merchant web site displays the appropriate message to the customer. The communication method used to send messages to the Payment Gateway's server is the standard HTTP protocol over an SSL connection. In the Payment API method, the communications with the cardholder (Steps 1 and 4) are developed completely by the merchant and therefore are not defined by the Payment Gateway. Step 1 should simply collect the payment data from the cardholder and Step 4 should display the appropriate transaction receipt or declined message. In Step 2, transaction details should be delivered to the Payment Gateway using the POST method with the appropriate variables defined below posted along with the request. In Step 3, the transaction responses are returned in the body of the HTTP response in a query string name/value format delimited by ampersands. For example: `variable1=value1&variable2=value2&variable3=value3` ### Customer Vault The Customer Vault was designed specifically for businesses of any size to address concerns about handling customer payment information. Visa and MasterCard have instituted the Payment Card Industry (PCI) Data Security to protect cardholder data, wherever it resides, ensuring that members, merchants, and service providers maintain the highest information security standards. These associations have also deemed that merchants will be held liable for any breach of cardholder data. This has become a major concern for merchants who handle credit card or electronic check payments. The Customer Vault is designed for these merchants who desire to avoid the tremendous costs and resources involved in becoming PCI compliant under these circumstances. The Customer Vault does this by allowing merchants to transmit their payment information through a Secure Sockets Layer (SSL) connection for storage in our Level 1 PCI certified data facility. Once the customer record has been securely transmitted to the Customer Vault, the merchant can then initiate transactions remotely without having to access cardholder information directly. This process is accomplished without the merchant storing the customer's payment information in their local database or payment application. </details> <details> <summary>Response Code Table</summary> | Code | Description | |:------|:-------------------------------------------------------------------| | 100 | Transaction was approved. | | 200 | Transaction was declined by processor. | | 201 | Do not honor. | | 202 | Insufficient funds. | | 203 | Over limit. | | 204 | Transaction not allowed. | | 220 | Incorrect payment information. | | 221 | No such card issuer. | | 222 | No card number on file with issuer. | | 223 | Expired card. | | 224 | Invalid expiration date. | | 225 | Invalid card security code. | | 226 | Invalid PIN. | | 240 | Call issuer for further information. | | 250 | Pick up card. | | 251 | Lost card. | | 252 | Stolen card. | | 253 | Fraudulent card. | | 260 | Declined with further instructions available. (See response text) | | 261 | Declined-Stop all recurring payments. | | 262 | Declined-Stop this recurring program. | | 263 | Declined-Update cardholder data available. | | 264 | Declined-Retry in a few days. | | 300 | Transaction was rejected by gateway. | | 400 | Transaction error returned by processor. | | 410 | Invalid merchant configuration. | | 411 | Merchant account is inactive. | | 420 | Communication error. | | 421 | Communication error with issuer. | | 430 | Duplicate transaction at processor. | | 440 | Processor format error. | | 441 | Invalid transaction information. | | 460 | Processor feature not available. | | 461 | Unsupported card type. | </details> true
Reconcile outcomes
Persist the returned transaction or object identifier and inspect the operation result before changing application state. Investigate interrupted financial responses before retrying. Saved methods, invoice delivery, schedules and refunds have different side effects; select the corresponding variant explicitly. Account and processor behavior have not been executed in this audit.