Sale, Auth, Credit, Validate
This guide details payment gateway transaction types, required variables, billing and shipping fields, recurring settings, customer vault use, stored credentials, and Level 2/3 data for API integration.
POST
POST URL:
[https://api.openpath.io/v1/nmi](https://api.openpath.io/api/transact.php)
The OpenPath NMI Emulation API can receive transactions posted in the following formats:
Format | Description |
---|---|
Query String (Not Recommended) | A query string is part of a URL that assigns values to specified parameters. It is commonly used for HTML or multimedia content navigation. |
Form Data | The FormData interface allows constructing key/value pairs representing form fields and values, sent using the XMLHttpRequest.send() method, in the multipart/form-data encoding. |
X-WWW Form URL Encoded (Recommended) | application/x-www-form-urlencoded is the default encoding used by web forms. It must be specified explicitly for multipart/form-data submissions. |
Transaction Types
Sale (sale
)
sale
)Transaction sales are submitted and immediately flagged for settlement.
Authorization (auth
)
auth
)Transaction authorizations are authorized immediately but are not flagged for settlement. These transactions must be flagged for settlement using the capture transaction type.
Credit (credit
)
credit
)Transaction credits apply an amount to the cardholder's card that was not originally processed through the Gateway. In most situations, credits are disabled as transaction refunds should be used instead.
Validate (validate
)
validate
)This action is used for doing an "Account Verification" on the cardholder's credit card without actually doing an authorization.
Request Variables
Variable Name | Description |
---|---|
type * | The type of transaction to be processed. Values: sale , auth , credit , validate |
username * | Site Username assigned to a merchant Site account as API Login ID. |
password * | Site Password assigned to a merchant Site account as Transaction Key. |
ccnumber ** | Credit card number. |
ccexp ** | Credit card expiration date. Format: MMYY |
cvv | The card security code. Strongly recommended. |
checkname *** | The name on the customer's ACH account. |
checkaba *** | The customer's bank routing number. |
checkaccount *** | The customer's bank account number. |
account_holder_type | The type of ACH account. Values: business , personal |
account_type | ACH account type. Values: checking , savings |
sec_code | Standard Entry Class code. Values: PPD , WEB , TEL , CCD |
amount | Total amount to be charged. Omit or set to 0.00 for validate. Format: x.xx |
surcharge | Surcharge amount. Format: x.xx |
cash_discount | Discount for using cash/check. Format: x.xx |
tip | Tip amount included. Format: x.xx |
currency | Currency format. ISO 4217 |
payment *** | Type of payment. Default: creditcard . Values: creditcard , check , cash |
processor_id | If using Multiple MIDs, route to this processor. |
authorization_code ‡ | Used for "offline" action. |
dup_seconds | Time in seconds for duplicate transaction checking. 0 to disable. Max: 7862400 |
descriptor through descriptor_url | Payment descriptor fields for supported processors. |
billing_method | Billing method. Values: recurring , installment |
billing_number , billing_total | For installment payments. |
order_description | Order description. |
orderid | Order ID. |
ipaddress | Cardholder IP address. Format: xxx.xxx.xxx.xxx |
tax **** | Sales tax. Use -1 for tax-exempt. Default: 0.00 . Format: x.xx |
shipping **** | Shipping amount. |
ponumber **** | Original purchase order number. |
first_name , last_name | Cardholder name. |
company | Cardholder company. |
address1 , address2 | Billing address. |
city , state , zip , country | Billing address details. Country: ISO 3166 CC |
phone , fax , email | Billing contact info. |
social_security_number | Customer SSN for check verification. |
drivers_license_number , drivers_license_dob , drivers_license_state | Driver’s license info. |
shipping_firstname to shipping_email | Shipping details. |
merchant_defined_field_# | Up to 20 custom fields. |
customer_receipt | Send transaction receipt to customer. Values: true , false |
signature_image | Base64 encoded PNG signature (max 16 KiB). For sale and auth . |
cardholder_auth ‡‡ | 3D Secure status. Values: verified , attempted |
cavv , xid , three_ds_version , directory_server_id | 3D Secure values. Base64 encoded where applicable. |
source_transaction_id | Used to link to Subscription or Customer Vault record. Requires recurring or customer_vault . |
pinless_debit_override | Set to Y to opt out of Pinless Debit Conversion. |
Recurring Specific Fields
Variable | Description |
---|---|
recurring | Recurring action. Values: add_subscription |
plan_id | Subscription Plan ID. |
plan_payments | Total payments (use 0 for "until canceled"). |
plan_amount | Amount per billing cycle. Format: x.xx |
day_frequency | Charge frequency in days. Cannot be used with month_frequency . |
month_frequency , day_of_month | Monthly billing details. Values: 1–24 (month), 1–31 (day) |
start_date | First charge date. Format: YYYYMMDD |
Customer Vault Fields
Variable | Description |
---|---|
customer_vault | Action: add_customer , update_customer |
customer_vault_id | Optional. If not set, ID is auto-generated. |
Stored Credentials (CIT/MIT)
Variable | Description |
---|---|
initiated_by | Who initiated: customer , merchant |
initial_transaction_id | Original transaction ID. |
stored_credential_indicator | Values: stored , used |
Level III Order Fields
Level III includes detailed breakdowns for tax, shipping, and line items.
Variable | Description |
---|---|
shipping †, tax † | Amounts included in the transaction. Format: x.xx |
ponumber † | Purchase order number. |
orderid † | Merchant-assigned ID. |
shipping_country , shipping_postal , ship_from_postal † | Address codes. Format: CC or ZIP |
summary_commodity_code † | 4-char description code from acquirer. |
duty_amount , discount_amount , national_tax_amount , alternate_tax_amount | Additional monetary fields. Format: x.xx |
alternate_tax_id , vat_tax_amount , vat_tax_rate , vat_invoice_reference_number , customer_vat_registration , merchant_vat_registration , order_date | VAT/tax identifiers and dates. |
Level III Line Item Fields
Use #
to denote item index (e.g., item_description_1
).
Variable | Description |
---|---|
item_product_code_# , item_description_# , item_commodity_code_# † | Item identifiers. |
item_unit_of_measure_# † | Default: EACH |
item_unit_cost_# † | Unit price. Up to 4 decimals. |
item_quantity_# † | Default: 1 |
item_total_amount_# † | Defaults to unit cost × quantity. |
item_tax_amount_# , item_tax_rate_# , item_tax_type_# † | Item-specific tax info. |
item_discount_amount_# , item_discount_rate_# | Discount info. |
item_alternate_tax_id_# | Alternate tax ID. |
Field Requirements
*
Always required**
Required for credit card***
Required for ACH****
Required for Level II†
Required for Level III‡
Required for offline transactions‡‡
Required for 3D Secure transactions
Note:
- You may only pass credit card or e-check variables in a request, not both.
- Some banks may require optional fields.
- Ensure base64-encoded values are properly URL encoded.
Updated 10 days ago