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:

FormatDescription
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 DataThe 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)

Transaction sales are submitted and immediately flagged for settlement.

Authorization (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)

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)

This action is used for doing an "Account Verification" on the cardholder's credit card without actually doing an authorization.


Request Variables

Variable NameDescription
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
cvvThe 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_typeThe type of ACH account. Values: business, personal
account_typeACH account type. Values: checking, savings
sec_codeStandard Entry Class code. Values: PPD, WEB, TEL, CCD
amountTotal amount to be charged. Omit or set to 0.00 for validate. Format: x.xx
surchargeSurcharge amount. Format: x.xx
cash_discountDiscount for using cash/check. Format: x.xx
tipTip amount included. Format: x.xx
currencyCurrency format. ISO 4217
payment***Type of payment. Default: creditcard. Values: creditcard, check, cash
processor_idIf using Multiple MIDs, route to this processor.
authorization_codeUsed for "offline" action.
dup_secondsTime in seconds for duplicate transaction checking. 0 to disable. Max: 7862400
descriptor through descriptor_urlPayment descriptor fields for supported processors.
billing_methodBilling method. Values: recurring, installment
billing_number, billing_totalFor installment payments.
order_descriptionOrder description.
orderidOrder ID.
ipaddressCardholder 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_nameCardholder name.
companyCardholder company.
address1, address2Billing address.
city, state, zip, countryBilling address details. Country: ISO 3166 CC
phone, fax, emailBilling contact info.
social_security_numberCustomer SSN for check verification.
drivers_license_number, drivers_license_dob, drivers_license_stateDriver’s license info.
shipping_firstname to shipping_emailShipping details.
merchant_defined_field_#Up to 20 custom fields.
customer_receiptSend transaction receipt to customer. Values: true, false
signature_imageBase64 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_id3D Secure values. Base64 encoded where applicable.
source_transaction_idUsed to link to Subscription or Customer Vault record. Requires recurring or customer_vault.
pinless_debit_overrideSet to Y to opt out of Pinless Debit Conversion.

Recurring Specific Fields

VariableDescription
recurringRecurring action. Values: add_subscription
plan_idSubscription Plan ID.
plan_paymentsTotal payments (use 0 for "until canceled").
plan_amountAmount per billing cycle. Format: x.xx
day_frequencyCharge frequency in days. Cannot be used with month_frequency.
month_frequency, day_of_monthMonthly billing details. Values: 1–24 (month), 1–31 (day)
start_dateFirst charge date. Format: YYYYMMDD

Customer Vault Fields

VariableDescription
customer_vaultAction: add_customer, update_customer
customer_vault_idOptional. If not set, ID is auto-generated.

Stored Credentials (CIT/MIT)

VariableDescription
initiated_byWho initiated: customer, merchant
initial_transaction_idOriginal transaction ID.
stored_credential_indicatorValues: stored, used

Level III Order Fields

Level III includes detailed breakdowns for tax, shipping, and line items.

VariableDescription
shipping†, taxAmounts included in the transaction. Format: x.xx
ponumberPurchase order number.
orderidMerchant-assigned ID.
shipping_country, shipping_postal, ship_from_postalAddress codes. Format: CC or ZIP
summary_commodity_code4-char description code from acquirer.
duty_amount, discount_amount, national_tax_amount, alternate_tax_amountAdditional 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_dateVAT/tax identifiers and dates.

Level III Line Item Fields

Use # to denote item index (e.g., item_description_1).

VariableDescription
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.