NMI · Schema

ACH - Credit

PaymentsPayment GatewayPayment ProcessingTokenizationRecurring BillingCustomer VaultFintechEmbedded PaymentsPayment Facilitation

Properties

Name Type Description
security_key object
type string The type of transaction to be processed. Note that credits need to be enabled.
payment string The type of payment.
checkname string The name on the customer's ACH account.
checkaba string The customer's bank routing number.
checkaccount string The customer's bank account number.
account_holder_type string The type of ACH account the customer has.
account_type string The type of ACH account the customer has.
sec_code string The Standard Entry Class code of the ACH transaction.
amount string Total amount to be charged. Format: `x.xx`
payment_token string 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/merc
transaction_session_id string A single use session ID used by Kount to link the transaction and Data Collector information together. * Should be generated every time a payment form is loaded by the cardholder. * Should be random/u
applepay_payment_data string The encrypted token created when integration directly to the Apple Pay SDK.
googlepay_payment_data string The encrypted token created when [integration directly to the Google Pay SDK](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#googlepay_variables).
surcharge string Surcharge amount. Format: `x.xx`
convenience_fee string Convenience fee amount. Format: `x.xx`
misc_fee string Miscellaneous fee amount. Format: `x.xx`
misc_fee_name string Custom miscellaneous fee name. Default: `Miscellaneous Fee`
tip number The final tip amount, included in the transaction, associated with the purchase. Format: `x.xx`
currency string The transaction currency. Format: `ISO 4217`
processor_id string If using Multiple MIDs, route to this processor (*processor_id* is obtained under Settings → Transaction Routing in the Control Panel).
dup_seconds integer Sets the time in seconds for duplicate transaction checking on supported processors. Set to *0* to disable duplicate checking.
descriptor string Set payment descriptor on supported processors.
descriptor_phone string Set payment descriptor phone on supported processors.
descriptor_address string Set payment descriptor address on supported processors.
descriptor_city string Set payment descriptor city on supported processors.
descriptor_state string Set payment descriptor state on supported processors.
descriptor_postal string Set payment descriptor postal code on supported processors.
descriptor_country string Set payment descriptor country on supported processors.
descriptor_mcc string Set payment descriptor mcc on supported processors.
descriptor_merchant_id string Set payment descriptor merchant id on supported processors.
descriptor_url string Set payment descriptor url on supported processors.
billing_method string Recurring or installment classification for the processor. - `initial_recurring`: First transaction in a recurring sequence only. - `recurring`: Later charges in that sequence. - `installment`: Instal
billing_number integer Specify installment billing number, on supported processors. For use when `billing_method` is set to "installment".
billing_total string Specify installment billing total on supported processors. For use when `billing_method` is set to "installment".
order_template string Order template ID.
order_description string Order description.
orderid string **Level III - Order Field:** Identifier assigned by the merchant. This defaults to gateway transaction id.
ipaddress string IP address of cardholder, this field is recommended. Format: `xxx.xxx.xxx.xxx`
first_name string Cardholder's first name.
last_name string Cardholder's last name
company string Cardholder's company
address1 string Card billing address
address2 string Card billing address, line 2
city string Card billing city
state string Card billing state. Format: `CC`
zip string Card billing zip code
country string Card billing country. *Country codes are as shown in ISO 3166-1 alpha-2*. Format: `CC`
phone string Billing phone number
fax string Billing fax number
email string Billing email address
drivers_license_number string Driver's license number.
drivers_license_dob string Driver's license date of birth.
drivers_license_state string The state that issued the customer's driver's license.
shipping_firstname string Shipping first name
shipping_lastname string Shipping last name
shipping_company string Shipping company
shipping_address1 string Shipping address
shipping_address2 string Shipping address, line 2
shipping_city string Shipping city
shipping_state string Shipping state. Format: `CC`
shipping_zip string Shipping zip code
shipping_country string **Level III - Order Field:** Shipping country (e.g. US). Format: `CC` - ISO 3166-1 alpha-2
shipping_email string Shipping email address
merchant_defined_field_1 string Merchant defined field. You can pass custom information in up to 20 fields. Format: `merchant_defined_field_1=Value1`, `merchant_defined_field_2=Value2`, etc...
customer_receipt string If set to true, when the customer is charged, they will be sent a transaction receipt.
cardholder_auth string Set 3D Secure condition. Value used to determine E-commerce indicator (ECI). **Required for 3D Secure transactions**
cavv string Cardholder authentication verification value. Format: `base64 encoded` **Required for 3D Secure transactions**
xid string Cardholder authentication transaction id. Format: `base64 encoded` **Required for 3D Secure transactions**
three_ds_version string 3DSecure version. **Required for 3D Secure transactions**
directory_server_id string Directory Server Transaction ID. May be provided as part of 3DSecure 2.0 authentication. Format: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`
source_transaction_id string Specifies a payment gateway transaction id in order to associate payment information with a Subscription or Customer Vault record. Must be set with a 'recurring' or 'customer_vault' action.
pinless_debit_override string Set to 'Y' if you have Pinless Debit Conversion enabled but want to opt out for this transaction. Feature applies to selected processors only.
recurring string **Recurring Field:** Recurring action to be processed.
plan_id string **Recurring Field:** Create a subscription tied to a Plan ID if the sale/auth transaction is successful. Required when **recurring** variable is set to `add_subscription`
plan_payments integer **Recurring Field:** The number of payments before the recurring plan is complete. Note: Use '0' for until canceled Required when **recurring** variable is set to `add_subscription`
plan_amount number **Recurring Field:** The plan amount to be charged each billing cycle. Format: `x.xx` Required when **recurring** variable is set to `add_subscription`
month_frequency integer **Recurring Field:** How often, in months, to charge the customer. Cannot be set with 'day_frequency'. Must be set with 'day_of_month'. Required when **recurring** variable is set to `add_subscription
day_of_month integer **Recurring Field:** 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
day_frequency integer **Recurring Field:** How often, in days, to charge the customer. Cannot be set with 'month_frequency' or 'day_of_month'. Required when **recurring** variable is set to `add_subscription`
start_date string **Recurring Field:** The first day that the customer will be charged. Format: `YYYYMMDD` Required when **recurring** variable is set to `add_subscription`
customer_vault string Associate payment information with a Customer Vault record if the transaction is successful.
customer_vault_id string Specifies a Customer Vault id. If not set, the payment gateway will randomly generate a Customer Vault id.
initiated_by string **Stored Credentials (CIT/MIT):** Who initiated the transaction.
initial_transaction_id string **Stored Credentials (CIT/MIT):** Original payment gateway transaction id.
stored_credential_indicator string **Stored Credentials (CIT/MIT):** The indicator of the stored credential. Use **'stored'** when processing the initial transaction in which you are storing a customer's payment details (customer crede
shipping number **Level II/III - Order Field:** Freight or shipping amount included in the transaction amount. Default - `0.00`. Format: `x.xx`
tax number **Level II/III - Order Field:** The sales tax, included in the transaction amount, associated with the purchase. Setting tax equal to '-1' indicates an order that is exempt from sales tax. Default - `
ponumber string **Level II/III - Order Field:** Purchase order number
shipping_postal string **Level III - Order Field:** Postal/ZIP code of the address where purchased goods will be delivered. This field can be identical to the 'ship_from_postal' if the customer is present and takes immediat
ship_from_postal string **Level III - Order Field:** Postal/ZIP code of the address from where purchased goods are being shipped, defaults to merchant profile postal code.
summary_commodity_code string **Level III - Order Field:** 4 character international description code of the overall goods or services being supplied. The acquirer or processor will provide a list of current codes.
duty_amount number **Level III - Order Field:** Amount included in the transaction amount associated with the import of purchased goods. Default - `0.00`. Format: `x.xx`
discount_amount number **Level III - Order Field:** Amount included in the transaction amount of any discount applied to complete order by the merchant. Default - `0.00`. Format: `x.xx`
national_tax_amount number **Level III - Order Field:** The national tax amount included in the transaction amount. Default - `0.00`. Format: `x.xx`
alternate_tax_amount number **Level III - Order Field:** Second tax amount included in the transaction amount in countries where more than one type of tax can be applied to the purchases. Default - `0.00`. Format: `x.xx`
alternate_tax_id string **Level III - Order Field:** Tax identification number of the merchant that reported the alternate tax amount.
vat_tax_amount number **Level III - Order Field:** Contains the amount of any value added taxes which can be associated with the purchased item. Default - `0.00`. Format: `x.xx`
vat_tax_rate number **Level III - Order Field:** Contains the tax rate used to calculate the sales tax amount appearing. Can contain up to 2 decimal places, e.g. 1% = 1.00. Default - `0.00`. Format: `x.xx`
vat_invoice_reference_number string **Level III - Order Field:** Invoice number that is associated with the VAT invoice.
customer_vat_registration string **Level III - Order Field:** Value added tax registration number supplied by the cardholder.
merchant_vat_registration string **Level III - Order Field:** Government assigned tax identification number of the merchant for whom the goods or services were purchased from.
order_date string **Level III - Order Field:** Purchase order date, defaults to the date of the transaction. Format: `YYMMDD`
item_product_code_1 string **Level III - Line Item:** Merchant defined description code of the item being purchased. *Up to 99 sets of item_* fields are allowed.*
item_description_1 string **Level III - Line Item:** Description of the item(s) being supplied.
item_commodity_code_1 string **Level III - Line Item:** International description code of the individual good or service being supplied. The acquirer or processor will provide a list of current codes.
item_unit_of_measure_1 string **Level III - Line Item:** Code for units of measurement as used in international trade. Default - `EACH`.
item_unit_cost_1 number **Level III - Line Item:** Unit cost of item purchased, may contain up to 4 decimal places.
item_quantity_1 integer **Level III - Line Item:** Quantity of the item(s) being purchased. Default - `1`.
item_total_amount_1 number **Level III - Line Item:** Purchase amount associated with the item. Defaults to: 'item_unit_cost_#' x 'item_quantity_#' rounded to the nearest penny.
item_tax_amount_1 number **Level III - Line Item:** Amount of sales tax on specific item. Amount should not be included in 'total_amount_#'. Default - `0.00`. Format: `x.xx`
item_tax_rate_1 number **Level III - Line Item:** Percentage representing the value-added tax applied. Default - `0.00`. Format: `x.xx`
item_discount_amount_1 number **Level III - Line Item:** Discount amount which can have been applied by the merchant on the sale of the specific item. Amount should not be included in 'total_amount_#'.
item_discount_rate_1 number **Level III - Line Item:** Discount rate for the line item. Default - `0.00`. Format: `x.xx`
item_tax_type_1 string **Level III - Line Item:** Type of value-added taxes that are being used.
item_alternate_tax_id_1 string **Level III - Line Item:** Tax identification number of the merchant that reported the alternate tax amount.
payment_facilitator_id string **Payment Facilitator:** Payment Facilitator/Aggregator/ISO's ID Number
submerchant_id string **Payment Facilitator:** Sub-merchant Account ID
submerchant_name string **Payment Facilitator:** Sub-merchant's Name
submerchant_address string **Payment Facilitator:** Sub-merchant's Address
submerchant_city string **Payment Facilitator:** Sub-merchant's City
submerchant_state string **Payment Facilitator:** Sub-merchant's State
submerchant_postal string **Payment Facilitator:** Sub-merchant's Zip/Postal Code
submerchant_country string **Payment Facilitator:** Sub-merchant's Country
submerchant_phone string **Payment Facilitator:** Sub-merchant's Phone Number
submerchant_email string **Payment Facilitator:** Sub-merchant's Email Address
social_security_number string Customer's social security number, checked against bad check writers database if check verification is enabled.
signature_image string Cardholder signature image. Format: `base64 encoded raw PNG image. (16kiB maximum)`
View JSON Schema on GitHub

JSON Schema

nmi-achcredit-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/nmi/main/json-schema/nmi-achcredit-request-schema.json",
  "title": "ACH - Credit",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/nmi-payments-openapi.yml#/components/schemas/ACHCreditRequest",
  "allOf": [
    {
      "type": "object",
      "required": [
        "type",
        "checkname",
        "checkaba",
        "checkaccount",
        "payment",
        "security_key"
      ],
      "properties": {
        "security_key": {
          "$ref": "#/$defs/SecurityKey"
        },
        "type": {
          "type": "string",
          "enum": [
            "credit"
          ],
          "description": "The type of transaction to be processed. Note that credits need to be enabled."
        },
        "payment": {
          "type": "string",
          "description": "The type of payment.",
          "enum": [
            "check",
            "cash"
          ]
        }
      }
    },
    {
      "additionalProperties": {
        "type": "string",
        "description": "Up to 20 `merchant_defined_field_#` are allowed."
      }
    },
    {
      "$ref": "#/$defs/ACH"
    },
    {
      "$ref": "#/$defs/Amount"
    },
    {
      "$ref": "#/$defs/BaseTransaction"
    },
    {
      "type": "object",
      "properties": {
        "social_security_number": {
          "type": "string",
          "description": "Customer's social security number, checked against bad check writers database if check verification is enabled."
        }
      }
    },
    {
      "$ref": "#/$defs/SignatureImage"
    }
  ],
  "$defs": {
    "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."
        }
      }
    },
    "Amount": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "string",
          "description": "Total amount to be charged.\n  \nFormat: `x.xx`"
        }
      }
    },
    "BaseTransaction": {
      "allOf": [
        {
          "type": "object",
          "properties": {
            "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)."
            },
            "transaction_session_id": {
              "type": "string",
              "minLength": 32,
              "maxLength": 32,
              "description": "A single use session ID used by Kount to link the transaction and Data Collector information together.\n\n* Should be generated every time a payment form is loaded by the cardholder.\n* Should be random/unpredictable (do not use sequential IDs).\n* Should not be reused within a 30 day period.\n\nThis can be used with [Collect.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#cjs_methodology) or the Payment API when using the [Kount DDC with Gateway.js](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#gjs_methodology).\n\nFormat: `alphanumeric`"
            },
            "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](https://secure.networkmerchants.com/merchants/resources/integration/integration_portal.php#googlepay_variables)."
            },
            "surcharge": {
              "type": "string",
              "description": "Surcharge amount.\n  \nFormat: `x.xx`"
            },
            "convenience_fee": {
              "type": "string",
              "description": "Convenience fee amount.\n  \nFormat: `x.xx`"
            },
            "misc_fee": {
              "type": "string",
              "description": "Miscellaneous fee amount.\n  \nFormat: `x.xx`"
            },
            "misc_fee_name": {
              "type": "string",
              "description": "Custom miscellaneous fee name.\n  \nDefault: `Miscellaneous Fee`"
            },
            "tip": {
              "type": "number",
              "description": "The final tip amount, included in the transaction, associated with the purchase.\n  \nFormat: `x.xx`"
            },
            "currency": {
              "type": "string",
              "description": "The transaction currency.\n  \nFormat: `ISO 4217`"
            },
            "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)."
            },
            "dup_seconds": {
              "type": "integer",
              "maximum": 7862400,
              "description": "Sets the time in seconds for duplicate transaction checking on supported processors. Set to *0* to disable duplicate checking."
            }
          }
        },
        {
          "$ref": "#/$defs/Descriptor"
        },
        {
          "type": "object",
          "properties": {
            "billing_method": {
              "type": "string",
              "enum": [
                "initial_recurring",
                "recurring",
                "installment"
              ],
              "description": "Recurring or installment classification for the processor.\n\n- `initial_recurring`: First transaction in a recurring sequence only.\n- `recurring`: Later charges in that sequence.\n- `installment`: Installment transactions; use `billing_number` and `billing_total` on supported processors.\n\nWhich values apply depends on the processor."
            },
            "billing_number": {
              "type": "integer",
              "minimum": 0,
              "maximum": 99,
              "description": "Specify installment billing number, on supported processors. For use when `billing_method` is set to \"installment\"."
            },
            "billing_total": {
              "type": "string",
              "description": "Specify installment billing total on supported processors. For use when `billing_method` is set to \"installment\"."
            },
            "order_template": {
              "type": "string",
              "description": "Order template ID."
            },
            "order_description": {
              "type": "string",
              "description": "Order description."
            },
            "orderid": {
              "type": "string",
              "description": "Order Id."
            },
            "ipaddress": {
              "type": "string",
              "description": "IP address of cardholder, this field is recommended.\n  \nFormat: `xxx.xxx.xxx.xxx`"
            }
          }
        },
        {
          "type": "object",
          "properties": {
            "first_name": {
              "type": "string",
              "description": "Cardholder's first name."
            },
            "last_name": {
              "type": "string",
              "description": "Cardholder's last name"
            },
            "company": {
              "type": "string",
              "description": "Cardholder's company"
            },
            "address1": {
              "type": "string",
              "description": "Card billing address"
            },
            "address2": {
              "type": "string",
              "description": "Card billing address, line 2"
            },
            "city": {
              "type": "string",
              "description": "Card billing city"
            },
            "state": {
              "type": "string",
              "description": "Card billing state.\n  \nFormat: `CC`"
            },
            "zip": {
              "type": "string",
              "description": "Card billing zip code"
            },
            "country": {
              "type": "string",
              "description": "Card billing country. *Country codes are as shown in ISO 3166-1 alpha-2*.\n  \nFormat: `CC`"
            },
            "phone": {
              "type": "string",
              "description": "Billing phone number"
            },
            "fax": {
              "type": "string",
              "description": "Billing fax number"
            },
            "email": {
              "type": "string",
              "format": "email",
              "description": "Billing email address"
            }
          }
        },
        {
          "$ref": "#/$defs/DriversLicense"
        },
        {
          "$ref": "#/$defs/Shipping"
        },
        {
          "$ref": "#/$defs/MerchantDefinedField"
        },
        {
          "type": "object",
          "properties": {
            "customer_receipt": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ],
              "description": "If set to true, when the customer is charged, they will be sent a transaction receipt."
            },
            "cardholder_auth": {
              "type": "string",
              "enum": [
                "verified",
                "attempted"
              ],
              "description": "Set 3D Secure condition. Value used to determine E-commerce indicator (ECI).\n  \n**Required for 3D Secure transactions**"
            },
            "cavv": {
              "type": "string",
              "description": "Cardholder authentication verification value.\n  \nFormat: `base64 encoded` **Required for 3D Secure transactions**"
            },
            "xid": {
              "type": "string",
              "description": "Cardholder authentication transaction id.\n  \nFormat: `base64 encoded` **Required for 3D Secure transactions**"
            },
            "three_ds_version": {
              "type": "string",
              "enum": [
                "2.0.0",
                "2.2.0"
              ],
              "description": "3DSecure version. **Required for 3D Secure transactions**"
            },
            "directory_server_id": {
              "type": "string",
              "description": "Directory Server Transaction ID. May be provided as part of 3DSecure 2.0 authentication.\n  \nFormat: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`"
            },
            "source_transaction_id": {
              "type": "string",
              "description": "Specifies a payment gateway transaction id in order to associate payment information with a Subscription or Customer Vault record. Must be set with a 'recurring' or 'customer_vault' action."
            },
            "pinless_debit_override": {
              "type": "string",
              "description": "Set to 'Y' if you have Pinless Debit Conversion enabled but want to opt out for this transaction. Feature applies to selected processors only."
            }
          }
        },
        {
          "type": "object",
          "properties": {
            "recurring": {
              "type": "string",
              "enum": [
                "add_subscription"
              ],
              "description": "**Recurring Field:** Recurring action to be processed.",
              "x-group-key": "Recurring"
            },
            "plan_id": {
              "type": "string",
              "description": "**Recurring Field:** Create a subscription tied to a Plan ID if the sale/auth transaction is successful.\n\nRequired when **recurring** variable is set to `add_subscription`",
              "x-group-key": "Recurring"
            },
            "plan_payments": {
              "type": "integer",
              "description": "**Recurring Field:** The number of payments before the recurring plan is complete.\n\nNote: Use '0' for until canceled\n\nRequired when **recurring** variable is set to `add_subscription`",
              "x-group-key": "Recurring"
            },
            "plan_amount": {
              "type": "number",
              "description": "**Recurring Field:** The plan amount to be charged each billing cycle.\n\nFormat: `x.xx`\n\nRequired when **recurring** variable is set to `add_subscription`",
              "x-group-key": "Recurring"
            },
            "month_frequency": {
              "type": "integer",
              "minimum": 1,
              "maximum": 24,
              "description": "**Recurring Field:** How often, in months, to charge the customer. Cannot be set with 'day_frequency'. Must be set with 'day_of_month'. \n\nRequired when **recurring** variable is set to `add_subscription`",
              "x-group-key": "Recurring"
            },
            "day_of_month": {
              "type": "integer",
              "minimum": 1,
              "maximum": 31,
              "description": "**Recurring Field:** 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\n\nRequired when **recurring** variable is set to `add_subscription`",
              "x-group-key": "Recurring"
            },
            "day_frequency": {
              "type": "integer",
              "description": "**Recurring Field:** How often, in days, to charge the customer. Cannot be set with 'month_frequency' or 'day_of_month'.\n\nRequired when **recurring** variable is set to `add_subscription`",
              "x-group-key": "Recurring"
            },
            "start_date": {
              "type": "string",
              "format": "date",
              "description": "**Recurring Field:** The first day that the customer will be charged.\n\nFormat: `YYYYMMDD`\n\nRequired when **recurring** variable is set to `add_subscription`",
              "x-group-key": "Recurring"
            }
          }
        },
        {
          "$ref": "#/$defs/CustomerVaultFields"
        },
        {
          "$ref": "#/$defs/StoredCredentialsFields"
        },
        {
          "$ref": "#/$defs/LevelThreeOrderFields"
        },
        {
          "$ref": "#/$defs/LevelThreeLineItemDetailFields"
        },
        {
          "$ref": "#/$defs/PaymentFacilitatorFields"
        }
      ]
    },
    "CustomerVaultFields": {
      "type": "object",
      "properties": {
        "customer_vault": {
          "type": "string",
          "enum": [
            "add_customer",
            "update_customer"
          ],
          "description": "Associate payment information with a Customer Vault record if the transaction is successful.",
          "x-group-key": "Customer Vault"
        },
        "customer_vault_id": {
          "type": "string",
          "description": "Specifies a Customer Vault id. If not set, the payment gateway will randomly generate a Customer Vault id.",
          "x-group-key": "Customer Vault"
        }
      }
    },
    "Descriptor": {
      "type": "object",
      "properties": {
        "descriptor": {
          "type": "string",
          "description": "Set payment descriptor on supported processors."
        },
        "descriptor_phone": {
          "type": "string",
          "description": "Set payment descriptor phone on supported processors."
        },
        "descriptor_address": {
          "type": "string",
          "description": "Set payment descriptor address on supported processors."
        },
        "descriptor_city": {
          "type": "string",
          "description": "Set payment descriptor city on supported processors."
        },
        "descriptor_state": {
          "type": "string",
          "description": "Set payment descriptor state on supported processors."
        },
        "descriptor_postal": {
          "type": "string",
          "description": "Set payment descriptor postal code on supported processors."
        },
        "descriptor_country": {
          "type": "string",
          "description": "Set payment descriptor country on supported processors."
        },
        "descriptor_mcc": {
          "type": "string",
          "description": "Set payment descriptor mcc on supported processors."
        },
        "descriptor_merchant_id": {
          "type": "string",
          "description": "Set payment descriptor merchant id on supported processors."
        },
        "descriptor_url": {
          "type": "string",
          "description": "Set payment descriptor url on supported processors."
        }
      }
    },
    "DriversLicense": {
      "type": "object",
      "properties": {
        "drivers_license_number": {
          "type": "string",
          "description": "Driver's license number."
        },
        "drivers_license_dob": {
          "type": "string",
          "description": "Driver's license date of birth."
        },
        "drivers_license_state": {
          "type": "string",
          "description": "The state that issued the customer's driver's license."
        }
      }
    },
    "LevelThreeLineItemDetailFields": {
      "type": "object",
      "properties": {
        "item_product_code_1": {
          "type": "string",
          "description": "**Level III - Line Item:** Merchant defined description code of the item being purchased.\n\n*Up to 99 sets of item_* fields are allowed.*",
          "x-group-key": "Level III - Line Item(s)"
        },
        "item_description_1": {
          "type": "string",
          "description": "**Level III - Line Item:** Description of the item(s) being supplied.",
          "x-group-key": "Level III - Line Item(s)"
        },
        "item_commodity_code_1": {
          "type": "string",
          "description": "**Level III - Line Item:** International description code of the individual good or service being supplied. The acquirer or processor will provide a list of current codes.",
          "x-group-key": "Level III - Line Item(s)"
        },
        "item_unit_of_measure_1": {
          "type": "string",
          "description": "**Level III - Line Item:** Code for units of measurement as used in international trade. Default - `EACH`.",
          "x-group-key": "Level III - Line Item(s)"
        },
        "item_unit_cost_1": {
          "type": "number",
          "description": "**Level III - Line Item:** Unit cost of item purchased, may contain up to 4 decimal places.",
          "x-group-key": "Level III - Line Item(s)"
        },
        "item_quantity_1": {
          "type": "integer",
          "description": "**Level III - Line Item:** Quantity of the item(s) being purchased. Default - `1`.",
          "x-group-key": "Level III - Line Item(s)"
        },
        "item_total_amount_1": {
          "type": "number",
          "description": "**Level III - Line Item:** Purchase amount associated with the item. Defaults to: 'item_unit_cost_#' x 'item_quantity_#' rounded to the nearest penny.",
          "x-group-key": "Level III - Line Item(s)"
        },
        "item_tax_amount_1": {
          "type": "number",
          "description": "**Level III - Line Item:** Amount of sales tax on specific item. Amount should not be included in 'total_amount_#'. Default - `0.00`.\n\nFormat: `x.xx`",
          "x-group-key": "Level III - Line Item(s)"
        },
        "item_tax_rate_1": {
          "type": "number",
          "description": "**Level III - Line Item:** Percentage representing the value-added tax applied. Default - `0.00`.\n\nFormat: `x.xx`",
          "x-group-key": "Level III - Line Item(s)"
        },
        "item_discount_amount_1": {
          "type": "number",
          "description": "**Level III - Line Item:** Discount amount which can have been applied by the merchant on the sale of the specific item. Amount should not be included in 'total_amount_#'.",
          "x-group-key": "Level III - Line Item(s)"
        },
        "item_discount_rate_1": {
          "type": "number",
          "description": "**Level III - Line Item:** Discount rate for the line item. Default - `0.00`.\n\nFormat: `x.xx`",
          "x-group-key": "Level III - Line Item(s)"
        },
        "item_tax_type_1": {
          "type": "string",
          "description": "**Level III - Line Item:** Type of value-added taxes that are being used.",
          "x-group-key": "Level III - Line Item(s)"
        },
        "item_alternate_tax_id_1": {
          "type": "string",
          "description": "**Level III - Line Item:** Tax identification number of the merchant that reported the alternate tax amount.",
          "x-group-key": "Level III - Line Item(s)"
        }
      }
    },
    "LevelThreeOrderFields": {
      "type": "object",
      "properties": {
        "shipping": {
          "type": "number",
          "description": "**Level II/III - Order Field:** Freight or shipping amount included in the transaction amount. Default - `0.00`.\n\nFormat: `x.xx`",
          "x-group-key": "Level III - Order"
        },
        "tax": {
          "type": "number",
          "description": "**Level II/III - Order Field:** The sales tax, included in the transaction amount, associated with the purchase. Setting tax equal to '-1' indicates an order that is exempt from sales tax. Default - `0.00`.\n\nFormat: `x.xx`",
          "x-group-key": "Level III - Order"
        },
        "ponumber": {
          "type": "string",
          "description": "**Level II/III - Order Field:** Purchase order number",
          "x-group-key": "Level III - Order"
        },
        "orderid": {
          "type": "string",
          "description": "**Level III - Order Field:** Identifier assigned by the merchant. This defaults to gateway transaction id.",
          "x-group-key": "Level III - Order"
        },
        "shipping_country": {
          "type": "string",
          "description": "**Level III - Order Field:** Shipping country (e.g. US).\n \nFormat: `CC` - ISO 3166-1 alpha-2",
          "x-group-key": "Level III - Order"
        },
        "shipping_postal": {
          "type": "string",
          "description": "**Level III - Order Field:** Postal/ZIP code of the address where purchased goods will be delivered. This field can be identical to the 'ship_from_postal' if the customer is present and takes immediate possession of the goods.",
          "x-group-key": "Level III - Order"
        },
        "ship_from_postal": {
          "type": "string",
          "description": "**Level III - Order Field:** Postal/ZIP code of the address from where purchased goods are being shipped, defaults to merchant profile postal code.",
          "x-group-key": "Level III - Order"
        },
        "summary_commodity_code": {
          "type": "string",
          "description": "**Level III - Order Field:** 4 character international description code of the overall goods or services being supplied. The acquirer or processor will provide a list of current codes.",
          "x-group-key": "Level III - Order"
        },
        "duty_amount": {
          "type": "number",
          "description": "**Level III - Order Field:** Amount included in the transaction amount associated with the import of purchased goods. Default - `0.00`.\n\nFormat: `x.xx`",
          "x-group-key": "Level III - Order"
        },
        "discount_amount": {
          "type": "number",
          "description": "**Level III - Order Field:** Amount included in the transaction amount of any discount applied to complete order by the merchant. Default - `0.00`.\n\nFormat: `x.xx`",
          "x-group-key": "Level III - Order"
        },
        "national_tax_amount": {
          "type": "number",
          "description": "**Level III - Order Field:** The national tax amount included in the transaction amount. Default - `0.00`.\n\nFormat: `x.xx`",
          "x-group-key": "Level III - Order"
        },
        "alternate_tax_amount": {
          "type": "number",
          "description": "**Level III - Order Field:** Second tax amount included in the transaction amount in countries where more than one type of tax can be applied to the purchases. Default - `0.00`.\n\nFormat: `x.xx`",
          "x-group-key": "Level III - Order"
        },
        "alternate_tax_id": {
          "type": "string",
          "description": "**Level III - Order Field:** Tax identification number of the merchant that reported the alternate tax amount.",
          "x-group-key": "Level III - Order"
        },
        "vat_tax_amount": {
          "type": "number",
          "description": "**Level III - Order Field:** Contains the amount of any value added taxes which can be associated with the purchased item. Default - `0.00`.\n\nFormat: `x.xx`",
          "x-group-key": "Level III - Order"
        },
        "vat_tax_rate": {
          "type": "number",
          "description": "**Level III - Order Field:** Contains the tax rate used to calculate the sales tax amount appearing. Can contain up to 2 decimal places, e.g. 1% = 1.00. Default - `0.00`.\n\nFormat: `x.xx`",
          "x-group-key": "Level III - Order"
        },
        "vat_invoice_reference_number": {
          "type": "string",
          "description": "**Level III - Order Field:** Invoice number that is associated with the VAT invoice.",
          "x-group-key": "Level III - Order"
        },
        "customer_vat_registration": {
          "type": "string",
          "description": "**Level III - Order Field:** Value added tax registration number supplied by the cardholder.",
          "x-group-key": "Level III - Order"
        },
        "merchant_vat_registration": {
          "type": "string",
          "description": "**Level III - Order Field:** Government assigned tax identification number of the merchant for whom the goods or services were purchased from.",
          "x-group-key": "Level III - Order"
        },
        "order_date": {
          "type": "string",
          "format": "date",
          "description": "**Level III - Order Field:** Purchase order date, defaults to the date of the transaction.\n\nFormat: `YYMMDD`",
          "x-group-key": "Level III - Order"
        }
      }
    },
    "MerchantDefinedField": {
      "type": "object",
      "properties": {
        "merchant_defined_field_1": {
          "type": "string",
          "description": "Merchant defined field. You can pass custom information in up to 20 fields.\n\nFormat: `merchant_defined_field_1=Value1`, `merchant_defined_field_2=Value2`, etc..."
        }
      }
    },
    "PaymentFacilitatorFields": {
      "type": "object",
      "properties": {
        "payment_facilitator_id": {
          "type": "string",
          "description": "**Payment Facilitator:** Payment Facilitator/Aggregator/ISO's ID Number",
          "x-group-key": "Payment Facilitator"
        },
        "submerchant_id": {
          "type": "string",
          "description": "**Payment Facilitator:** Sub-merchant Account ID",
          "x-group-key": "Payment Facilitator"
        },
        "submerchant_name": {
          "type": "string",
          "description": "**Payment Facilitator:** Sub-merchant's Name",
          "x-group-key": "Payment Facilitator"
        },
        "submerchant_address": {
          "type": "string",
          "description": "**Payment Facilitator:** Sub-merchant's Address",
          "x-group-key": "Payment Facilitator"
        },
        "submerchant_city": {
          "type": "string",
          "description": "**Payment Facilitator:** Sub-merchant's City",
          "x-group-key": "Payment Facilitator"
        },
        "submerchant_state": {
          "type": "string",
          "description": "**Payment Facilitator:** Sub-merchant's State",
          "x-group-key": "Payment Facilitator"
        },
        "submerchant_postal": {
          "type": "string",
          "description": "**Payment Facilitator:** Sub-merchant's Zip/Postal Code",
          "x-group-key": "Payment Facilitator"
        },
        "submerchant_country": {
          "type": "string",
          "description": "**Payment Facilitator:** Sub-merchant's Country",
          "x-group-key": "Payment Facilitator"
        },
        "submerchant_phone": {
          "type": "string",
          "description": "**Payment Facilitator:** Sub-merchant's Phone Number",
          "x-group-key": "Payment Facilitator"
        },
        "submerchant_email": {
          "type": "string",
          "format": "email",
          "description": "**Payment Facilitator:** Sub-merchant's Email Address",
          "x-group-key": "Payment Facilitator"
        }
      }
    },
    "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"
    },
    "Shipping": {
      "type": "object",
      "properties": {
        "shipping_firstname": {
          "type": "string",
          "description": "Shipping first name"
        },
        "shipping_lastname": {
          "type": "string",
          "description": "Shipping last name"
        },
        "shipping_company": {
          "type": "string",
          "description": "Shipping company"
        },
        "shipping_address1": {
          "type": "string",
          "description": "Shipping address"
        },
        "shipping_address2": {
          "type": "string",
          "description": "Shipping address, line 2"
        },
        "shipping_city": {
          "type": "string",
          "description": "Shipping city"
        },
        "shipping_state": {
          "type": "string",
          "description": "Shipping state.\n  \nFormat: `CC`"
        },
        "shipping_zip": {
          "type": "string",
          "description": "Shipping zip code"
        },
        "shipping_country": {
          "type": "string",
          "description": "Shipping country. *Country codes are as shown in ISO 3166-1 alpha-2*.\n  \nFormat: `CC`"
        },
        "shipping_email": {
          "type": "string",
          "format": "email",
          "description": "Shipping email address"
        }
      }
    },
    "SignatureImage": {
      "type": "object",
      "properties": {
        "signature_image": {
          "type": "string",
          "description": "Cardholder signature image.\n  \nFormat: `base64 encoded raw PNG image. (16kiB maximum)`"
        }
      }
    },
    "StoredCredentialsFields": {
      "type": "object",
      "properties": {
        "initiated_by": {
          "type": "string",
          "enum": [
            "customer",
            "merchant"
          ],
          "description": "**Stored Credentials (CIT/MIT):** Who initiated the transaction."
        },
        "initial_transaction_id": {
          "type": "string",
          "description": "**Stored Credentials (CIT/MIT):** Original payment gateway transaction id."
        },
        "stored_credential_indicator": {
          "type": "string",
          "enum": [
            "stored",
            "used"
          ],
          "description": "**Stored Credentials (CIT/MIT):** The indicator of the stored credential.\n\nUse **'stored'** when processing the initial transaction

# --- truncated at 32 KB (32 KB total) ---
# Full source: https://artifacts.apis.io/nmi/json-schema/nmi-achcredit-request-schema.json

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/nmi-achcredit-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.