{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://raw.githubusercontent.com/api-evangelist/verifone/refs/heads/main/json-schema/ecommerce-api-encryptedcardpaymentrequest.json", "title": "EncryptedCardPaymentRequest", "description": "EncryptedCardPaymentRequest 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." } ] }, "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" } } } ] }, "shipping_information": { "allOf": [ { "$ref": "#/components/schemas/ShippingInformation" }, { "title": "Shipping Address", "description": "The address where the purchased goods should be delivered to.\n
Please use customer_details.shipping.", "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" ] }, "encrypted_card": { "type": "string", "title": "Client encrypted cardholder data", "description": "The cardholder data 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 possible tags being cardNumber, sequenceNumber, cardholderName, startMonth, startYear, expiryMonth, expiryYear, cvv. This should be a single JSON line and should not contain any spaces. Read Secure card capture key for details.\n\n Additionally, a tag called captureTime must be presenting indicating the time the card was captured in UTC in format RFC 3339, section 5.6. eg. 2019-08-24T14:15:22Z. Encrypted card is valid for only 15 minutes." }, "token_preference": { "allOf": [ { "$ref": "#/components/schemas/TokenPreferenceDto", "title": "Token Preference", "description": "Contains the properties required to create a token" } ] }, "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." }, "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" }, "receipt_type": { "type": "string", "description": "Defines the type of receipt to be generated", "enum": [ "FULL_RECEIPT", "INVOICE", "INVOICE_RECEIPT", "SIMPLE_RECEIPT", "NONE" ] } }, "required": [ "payment_provider_contract", "amount", "currency_code", "encrypted_card", "public_key_alias" ] }