NMI · Schema

Credit Card - Sale

PaymentsPayment GatewayPayment ProcessingTokenizationRecurring BillingCustomer VaultFintechEmbedded PaymentsPayment Facilitation

Properties

Name Type Description
security_key object
type string The type of transaction to be processed. Must be `sale`
partial_payments string `settle_partial`: Settles any amount of tender collected (captured partial auth's and approved partial sales) at cut off. `payment_in_full`: Required that any split tendered transaction is collected i
partial_payment_id string Unique identifier returned when making the original transaction. This should only be used for secondary transactions.
ccnumber string Credit card number.
Allowed Card Numbers: | Card Type | Test Card Number | |:------------------|:---------------------| | Visa | 4111111111111111 | | MasterCard | 54311111
ccexp string Credit card expiration date. Format: `MMYY`
cvv string The card security code. While this is not required, it is strongly recommended.
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
industry string The industry parameter is supported across multiple transaction types. Its purpose is to identify the merchant industry type for processing
signature_image string Cardholder signature image. Format: `base64 encoded raw PNG image. (16kiB maximum)`
network_tokenize string Overrides the Customer Token Vault settings and tokenizes the transaction if eligible. Default - `0`.
View JSON Schema on GitHub

JSON Schema

nmi-credit-card-sale-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-credit-card-sale-request-schema.json",
  "title": "Credit Card - Sale",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/nmi-payments-openapi.yml#/components/schemas/CreditCardSaleRequest",
  "allOf": [
    {
      "type": "object",
      "required": [
        "type",
        "ccnumber",
        "ccexp",
        "amount",
        "security_key"
      ],
      "properties": {
        "security_key": {
          "$ref": "#/$defs/SecurityKey"
        },
        "type": {
          "type": "string",
          "description": "The type of transaction to be processed. Must be `sale`"
        },
        "partial_payments": {
          "type": "string",
          "enum": [
            "settle_partial",
            "payment_in_full"
          ],
          "description": "`settle_partial`: Settles any amount of tender collected (captured partial auth's and approved partial sales) at cut off.\n\n`payment_in_full`: Required that any split tendered transaction is collected in-full before settlement gets initiated."
        }
      }
    },
    {
      "additionalProperties": {
        "type": "string",
        "description": "Up to 20 `merchant_defined_field_#` are allowed."
      }
    },
    {
      "$ref": "#/$defs/PartialPaymentInfo"
    },
    {
      "$ref": "#/$defs/CreditCardWithCvv"
    },
    {
      "$ref": "#/$defs/Amount"
    },
    {
      "$ref": "#/$defs/BaseTransaction"
    },
    {
      "$ref": "#/$defs/Industry"
    },
    {
      "$ref": "#/$defs/SignatureImage"
    },
    {
      "$ref": "#/$defs/CustomerTokenVaultFields"
    }
  ],
  "$defs": {
    "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"
        }
      ]
    },
    "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`"
        }
      }
    },
    "CreditCardWithCvv": {
      "allOf": [
        {
          "$ref": "#/$defs/CreditCard"
        },
        {
          "type": "object",
          "properties": {
            "cvv": {
              "type": "string",
              "description": "The card security code. While this is not required, it is strongly recommended."
            }
          }
        }
      ]
    },
    "CustomerTokenVaultFields": {
      "type": "object",
      "properties": {
        "network_tokenize": {
          "type": "string",
          "enum": [
            "0",
            "1"
          ],
          "description": "Overrides the Customer Token Vault settings and tokenizes the transaction if eligible. Default - `0`.",
          "x-group-key": "Customer Token Vault"
        }
      }
    },
    "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."
        }
      }
    },
    "Industry": {
      "type": "object",
      "properties": {
        "industry": {
          "type": "string",
          "enum": [
            "ecommerce",
            "moto",
            "retail",
            "restaurant",
            "lodging"
          ],
          "description": "The industry parameter is supported across multiple transaction types. Its purpose is to identify the merchant industry type for processing"
        }
      }
    },
    "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..."
        }
      }
    },
    "PartialPaymentInfo": {
      "type": "object",
      "properties": {
        "partial_payment_id": {
          "type": "string",
          "description": "Unique identifier returned when making the original transaction. This should only be used for secondary transactions."
        }
      }
    },
    "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": {
          

# --- truncated at 32 KB (33 KB total) ---
# Full source: https://artifacts.apis.io/nmi/json-schema/nmi-credit-card-sale-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-credit-card-sale-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.