Verifone · Schema
TokenPaymentRequest
TokenPaymentRequest from Verifone eCommerce API
PaymentsPOSTerminal ManagementeCommerceFinTechPayment ProcessingOmnichannel
Properties
| Name | Type | Description |
|---|---|---|
| payment_provider_contract | string | The identifier of payment provider contract you want to process the transaction request with. |
| amount | integer | Amount is charged without a decimal place e.g. $1.5 = 150. Currencies can have different decimals/exponentials, see Currencies Section for more details. For Account Verification transactions, provide |
| auth_type | string | Flags a payment request for either pre-authorization or final authorization. * `PRE_AUTH` is used when the authorized amount is unknown and can be adjusted later. * `FINAL_AUTH` is used when a final a |
| capture_now | boolean | Whether auto-capture or not. Setting the value to 'false' will only authorize the transaction. |
| customer | string | The ID of a customer. |
| customer_ip | object | The IP Address of the customer where the transaction was initiated. |
| dynamic_descriptor | string | A short [descriptor](https://en.wikipedia.org/wiki/Billing_descriptor) to be shown on bank statement of the customer. Please refer to the integration guide for the format requirements. |
| invoice_number | string | Optional. The invoice number to track this payment. |
| merchant_reference | string | A reference specified by the merchant to identify the transaction. |
| threed_authentication | object | |
| encrypted_cvv | string | The CVV encrypted using the Verifone provided public key. This can be obtained using either Verifone.JS solution or Verifone Checkout in capture mode. The data to encrypt is a JSON with tag cvv. Addit |
| encrypted_svc_access_code | string | The SVC Access Code encrypted using the Verifone provided public key. This can be obtained using either Verifone.JS solution or Verifone Checkout in capture mode. The data to encrypt is a JSON with ta |
| public_key_alias | string | The alias for the public key used to encrypt this card. |
| stored_credential | object | |
| receipt_type | string | Defines the type of receipt to be generated |
| shipping_information | object | |
| customer_details | object | |
| shopper_interaction | string | Determines the sales channel the shopper gives their card details through: * `ECOMMERCE` Online transactions where the cardholder is present. * `MAIL` order transactions where the shopper is in contac |
| user_agent | string | The full user agent string of the device the customer used to submit the transaction. |
| sales_description | string | A reference used by the merchant to typically capture a description of the service provided. It could then be used by the merchant to help locate transactions. One could envision a situation where a m |
| sca_exemption | string | Use this field to request your transaction to be exempted from the application of the Strong Customer Authentication (SCA). Be advised that the use of this field may result to your liability in case o |
| currency_code | string | Three-letter ISO 4217 alphabetical currency code. e.g. USD. Values correspond to [ISO 4217](https://wikipedia.org/wiki/ISO_4217). |
| card_brand | object | |
| brand_choice | string | For dual-branded cards identifies whether selection is made by a cardholder or merchant. |
| credit_term | string | An indicator to show under which terms the credit was provided. |
| instalment | object | |
| refusal_reason | string | The reason a transaction has been refused within the payment ecosystem by the client/Verifone/acquirer. This needs to be set by the component that is refusing this transaction request. |
| reuse_token | string | The Verifone issued reuse token used to represent the previously stored cardholder data. |
| reuse_token_type | string | The type of Reuse Token. This indicates if the reuse token is an internal Verifone type or an external Third-Party type. **Note**: `reuse_token_details` is **mandatory** when `reuse_token_type` is |
| reuse_token_details | object | |
| promo_code | string | A code defined by the merchant that affects the calculation of the total amount. |
| promo_financing_details | object | |
| purchase_order_number | string | The purchase order number. It can be provided in transactions with purchase or procurement cards for the cardholder to get better interchange rates (note that this functionality needs alignment with t |
| tax_indicator | string | This field indicates the taxable status of the transaction (if any of the purchased items are taxable). This field is part of so-called Level 2 data. If the value `TAX_PROVIDED` is sent, `tax_amount` |
| detailed_amount | object |
JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://raw.githubusercontent.com/api-evangelist/verifone/refs/heads/main/json-schema/ecommerce-api-tokenpaymentrequest.json",
"title": "TokenPaymentRequest",
"description": "TokenPaymentRequest from Verifone eCommerce API",
"type": "object",
"properties": {
"payment_provider_contract": {
"type": "string",
"description": "The identifier of payment provider contract you want to process the transaction request with.",
"format": "uuid-flexible"
},
"amount": {
"type": "integer",
"description": "Amount is charged without a decimal place e.g. $1.5 = 150. Currencies can have different decimals/exponentials, see Currencies Section for more details. For Account Verification transactions, provide 0 as value for this field."
},
"auth_type": {
"type": "string",
"description": "Flags a payment request for either pre-authorization or final authorization.\n\n* `PRE_AUTH` is used when the authorized amount is unknown and can be adjusted later.\n\n* `FINAL_AUTH` is used when a final authorized amount is known and the transaction will definitely be captured in whole.",
"enum": [
"PRE_AUTH",
"FINAL_AUTH"
],
"default": "FINAL_AUTH"
},
"capture_now": {
"type": "boolean",
"description": "Whether auto-capture or not. Setting the value to 'false' will only authorize the transaction.",
"default": true
},
"customer": {
"type": "string",
"description": "The ID of a customer.",
"format": "uuid-flexible",
"title": "Customer ID"
},
"customer_ip": {
"description": "The IP Address of the customer where the transaction was initiated.",
"maxLength": 15,
"oneOf": [
{
"type": "string",
"format": "ipv4"
},
{
"type": "string",
"format": "ipv6"
}
]
},
"dynamic_descriptor": {
"type": "string",
"description": "A short [descriptor](https://en.wikipedia.org/wiki/Billing_descriptor) to be shown on bank statement of the customer. Please refer to the integration guide for the format requirements.",
"maxLength": 25
},
"invoice_number": {
"type": "string",
"title": "Invoice Number",
"description": "Optional. The invoice number to track this payment.",
"maxLength": 127
},
"merchant_reference": {
"type": "string",
"description": "A reference specified by the merchant to identify the transaction.",
"maxLength": 50
},
"threed_authentication": {
"allOf": [
{
"$ref": "#/components/schemas/ThreedAuthenticationDto",
"description": "MPI authentication data. Please refer to the integration guide for information on its usage."
}
]
},
"encrypted_cvv": {
"type": "string",
"description": "The CVV encrypted using the Verifone provided public key. This can be obtained using either Verifone.JS solution or Verifone Checkout in capture mode.\n\n The data to encrypt is a JSON with tag cvv.\n\n Additionally a tag called captureTime must be presenting indicating the time the cvv was captured in UTC in format RFC 3339, section 5.6. eg. 2019-08-24T14:15:22Z.\n\n Sample JSON to encrypt:\n\n {\n\n \"cvv\": \"123\"\n\n \"captureTime\": \"2021-04-27T14:15:22Z\"\n\n }"
},
"encrypted_svc_access_code": {
"type": "string",
"title": "Client encrypted SVC Access Code",
"description": "The SVC Access Code encrypted using the Verifone provided public key. This can be obtained using either Verifone.JS solution or Verifone Checkout in capture mode.\n\nThe data to encrypt is a JSON with tag svcAccessCode.\n\nAdditionally a tag called captureTime must be presenting indicating the time the cvv was captured in UTC in format RFC 3339, section 5.6. eg. 2019-08-24T14:15:22Z."
},
"public_key_alias": {
"type": "string",
"title": "Public Key Alias",
"description": "The alias for the public key used to encrypt this card."
},
"stored_credential": {
"allOf": [
{
"$ref": "#/components/schemas/StoredCredentialDto"
},
{
"title": "Stored Credential Payment",
"description": "The definition of a stored credential payment.",
"discriminator": {
"propertyName": "stored_credential_type",
"mapping": {
"SIGNUP": "#/components/schemas/StoredCredentialSignUp",
"CHARGE": "#/components/schemas/StoredCredentialSubsequentCharge"
}
}
}
]
},
"receipt_type": {
"type": "string",
"description": "Defines the type of receipt to be generated",
"enum": [
"FULL_RECEIPT",
"INVOICE",
"INVOICE_RECEIPT",
"SIMPLE_RECEIPT",
"NONE"
]
},
"shipping_information": {
"allOf": [
{
"$ref": "#/components/schemas/ShippingInformation"
},
{
"title": "Shipping Address",
"description": "The address where the purchased goods should be delivered to.\n<br><b>Please use customer_details.shipping.</b>",
"deprecated": true
}
]
},
"customer_details": {
"allOf": [
{
"$ref": "#/components/schemas/CustomerDetailsDto"
}
]
},
"shopper_interaction": {
"type": "string",
"description": "Determines the sales channel the shopper gives their card details through:\n\n * `ECOMMERCE` Online transactions where the cardholder is present.\n\n * `MAIL` order transactions where the shopper is in contact with the merchant via email.\n\n * `TELEPHONE` order transactions where the shopper is in contact with the merchant via telephone.",
"enum": [
"ECOMMERCE",
"MAIL",
"TELEPHONE"
],
"default": "ECOMMERCE"
},
"user_agent": {
"type": "string",
"description": "The full user agent string of the device the customer used to submit the transaction.",
"maxLength": 256
},
"sales_description": {
"type": "string",
"description": "A reference used by the merchant to typically capture a description of the service provided. It could then be used by the merchant to help locate transactions. One could envision a situation where a merchant is trying to locate a transaction/ receipt but in speaking with the customer, the only (or at least a predominant) detail is what service was rendered",
"maxLength": 200
},
"sca_exemption": {
"type": "string",
"description": "Use this field to request your transaction to be exempted from the application of the Strong Customer Authentication (SCA). Be advised that the use of this field may result to your liability in case of fraudulent transaction.\n\n Possible Values:\n\n 1 - Low value payment\n\n 2 - Acquirer Transaction Risk Analysis\n\n 3 - Trusted beneficiary exemption\n\n 4 - Secure Corporate Payment (SCP) exemption\n\n 5 - Merchant Initiated Transaction\n\n 6 - SCA Delegation",
"enum": [
"1",
"2",
"3",
"4",
"5",
"6"
]
},
"currency_code": {
"type": "string",
"title": "Currency Code",
"description": "Three-letter ISO 4217 alphabetical currency code. e.g. USD.\n\n Values correspond to [ISO 4217](https://wikipedia.org/wiki/ISO_4217).",
"enum": [
"AED",
"AFN",
"ALL",
"AMD",
"ANG",
"AOA",
"ARS",
"AUD",
"AWG",
"AZN",
"BAM",
"BBD",
"BDT",
"BGN",
"BHD",
"BIF",
"BMD",
"BND",
"BOB",
"BOV",
"BRL",
"BSD",
"BTN",
"BWP",
"BYR",
"BZD",
"CAD",
"CDF",
"CHE",
"CHF",
"CHW",
"CLF",
"CLP",
"CNY",
"COP",
"COU",
"CRC",
"CUC",
"CUP",
"CVE",
"CZK",
"DJF",
"DKK",
"DOP",
"DZD",
"EGP",
"ERN",
"ETB",
"EUR",
"FJD",
"FKP",
"GBP",
"GEL",
"GHS",
"GIP",
"GMD",
"GNF",
"GTQ",
"GYD",
"HKD",
"HNL",
"HRK",
"HTG",
"HUF",
"IDR",
"ILS",
"INR",
"IQD",
"IRR",
"ISK",
"JMD",
"JOD",
"JPY",
"KES",
"KGS",
"KHR",
"KMF",
"KPW",
"KRW",
"KWD",
"KYD",
"KZT",
"LAK",
"LBP",
"LKR",
"LRD",
"LSL",
"LTL",
"LVL",
"LYD",
"MAD",
"MDL",
"MGA",
"MKD",
"MMK",
"MNT",
"MOP",
"MRO",
"MUR",
"MVR",
"MWK",
"MXN",
"MXV",
"MYR",
"MZN",
"NAD",
"NGN",
"NIO",
"NOK",
"NPR",
"NZD",
"OMR",
"PAB",
"PEN",
"PGK",
"PHP",
"PKR",
"PLN",
"PYG",
"QAR",
"RON",
"RSD",
"RUB",
"RWF",
"SAR",
"SBD",
"SCR",
"SDG",
"SEK",
"SGD",
"SHP",
"SLL",
"SOS",
"SRD",
"SSP",
"STD",
"SVC",
"SYP",
"SZL",
"THB",
"TJS",
"TMT",
"TND",
"TOP",
"TRY",
"TTD",
"TWD",
"TZS",
"UAH",
"UGX",
"USD",
"USN",
"USS",
"UYI",
"UYU",
"UZS",
"VEF",
"VND",
"VUV",
"WST",
"XAF",
"XAG",
"XAU",
"XBA",
"XBB",
"XBC",
"XBD",
"XCD",
"XDR",
"XOF",
"XPD",
"XPF",
"XPT",
"XTS",
"XXX",
"YER",
"ZAR",
"ZMK",
"ZMW",
"BTC"
]
},
"card_brand": {
"$ref": "#/components/schemas/CardBrand"
},
"brand_choice": {
"type": "string",
"description": "For dual-branded cards identifies whether selection is made by a cardholder or merchant.",
"enum": [
"MERCHANT",
"CARDHOLDER"
],
"default": "MERCHANT"
},
"credit_term": {
"type": "string",
"description": "An indicator to show under which terms the credit was provided.",
"default": "STANDARD",
"enum": [
"STANDARD",
"PREFERED",
"DEBIT",
"INSTALMENT_STANDARD",
"INSTALMENT_CREDIT"
]
},
"instalment": {
"allOf": [
{
"$ref": "#/components/schemas/InstalmentDto",
"title": "instalment",
"description": "The details on the instalment-scheme that should be enacted by the issuer."
}
]
},
"refusal_reason": {
"type": "string",
"title": "Refusal Reason",
"description": "The reason a transaction has been refused within the payment ecosystem by the client/Verifone/acquirer. This needs to be set by the component that is refusing this transaction request.",
"enum": [
"ACQUIRER_COMMS_FAILURE",
"ACQUIRER_REFUSED",
"CARD_BRAND_NOT_ACCEPTED",
"CARD_EXPIRED",
"CARD_NOT_ACCEPTED",
"CARD_NOT_VALID",
"CARD_PRODUCT_NOT_ACCEPTED",
"ORIGINAL_TRANSACTION_NOT_FOUND",
"INVALID_BIN",
"PARTIAL_AUTH_NOT_ALLOWED",
"RECEIPT_FAILURE",
"REFUND_NOT_ACCEPTED",
"THREEDSECURE_FAILED_ACS",
"THREEDSECURE_FAILED_AUTH",
"THREEDSECURE_FAILED_COMMS",
"UNAPPROVED_OPERATOR",
"UNKNOWN_REASON"
]
},
"reuse_token": {
"type": "string",
"title": "Reuse Token",
"description": "The Verifone issued reuse token used to represent the previously stored cardholder data.",
"minLength": 14,
"maxLength": 255
},
"reuse_token_type": {
"title": "Reuse Token Type",
"description": "The type of Reuse Token. This indicates if the reuse token is an internal Verifone type or an external Third-Party type.<br>\n**Note**: `reuse_token_details` is **mandatory** when `reuse_token_type` is set to `TAVE` or `CHASE`.\n",
"type": "string",
"enum": [
"CHASE",
"INTERNAL",
"TAVE"
],
"default": "INTERNAL"
},
"reuse_token_details": {
"$ref": "#/components/schemas/TokenDetailsRequestBody"
},
"promo_code": {
"type": "string",
"description": "A code defined by the merchant that affects the calculation of the total amount."
},
"promo_financing_details": {
"$ref": "#/components/schemas/PromoFinancingDetails"
},
"purchase_order_number": {
"title": "Purchase Order Number",
"description": "The purchase order number. It can be provided in transactions with purchase or procurement cards for the cardholder to get better interchange rates (note that this functionality needs alignment with the acquirer and the scheme). This field is part of so-called Level 2 data.\n",
"type": "string",
"maxLength": 17
},
"tax_indicator": {
"title": "Tax Indicator",
"description": "This field indicates the taxable status of the transaction (if any of the purchased items are taxable). This field is part of so-called Level 2 data. If the value `TAX_PROVIDED` is sent, `tax_amount` should also be provided\n",
"type": "string",
"enum": [
"TAX_PROVIDED",
"TAX_NOT_PROVIDED",
"NON_TAXABLE"
],
"default": "TAX_NOT_PROVIDED"
},
"detailed_amount": {
"$ref": "#/components/schemas/DetailedAmount"
}
},
"required": [
"payment_provider_contract",
"amount",
"currency_code",
"reuse_token"
]
}