# Ecom Payments

## Initiate a payment

> Initiate a card payment or card verification request when amount is set to 0 (zero).\
> \
> &#x20;\<b>Transactions business models\</b>\
> \
> \| Business model | Transaction type | Shopper Interaction | Stored Credential Contract | Stored Credential Processing Model |\
> \| -------------- | ---------------- | ------------------- | ------------------ | -------------------------- |\
> \| Online purchase with shopper present | One-off online purchase without storing card payment details for future use.| \`ECOMMERCE\` | | |\
> \| Online purchase with shopper present | Online purchase where shopper agrees to store card details for future use. This can be a zero-value transaction account verification.| \`ECOMMERCE\` |  | \`CREDENTIAL\_ON\_FILE\` |\
> \| Online purchase with shopper present | Online purchase where shopper uses previously stored card payment details.| \`ECOMMERCE\` | \`ONE\_CLICK\` | \`CREDENTIAL\_ON\_FILE\` |\
> \| Subscriptions | Initial transaction to sign up for a subscription.| \`ECOMMERCE\` |  | \`RECURRING\` |\
> \| Subscriptions | Subsequent subscription charge. | \`ECOMMERCE\` | \`MERCHANT\_INITIATED\` | \`RECURRING\` |\
> \| Non-fixed in time contracts (such as auto account top-ups) | Initial transaction to sign up for the terms and conditions of later subsequent charges. | \`ECOMMERCE\` |  | \`UNSCHEDULED\_CREDENTIAL\_ON\_FILE\` |\
> \| Non-fixed in time contracts (such as auto account top-ups) | Subsequent charges as described in the initial terms and conditions during the sign-up transaction. | \`ECOMMERCE\` | \`MERCHANT\_INITIATED\` | \`UNSCHEDULED\_CREDENTIAL\_ON\_FILE\` |

```json
{"openapi":"3.0.0","info":{"title":"Verifone eCommerce API","version":"2.38.1"},"servers":[{"url":"https://emea.gsc.verifone.cloud/oidc","description":"EMEA Production"},{"url":"https://us.gsc.verifone.cloud/oidc","description":"Americas Production"},{"url":"https://nz.gsc.verifone.cloud/oidc","description":"New Zealand Production"},{"url":"https://cst.test-gsc.vfims.com/oidc","description":"Global Sandbox"},{"url":"https://uscst-gb.gsc.vficloud.net/oidc","description":"Americas Sandbox"}],"security":[{"BasicAuth":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic"}},"schemas":{"EncryptedCardPaymentRequest":{"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<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"]},"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 <a target=\"_blank\" style=\"color:blue;\" href=\"https://docs.verifone.com/online-payments/api-integration-methods-auth-and-endpoints/secure-card-capture-key\">Secure card capture key</a> 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"]},"ThreedAuthenticationDto":{"type":"object","properties":{"eci_flag":{"type":"string","description":"Electronic Commerce Indicator (ECI). The ECI value is part of the 2 data elements that indicate the transaction was processed electronically.This should be passed on the authorization transaction to the Gateway/Processor.Please refer to the integration guide for information on its usage.","enum":["05","06","07","02","01","00"]},"enrolled":{"type":"string","enum":["Y","N","U","B"],"description":"The enrolment response status of Authentication eligibility from the Directory Server.\n\nPossible Values:\n\n * `Y` - Yes, Bank is participating in 3-D Secure protocol and will return the ACSUrl.\n\n * `N` - No, Bank is not participating in 3-D Secure protocol.\n\n * `U` - Unavailable,  the DS or ACS is not available for authentication at the time of the request.\n\n * `B` - Bypass, merchant authentication rule is triggered to bypass authentication in this use case.\n\nNOTE: If the Enrolled value is NOT Y, then the Consumer is NOT eligible for Authentication."},"cavv":{"type":"string","minLength":28,"maxLength":48,"description":"Cardholder Authentication Verification Value (CAVV). Base64-encoded values of 28 or 32 characters. Hex-encoded values of 40 or 48 characters."},"cavv_algorithm":{"type":"string","description":"The algorithm used to generate the CAVV value. Supported for 3D Secure v1 only."},"pares_status":{"type":"string","enum":["Y","N","U","A","C","R"],"description":"Authentication response code.\n\nPossible Values:\n\n * `Y` - Successful Authentication.\n\n * `N` - Failed Authentication.\n\n * `U` - Unable to Complete Authentication\n\n * `A` - Successful Attempts Transaction.\n\n * `C` - Challenge Required for Authentication.\n\n * `R` - Authentication Rejected."},"xid":{"type":"string","description":"The transaction identifier assigned by Directory Server. Supported for 3D Secure v1 only."},"threeds_version":{"type":"string","enum":["1.0.2","2.1.0","2.2.0"],"description":"The 3DS version used to process the transaction."},"ds_transaction_id":{"type":"string","description":"The unique transaction identifier assigned by the Directory Server. Supported for 3D Secure v2 only."},"signature_verification":{"type":"string","enum":["Y","N"],"description":"Transaction Signature status identifier.\n\n Possible Values:\n\n *  `Y` - Indicates that the signature of the PARes has been validated successfully and the message contents can be trusted.\n\n * `N` - Indicates that the PARes could not be validated. This result could be for a variety of reasons; tampering, certificate expiration, etc., and the result should not be trusted."},"verification":{"type":"array","description":"Any verification/authentication responses captured as part of the submission of the transaction. e.g. 3DS response values or ACRQ/ARCP. For some mPos transactions the verification may be performed on-device e.g. ApplePay, Face ID or Touch ID.","items":{"type":"string","enum":["DENIED","NON_PARTICIPATION","UNABLE_TO_AUTHENTICATE","MERCHANT_NOT_ENROLLED","WITH_CRYPTOGRAM","WITHOUT_CRYPTOGRAM"]}},"error_desc":{"type":"string","description":"Application error description for the associated error number(s).\n\n NOTE: Multiple error descriptions are separated by a comma."},"error_no":{"type":"string","description":"Application error number(s). A non-zero value represents the error encountered while attempting to process the message request.\n\n NOTE: Multiple error numbers are separated by a comma."},"authentication_amount":{"type":"integer","title":"amount","description":"Amount is charged without a decimal place e.g. $1.5 = 150.\nThe required number of decimal places for a currency code is according to ISO 4217.\nFor Account Verification transactions, provide 0 as value for this field."},"additional_data":{"allOf":[{"$ref":"#/components/schemas/AdditionalDataDto","description":"Additional 3DS data, which may be required in the particular payment request."}]}}},"AdditionalDataDto":{"type":"object","properties":{"total_items":{"type":"number","description":"Number of purchased items or services.","minimum":0,"maximum":99},"device_channel":{"type":"string","enum":["SDK","BROWSER"],"description":"Determines the channel that the transaction came through."},"status_reason":{"type":"string","description":"Provides additional information as to why the PAResStatus has the specific value.\n\n **NOTE**: Required for Payment (e.g. Authentication Indicator equals 01 on Lookup Request) transactions when PAResStatus is equal to N, U, or R in the Lookup Response."},"challenge_indicator":{"type":"string","enum":["01","02","03","04","90"],"description":"This is a 2.0 required field. Possible values are:\n\n * `01` No preference\n\n * `02` No challenge requested\n\n * `03` Challenge requested (3DS Requestor preference)\n\n * `04` Challenge requested (Mandate)\n\n * `90` Used to call the CB Scoring platform"},"challenge_cancel":{"type":"string","enum":["01","02","03","04","05","06","07"],"description":"Indicator informing the ACS and the DS that the authentication has been cancelled.\n\n Possible values are:\n\n * `01` Cardholder selected “Cancel”\n\n * `02` 3DS Requestor cancelled Authentication.\n\n * `03` Transaction Abandoned\n\n * `04` Transaction Timed Out at ACS — other timeouts\n\n * `05` Transaction Timed Out at ACS — First CReq not received by ACS\n\n * `06` Transaction Error\n\n * `07` Unknown"},"acs_url":{"type":"string","maxLength":2048,"description":"The fully qualified URL to redirect the Consumer to complete the Consumer Authentication transaction.\n\n **NOTE**: Available if Enrolled = Y"},"acs_operator_id":{"type":"string","maxLength":32,"description":"DS assigned ACS identifier. Each DS can provide a unique ID to each ACS on an individual basis."},"network_score":{"type":"string","maxLength":2,"format":"number","description":"The global score calculated by the CB Scoring platform."},"reason_code":{"type":"string","description":"The error code indicating a problem with this transaction."},"reason_desc":{"type":"string","description":"Text and additional detail about the error for this transaction. NOTE: This field concatenates the errorDescription and errorDetail from the authentication response message."}}},"StoredCredentialDto":{"type":"object","properties":{"stored_credential_type":{"type":"string","enum":["SIGNUP","CHARGE"],"description":"The definition of a stored credential payment."},"processing_model_details":{"allOf":[{"$ref":"#/components/schemas/ProcessingModelDetailsDto"}]},"first_payment":{"type":"boolean","description":"Whether auto-capture or not. Setting this to 'false' will only authorize the transaction."},"scheme_reference":{"type":"string","description":"Scheme Reference Data returned in the initial transaction"}},"required":["stored_credential_type","processing_model_details"]},"ProcessingModelDetailsDto":{"type":"object","properties":{"total_payment_number":{"type":"number","description":"Total paymant Number."},"total_payment_amount":{"type":"number","description":"total Payment Amount."},"first_payment_amount":{"type":"number","description":"first Payment Amount."},"payment_frequency":{"allOf":[{"$ref":"#/components/schemas/PaymentFrequency"}]},"processing_model":{"type":"string","enum":["UNSCHEDULED_CREDENTIAL_ON_FILE","CREDENTIAL_ON_FILE","RECURRING","NONE","REAUTHORIZATION"],"description":"Processing model to use for COF transaction. Refer to the card integration guide for more information on the usage."},"merchant_signup_code":{"type":"string","description":"A pre-defined signup code between the merchant and the acquirer."},"current_payment_number":{"type":"number","description":"The current number of recurring payments."},"amount_fixed":{"type":"boolean","default":false,"description":"Set `true` to indicate that recurring charges are of the same amount (often used for subscriptions), and set `false` to indicate variable amount between charges (often used for standing orders with fixed schedule)."}},"required":["processing_model"]},"PaymentFrequency":{"type":"object","properties":{"time_unit":{"type":"string","enum":["DAY","WEEK","MONTH","YEAR"],"description":"Processing model to use for COF transaction. Refer to the card integration guide for more information on the usage."},"value":{"type":"number","description":"Value."}},"required":["time_unit"]},"ShippingInformation":{"type":"object","properties":{"address":{"type":"string","maxLength":300,"description":"Street address of the recipient."},"city":{"type":"string","maxLength":28,"description":"City of the recipient."},"country":{"type":"string","maxLength":2,"minLength":2,"format":"country-code","description":"A 2-letter ISO3166 alpha-2 country code for the address."},"postal_code":{"type":"string","minLength":1,"maxLength":16,"description":"A postal code for the address."},"email":{"type":"string","title":"Email Address","minLength":3,"maxLength":254,"format":"email","description":"A valid internationalized email address, as defined by RFC 5322, RFC 6530, and other RFCs. Due to RFC 5321, an email address can be up to 254 characters long even though up to 64 characters are allowed before and 255 characters are allowed after the @ sign. This pattern verifies only that the string contains an unquoted @ sign. See https://tools.ietf.org/html/rfc5322#section-3.4.1."},"first_name":{"type":"string","maxLength":100,"description":"First name of the recipient."},"last_name":{"type":"string","maxLength":100,"description":"Last name of the recipient."},"phone":{"type":"number","maxLength":15,"description":"Numbers only, no dash or any other separator."},"state":{"type":"string","maxLength":35,"description":"A region / state / province for the address."}},"required":["address","city","country","postal_code"]},"CustomerDetailsDto":{"type":"object","title":"Customer","description":"Customer information containing billing and shipping details.","additionalProperties":false,"properties":{"title":{"type":"string","description":"The prefix to the party name. This is sometimes referred to as a title, salutation or appellation.","maxLength":120},"first_name":{"type":"string","description":"The first name of the Customer. This may be a proper name or some form of entity name or nickname.","maxLength":100},"middle_name":{"type":"string","description":"The middle name of the Customer. This may be a proper name or some form of entity name or nickname.","maxLength":100},"last_name":{"type":"string","description":"The last name or family name of the Customer.","maxLength":100},"company_name":{"type":"string","description":"Where the Customer is an organisation or company this name should be used rather than the firstName lastName","maxLength":100},"phone_number":{"type":"string","description":"Customers phone number for billing address.","maxLength":25},"email_address":{"type":"string","title":"email","format":"email","description":"Customer email address, which might be used during refund flow."},"shipping":{"allOf":[{"$ref":"#/components/schemas/CustomerDetailsShippingInformationDto"}]},"billing":{"allOf":[{"$ref":"#/components/schemas/BillingDto"},{"description":"The address of billing.","title":"Billing Address"}]},"language":{"type":"string","title":"language","description":"The BCP-47 language tag. The tag is composed of:\n\n* The ISO-639 alpha-1 or ISO-639 alpha-2 language code\n\n* (Optional) The ISO-15924 script tag\n\n* The ISO-3166 alpha-2 country code\n\n `NOTE:`The value is case-insensitive, so for example \"he\" and \"HE\" should be considered equal."}}},"CustomerDetailsShippingInformationDto":{"type":"object","additionalProperties":false,"description":"The address where the purchased goods should be delivered to.","title":"Shipping Address","properties":{"address":{"type":"string","maxLength":300,"description":"Street address of the recipient."},"city":{"type":"string","maxLength":28,"description":"City of the recipient."},"country":{"type":"string","maxLength":2,"minLength":2,"format":"country-code","description":"A 2-letter ISO3166 alpha-2 country code for the address."},"postal_code":{"type":"string","minLength":1,"maxLength":16,"description":"A postal code for the address."},"email":{"type":"string","title":"Email Address","minLength":3,"maxLength":254,"format":"email","description":"A valid internationalized email address, as defined by RFC 5322, RFC 6530, and other RFCs. Due to RFC 5321, an email address can be up to 254 characters long even though up to 64 characters are allowed before and 255 characters are allowed after the @ sign. This pattern verifies only that the string contains an unquoted @ sign. See https://tools.ietf.org/html/rfc5322#section-3.4.1."},"first_name":{"type":"string","maxLength":100,"description":"First name of the recipient."},"last_name":{"type":"string","maxLength":100,"description":"Last name of the recipient."},"phone":{"type":"string","maxLength":18,"description":"Telephone number."},"state":{"type":"string","maxLength":35,"description":"A region / state / province for the address."}},"required":["address","city","country","postal_code"]},"BillingDto":{"type":"object","additionalProperties":false,"properties":{"address_1":{"type":"string","maxLength":40,"description":"Customer's primary billing address information."},"address_2":{"type":"string","maxLength":40,"description":"Customer's secondary billing address information."},"address_3":{"type":"string","maxLength":40,"description":"Customer's third billing address information."},"city":{"type":"string","maxLength":28,"description":"Customer's city on their billing address"},"country":{"type":"string","title":"Country Code","description":"The ISO 3166-1 alpha-3 country code.","enum":["ZZ","AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},"phone":{"type":"string","maxLength":25,"description":"Customer's phone number for billing address. This should be un formatted without hyphens. (e.g. 4422345678)"},"postal_code":{"type":"string","maxLength":10,"description":"Customer's postal code of their billing address."},"state":{"type":"string","maxLength":35,"description":"Customer's state or province of their billing address. (e,g. Ohio = OH, Texas = TX)"}}},"CardBrand":{"type":"string","title":"The Card Type","description":"Represents a Card type or brand. It should correspond to a consistent name, the list of standard names is as follows:\n\nValue |  Description\n------|-------------\nAMEX|American Express\nCB|Carte Bancaires\nDINERS|Diners Club International\nDISCOVER|Diners Club Discover\nJCB|Japan Credit Bureau\nMAESTRO|Multi-national Debit (MasterCard)\nMASTERCARD|MasterCard\nVISA|Visa\nUPI|Union Pay International\nGIFT_CARD|Gift Card (Generic)\nPLCC|Private Label Credit Card\n**Other local schemes as applicable**. Enter a pre-defined name to represent the scheme or type. \n**Note**:  1. For gift cards, card brand is mandatory and the value should be GIFT_CARD.\n2. This parameter is mandatory for dual branded cards."},"InstalmentDto":{"type":"object","properties":{"down_payment_amount":{"type":"number","title":"Amount Simple Type","description":"The value, which can be anything from: An integer - for currencies that are not typically fractional, such as JPY. A three-place decimal fraction - for currencies that are subdivided into thousandths, such as TND. An eight-place decimal fraction - for currencies such as Bitcoin. For the required number of decimal places for a currency code, see ISO 4217"},"number_of_instalments":{"type":"number","description":"The number of individual parts that the total amount should be paid in."},"instalment_amount":{"type":"number","title":"Amount Simple Type","description":"The value, which can be anything from: An integer - for currencies that are not typically fractional, such as JPY. A three-place decimal fraction - for currencies that are subdivided into thousandths, such as TND. An eight-place decimal fraction - for currencies such as Bitcoin. For the required number of decimal places for a currency code, see ISO 4217"}}},"TokenPreferenceDto":{"type":"object","properties":{"token_scope":{"type":"string","title":"Token Scope","description":"The token scope under which this token was created.","format":"uuid"},"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"},"token_type":{"type":"string","title":"Token Type","description":"Token type","enum":["REUSE","ANALYTICS","REUSE_AND_ANALYTICS"]},"token_expiry_date":{"type":"string","description":"When this Token will expire.","format":"date"}},"required":["token_scope"]},"PromoFinancingDetails":{"title":"Promo Financing","type":"object","description":"Additional details of the special financing offers to customers using private label cards, typically in combination with `promo_code` field.","properties":{"promoFinancingType":{"description":"Type of special financing information requested. Promotional information may be requested for duration of the promo only (`PROMO_APR`) or for during and after promo period (`PROMO_AND_AFTER_APR`).\",","type":"string","enum":["PROMO_APR","PROMO_AND_AFTER_APR"]},"promoPlan":{"description":"The code or name of a promotional financing plan as set up between merchant and issuer.","type":"string"},"promoPlanExpiry":{"description":"Expiry date for the requested promo plan.","type":"string","format":"date"}}},"TokenPaymentRequest":{"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"]},"TokenDetailsRequestBody":{"title":"Reuse Token Details","type":"object","properties":{"expiry_month":{"maximum":12,"type":"integer","description":"A 2 digit value as shown on card. ISO8583 - DE 14.\\n\\nThis is included as an optional value to be used for some Third-Party reuse token types."},"expiry_year":{"maximum":9999,"type":"integer","description":"A 4 digit value as shown on card.\\n\\nThis is included as an optional value to be used for some Third-Party reuse token types."}},"additionalProperties":false,"description":"The details related to the token. For Third-Party Reuse tokens, these elements might be required as additional information together with the Reuse token itself.<br>\n**Note**: `reuse_token_details` is **mandatory** when `reuse_token_type` is set to `TAVE` or `CHASE`.\n"},"DetailedAmount":{"title":"Detailed Amount","description":"A structure that represents a breakdown all of the different amounts that may appear on a single transaction.","type":"object","properties":{"gratuity_amount":{"description":"An optional additional amount representing the tip or gratuity associated with a payment. This should be included in the total 'amount' of the transaction.\n\nAmount is specified without a decimal place e.g. $1.5 = 150.\n\n<i>The required number of decimal places for a currency code is according to ISO 4217.</i>","type":"integer"},"tax_amount":{"title":"Tax Amount","description":"An optional value to specify the amount of any tax that was included  within the total amount for the transaction. This should be included  in the total 'amount' of the transaction.\n\nAmount is specified a decimal place e.g. $1.5 = 150.\n\n<i>The required number of decimal places for a currency code is according to ISO 4217.</i>","type":"integer"},"surcharge_amount":{"title":"Surchange Amount","description":"An optional additional amount representing the surcharge associated with a payment. This should be included in the total 'amount' of the transaction.\n\nAmount is specified without a decimal place e.g. $1.5 = 150.\n\n<i>The required number of decimal places for a currency code is according to ISO 4217.</i>","type":"integer"}}},"EcomResponseCard":{"type":"object","properties":{"id":{"type":"string","title":"Transaction ID","format":"uuid-flexible","description":"The ID of the transaction."},"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."},"blocked":{"type":"boolean","description":"True if the transaction has been blocked by a ruleset, false otherwise"},"created_at":{"type":"string","description":"The time at which the transaction was created.","format":"date-time"},"customer":{"type":"string","description":"The ID of a customer"},"merchant_reference":{"type":"string","description":"A reference specified by the merchant to identify the transaction"},"payment_product":{"type":"string","description":"The payment product corresponding to this transaction"},"payment_product_type":{"type":"string","description":"The name of the processor used for this transaction"},"processor_reference":{"type":"string","description":"Reference identifying the transaction, as provided by the processor."},"processor_details":{"type":"object","description":"Stores all details specific for the processor of the transaction."},"status":{"type":"string","description":"The outcome of the payment request.","title":"Ecommerce Transaction Status","enum":["INITIATED","AUTHORIZED","AUTHORIZATION_VOIDED","CANCELLED","CUSTOMER_ACCEPTED","REFUNDED","FAILED","PENDING","DECLINED","SETTLEMENT_CANCELLED","SETTLEMENT_REQUESTED","SETTLEMENT_SUBMITTED","SETTLEMENT_COMPLETED","SETTLEMENT_PARTIAL","SETTLEMENT_DECLINED","VOIDED","UNKNOWN"]},"status_reason":{"type":"string","description":"Message provided by the 3rd party service as additional information, when the transaction does not succeed."},"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"}]},"arn":{"type":"string","description":"Acquirer reference number. Generated by the Acquirer at the time of clearing for card transactions."},"authorization_code":{"type":"string","description":"* When the payment is authorized successfully, this field holds the authorization code for the payment.\n\n* When the payment is not authorized, this field is not returned.","maxLength":6},"avs_result":{"type":"string","description":"Address verification services result, which provides information about the outcome of the AVS check. The full list of codes and descriptions can be found <a href=\"https://docs.verifone.com/online-payments/fraud-management/address-verification-service-avs\">here</a>","enum":["A","B","C","D","E","F","G","I","K","L","M","N","O","P","R","S","T","U","W","X","Y","Z"]},"card":{"type":"string","description":"The token representing the payment card"},"created_by":{"type":"string","description":"The ID of the user who initiated the transaction. Only set when shopper_interaction = moto, mail_order or telephone_order"},"cvv_present":{"type":"boolean","description":"True if the card was used with a cvv"},"cvv_result":{"type":"string","description":"The CVC verification result, which provides information about the outcome of the CVC check.\n\n CVC-CVV result codes:\n * `0` Unknown\n * `1` Matches.\n * `2` Doesn't match.\n * `3` Not checked.\n * `4` No CVC/CVV provided, but was required.\n * `5` Issuer not certified for CVC/CVV.\n * `6` No CVC/CVV provided.\n\n<strong>The following are included only for backwards compatibility. They are deprecated and will be removed in the next major release. The client must take action now to ensure ongoing support.</strong>\n * `M` Match\n * `Y` Match\n * `N` No Match\n * `P` Not Processed\n * `S` CVV Should be present, but Merchant indicates not present.\n * `U` Issuer not certified or registered to process card verification.","enum":["0","1","2","3","4","5","6","9","M","Y","N","P","S","U"]},"cavv_result":{"type":"string","description":"This field will be populated for any Verified by Visa transaction and AVV Authorisation message sent by MasterCard SecureCode: This includes CAVV and AEVV from American Express SafeKey.\n\n\n CAVV Transaction Response Code Values:\n\n* `0` CAVV or AEVV Not Validated due to erroneous data submitted.\n\n\n* `1` CAVV or AEVV Failed Validation - Authentication Transaction. This is an indication of potential bad or fraudulent data submitted.\n\n\n* `2` CAVV or AEVV Passed Validation – Authentication Transaction.\n\n\n* `3` CAVV or AEVV Passed Validation – Attempted Authentication Transaction. (Determined that the Issuer ACS generated this value from the use of the Issuer’s CAVV/AEVV key[s]).\n\n\n* `4` CAVV or AEVV Failed Validation – Attempted Authentication Transaction. Attempted Authentication Transaction. This is an indication of potential bad or fraudulent data submitted as the CAVV/AEVV. (Determined that Visa generated this value from the use of CAVV/AEVV key[s]).\n\n\n* `5` Reserved.\n\n\n* `6` CAVV or AEVV Not Validated – Issuer not participated. This value is generated when an Issuer requests the `do not verify` flag to be established for its BINs. This parameter enables an Issuer to temporarily stop CAVV/AEVV verification while resolving CAVV/AEVV key issues. VisaNet processes this value as a valid CAVV/AEVV.\n\n\n* `7` CAVV or AEVV Failed Validation – Attempted Authentication Transaction. This is an indication of potential bad or fraudulent data submitted as the CAVV/AEVV. (CAVV/AEVV generated with Visa Key).\n\n\n* `8` CAVV or AEVV Passed Validation – Attempted Authentication Transaction. (CAVV/AEVV generated with Visa Key).\n\n\n* `9` CAVV or AEVV Failed Validation – Attempted Authentication Transaction. This is an indication of potential bad or fraudulent data submitted as the CAVV/AEVV (CAVV/AEVV generated with Visa Key – Issuer ACS unavailable).\n\n\n* `99` An unknown value was returned from the processor.\n\n\n* `A` CAVV or AEVV Passed Validation – Attempted Authentication Transaction. (CAVV/AEVV generated with Visa Key – Issuer ACS unavailable).\n\n\n* `B` CAVV or AEVV Failed Validation – Attempted Authentication Transaction. This is an indication of potential bad or fraudulent data submitted as the CAVV/AEVV. (CAVV/AEVV generated with Visa Key).\n\n\n* `C` CAVV or AEVV Not Validated – Attempted Authentication Transaction. Issuer did not return a CAVV/AEVV results code in the authorisation response. VisaNet will treat this as valid CAVV/AEVV if the Issuer approves the authorisation.\n\n\n* `D` CAVV or AEVV Not Validated – Authentication. Issuer did not return a CAVV/AEVV results code in the authorisation response. VisaNet will treat this as valid CAVV/AEVV if the Issuer approves the authorisation.\n\n\n* `I` Invalid Security Data.\n\n\n* `U` Issuer does not participate or 3-D Secure data not utilised.\n\n\n* `NA` Blank CAVV or AEVV Not Present.\n\n\n","enum":["0","1","2","3","4","5","6","7","8","9","99","A","B","C","D","I","U","NA"]},"invoice_number":{"type":"string","title":"Invoice Number","description":"Optional. The invoice number to track this payment.","maxLength":127},"stored_credential":{"allOf":[{"$ref":"#/components/schemas/StoredCredential","description":"Defines a recurring payment type"}]},"details":{"$ref":"#/components/schemas/Details"},"reason_code":{"type":"string","description":"A reason code assigned by the acquiring platform; '0000' in case of success","maxLength":4},"rrn":{"type":"string","description":"A client (user friendly) identifier for the transaction generated at the outset of a business event. The format will be dependent on the calling system.\n\nA reference supplied by the system retaining the original source information and used to assist in locating that transaction or a copy of the transaction. This value is critical in matching values that are sent to other Payment processors or Acquirers.\n This value would correspond to the **ISO8583 specification as RRN in attribute DE 37, which limits the value to being an alphanumeric value 12 characters.**\n\n For the GSC client android application the format will correspond to <strong>YYMMdd<stan 6 digits></strong>.","maxLength":12},"shopper_interaction":{"type":"string","description":"Determines the point of sale of a customer. Possible values: pos, moto, mail_order, telephone_order, ecommerce and cont_auth","enum":["ECOMMERCE","MAIL","TELEPHONE"]},"stan":{"type":"string","description":"System Trace Audit Number."},"threed_authentication":{"allOf":[{"$ref":"#/components/schemas/ThreedAuthentication","description":"MPI authentication data. Please refer to the integration guide for information on its usage."}]},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","enum":["NONE","REQUIRED","COMPLETED"],"default":"NONE"},"geo_location":{"type":"array","description":"The latitude / longitude resolved from the customer's ip address.","items":{"type":"number"}},"city":{"type":"string","description":"The city resolved from the customer's ip address."},"country_code":{"type":"string","description":"The country code resolved from the customer's ip address."},"additional_data":{"$ref":"#/components/schemas/AdditionalData"},"token_details":{"allOf":[{"$ref":"#/components/schemas/TokenDetails","description":"This object is returned as the response to a request for Create/Update Token."}]},"promo_code":{"type":"string","description":"A code defined by the merchant that affects the calculation of the total amount."},"promo_financing_result":{"$ref":"#/components/schemas/PromoFinancingResults"},"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},"issuer_instalment_result":{"$ref":"#/components/schemas/ecomPaymentResponse_issuer_instalment_result"},"balance_amount":{"type":"integer","title":"balanceAmount","description":"Balance amount is the amount remaining on a card or account of cardholder without a decimal place e.g. $1.5 = 150.\n\nThe required number of decimal places for a currency code is according to ISO 4217. However the following table takes precedence over ISO 4217:"}}},"StoredCredential":{"type":"object","properties":{"reference":{"type":"string","description":"Reference of a successfully processed initial COF transaction. Only used by subsequent COF transactions."},"stored_credential_type":{"type":"string"},"scheme_reference":{"type":"string","description":"Scheme Reference Data received from issuer/acquirer."},"processing_model":{"type":"string","enum":["UNSCHEDULED_CREDENTIAL_ON_FILE","CREDENTIAL_ON_FILE","RECURRING","REAUTHORIZATION","NONE"],"description":"Processing model to use for COF transaction. Refer to the card integration guide for more information on the usage."},"details":{"deprecated":true,"type":"string","enum":["UNSCHEDULED_CREDENTIAL_ON_FILE","CREDENTIAL_ON_FILE","RECURRING"],"description":"Processing model to use for COF transaction. Refer to the card integration guide for more information on the usage."}}},"Details":{"type":"object","properties":{"auto_capture":{"type":"boolean"},"mid":{"type":"string","format":"integer","description":"Merchant ID (MID)"}}},"ThreedAuthentication":{"type":"object","properties":{"eci_flag":{"type":"string","description":"Electronic Commerce Indicator (ECI). The ECI value is part of the 2 data elements that indicate the transaction was processed electronically.This should be passed on the authorization transaction to the Gateway/Processor.Please refer to the integration guide for information on its usage.","enum":["05","06","07","02","01","00"]},"enrolled":{"type":"string","enum":["Y","N","U","B"],"description":"The enrolment response status of Authentication eligibility from the Directory Server.\n\nPossible Values:\n\n * `Y` - Yes, Bank is participating in 3-D Secure protocol and will return the ACSUrl.\n\n * `N` - No, Bank is not participating in 3-D Secure protocol.\n\n * `U` - Unavailable,  the DS or ACS is not available for authentication at the time of the request.\n\n * `B` - Bypass, merchant authentication rule is triggered to bypass authentication in this use case.\n\nNOTE: If the Enrolled value is NOT Y, then the Consumer is NOT eligible for Authentication."},"cavv":{"type":"string","minLength":28,"maxLength":48,"description":"Cardholder Authentication Verification Value (CAVV). Base64-encoded values of 28 or 32 characters. Hex-encoded values of 40 or 48 characters."},"cavv_algorithm":{"type":"string","description":"The algorithm used to generate the CAVV value. Supported for 3D Secure v1 only."},"pares_status":{"type":"string","enum":["Y","N","U","A","C","R"],"description":"Authentication response code.\n\nPossible Values:\n\n * `Y` - Successful Authentication.\n\n * `N` - Failed Authentication.\n\n * `U` - Unable to Complete Authentication\n\n * `A` - Successful Attempts Transaction.\n\n * `C` - Challenge Required for Authentication.\n\n * `R` - Authentication Rejected."},"xid":{"type":"string","description":"The transaction identifier assigned by Directory Server. Supported for 3D Secure v1 only."},"threeds_version":{"type":"string","enum":["1.0.2","2.1.0","2.2.0"],"description":"The 3DS version used to process the transaction."},"ds_transaction_id":{"type":"string","description":"The unique transaction identifier assigned by the Directory Server. Supported for 3D Secure v2 only."}}},"AdditionalData":{"type":"object","additionalProperties":false,"description":"Additional payment result data, which may be required to return in a particular payment response.","properties":{"acquirer_response_code":{"$ref":"#/components/schemas/acquirerResponseCode"},"acquirer_response_message":{"$ref":"#/components/schemas/acquirerResponseMessage"},"acquirer_authorizing_network_id":{"$ref":"#/components/schemas/acquirerAuthorizingNetworkID"},"acquirer_authorizing_network_id_descriptor":{"$ref":"#/components/schemas/acquirerAuthorizingNetworkIdDescriptor"},"initiator_trace_id":{"$ref":"#/components/schemas/initiatorTraceId"},"settlement_date":{"$ref":"#/components/schemas/settlementDate"},"issuer_receipt_text":{"type":"string","description":"Additional text to print on transaction receipt, which optionally may be provided by the Issuer."}}},"acquirerResponseCode":{"description":"Acquirer response returned during the authorisation.","type":"string","maxLength":4},"acquirerResponseMessage":{"description":"The response description generated by the acquirer corresponding to the acquirer response code.","type":"string"},"acquirerAuthorizingNetworkID":{"description":"The Network ID returned in the original authorization response.","type":"string"},"acquirerAuthorizingNetworkIdDescriptor":{"description":"The name or descriptor that corresponds with the `acquirer_authorizing_network_id`  returned in the original authorization response.","type":"string"},"initiatorTraceId":{"description":"A number assigned by a transaction initiator(originator) to assist in identifying a transaction uniquely. The trace identifier remains unchanged for all messages within a two-message exchange, e.g. request/repeat and response. This property can be used to store the System trace audit number (STAN) as used in the ISO8583 specification (DE 11). Note the contents of this field are mandatory in many specifications - ISO8583, AS2805 (DE11) and are often related to the Retrieval Reference Number (RRN) as also specified in ISO8583. Unfortunately due to the usage in these earlier specifications, a STAN was limited to 6 digits which means that it cannot be utilised as a general purpose unique id. In addition, this entry is often printed on the receipt at a POI.\n This value will correspond to **ISO8583 DE11.**\n `Note: Use response.stan value for initiator_trace_id`","type":"string","maxLength":40,"deprecated":true},"settlementDate":{"description":"This will reflect either the desired Merchant settlement date or the actual settlement date depending where the transaction request is within the payment lifecycle. A transaction may be assigned an intended settlement date, but it is possible that this date will not occur for technical reasons hence there should be a subsequent event to indicate the actual date of settlement. Format is date only as per RFC 3339.","type":"string","format":"date"},"TokenDetails":{"type":"object","properties":{"reuse_token":{"type":"string","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.","type":"string","enum":["CHASE","INTERNAL","TAVE"]},"analytics_token":{"type":"string","description":"A token that cannot be reversed to Card Holder data. This is included in a Payment for auditing and tracking purposes."},"token_expiry_date":{"type":"string","format":"date","description":"When this Token will expire."},"token_scope":{"type":"string","format":"uuid","description":"The token scope under which this token was created."},"token_status":{"type":"string","enum":["DELETED","ACTIVE","SUSPENDED"],"description":"The status of the Token."},"created_at":{"type":"string","format":"date","description":"The date when this token was first created."},"updated_at":{"type":"string","format":"date","description":"The last date token was updated."},"variant":{"type":"string","description":"The variant of the card. eg. NEW_WORLD"},"type":{"type":"string","enum":["CREDIT","DEBIT"],"description":"The type of card application or account selection."},"issuer_name":{"type":"string","description":"The issuer of this card. eg. HSBC, BARCLAYS."},"issuer_country":{"$ref":"#/components/schemas/issuerCountryEnum"},"brand":{"type":"string","description":"The brand of this card. eg. VISA, MASTERCARD, AMEX."},"expiry_year":{"type":"integer","description":"A 4 digit value as shown on card.","maximum":9999},"expiry_month":{"type":"integer","description":"A 2 digit value as shown on card. ISO8583 - DE 14","maximum":12},"card_holder_name":{"type":"string","description":"The Card holder name as it appears on the card.","maxLength":30},"last_four":{"type":"string","description":"The last 4 digits of the card number.","maxLength":4},"bin":{"type":"string","description":"The Bank Identification Number (also called IIN - Issuer Identification Number) of this card.","minLength":4,"maxLength":11},"currency_code":{"type":"string","title":"Currency Code","description":"Three-letter ISO 4217 alphabetical currency code. e.g. USD. Values correspond\nto [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"]}}},"issuerCountryEnum":{"type":"string","description":"The [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as is used in that country's top-level domain names.</blockquote>.","enum":["ZZZ","ABW","AFG","AGO","AIA","ALA","ALB","AND","ARE","ARG","ARM","ASM","ATA","ATF","ATG","AUS","AUT","AZE","BDI","BEL","BEN","BES","BFA","BGD","BGR","BHR","BHS","BIH","BLM","BLR","BLZ","BMU","BOL","BRA","BRB","BSB","BRN","BTN","BVT","BWA","CAF","CAN","CCK","CHE","CHL","CHN","CIV","CMR","COD","COG","COK","COL","COM","CPV","CRI","CUB","CUW","CXR","CYM","CYP","CZE","DEU","DJI","DMA","DNK","DOM","DZA","ECU","EGY","ERI","ESH","ESP","EST","ETH","FIN","FJI","FLK","FRA","FRO","FSM","GAB","GBR","GEO","GGY","GHA","GIB","GIN","GLP","GMB","GNB","GNQ","GRC","GRD","GRL","GTM","GUF","GUM","GUY","HKG","HMD","HND","HRV","HTI","HUN","IDN","IMN","IND","IOT","IRL","IRN","IRQ","ISL","ISR","ITA","JAM","JEY","JOR","JPN","KAZ","KEN","KGZ","KHM","KIR","KNA","KOR","KWT","LAO","LBN","LBR","LBY","LCA","LIE","LKA","LSO","LTU","LUX","LVA","MAC","MAF","MAR","MCO","MDA","MDG","MDV","MEX","MHL","MKD","MLI","MLT","MMR","MNE","MNG","MNP","MOZ","MRT","MSR","MTQ","MUS","MWI","MYS","MYT","NAM","NCL","NER","NFK","NGA","NIC","NIU","NLD","NOR","NPL","NRU","NZL","OMN","PAK","PAN","PCN","PER","PHL","PLW","PNG","POL","PRI","PRK","PRT","PRY","PSE","PYF","QAT","REU","ROU","RUS","RWA","SAU","SDN","SEN","SGC","SGP","SHN","SJM","SLB","SLE","SLV","SMR","SOM","SPM","SRB","SSD","STP","SUR","SVK","SVN","SWE","SWZ","SXM","SYC","SYR","TCA","TCD","TGO","THA","TJK","TKL","TKM","TLS","TON","TTO","TUN","TUR","TUV","TWN","TZA","UGA","UKR","UMI","URY","USA","UZB","VAT","VCT","VEN","VGB","VIR","VNM","VUT","WLF","WSM","YEM","ZAF","ZMB","ZWE"]},"PromoFinancingResults":{"title":"Promo Financing Results","type":"object","description":"Details of the special financing offer returned from the issuer.","properties":{"promoFinancingType":{"description":"Type of special financing information provided. * `PROMO_APR ` - APR information provided only for the duration of the promo period; * `PROMO_AND_AFTER_APR ` - APR information provided for the duration of and after the promo period; * `PROMO_AND_AFTER_APR ` - No promotional financing available; * `ERROR ` - error.","type":"string","enum":["PROMO_APR","PROMO_AND_AFTER_APR","NO_PROMO","ERROR"]},"promoAnnualPercentageRateType":{"description":"The type of APR applicable during promo period.","type":"string","enum":["FIXED","VARIABLE"]},"promoAnnualPercentageRate":{"description":"The interest rate expressed in Annual Percentage Rate (APR), applicable during the promo period.","type":"number","format":"float"},"annualPercentageRateType":{"description":"The type of APR applicable after promo period.","type":"string","enum":["FIXED","VARIABLE"]},"annualPercentageRate":{"description":"The interest rate expressed in Annual Percentage Rate (APR).","type":"number","format":"float"},"promoDurationDescription":{"description":"Information or description of the promo period duration, e.g. 6 months","type":"string"},"promoDescription":{"description":"Description of the promotional financing plan.","type":"string"}}},"ecomPaymentResponse_issuer_instalment_result":{"type":"object","properties":{"instalment_program":{"type":"string","description":"The name of special program designated by scheme or issuer.","enum":["MCINST"]},"payment_option":{"type":"string","description":"Available payment mode allowed by issuer for the transaction.","enum":["FULL","FULL_OR_INSTALMENT","INSTALMENT"]},"payment_plan_option":{"type":"array","description":"The issuer may offer more than one instalment options within certain instalment programs.","items":{"$ref":"#/components/schemas/paymentPlanOption"}},"number_of_instalments":{"minimum":0,"type":"integer","description":"The number of individual parts that the total amount should be paid in."},"min_number_of_instalments":{"type":"integer","description":"The minimal number of individual parts that the total amount could be paid in, if choice is available."},"max_number_of_instalments":{"type":"integer","description":"The maximal number of individual parts that the total amount could be paid in, if choice is available."},"interest_rate":{"type":"number","description":"The interest rate.","format":"float"},"annual_percentage_rate":{"type":"number","description":"The interest rate expressed in Annual Percentage Rate.","format":"float"},"handling_fee":{"$ref":"#/components/schemas/amountDecimal"},"down_payment_amount":{"$ref":"#/components/schemas/amountDecimal"},"instalment_amount":{"$ref":"#/components/schemas/amountDecimal"},"total_amount_with_cost":{"$ref":"#/components/schemas/amountDecimal"}},"additionalProperties":false,"description":"Issuer-managed instalment response. May be used to inform on supported instalment options for the transaction in specific programs (e.g., Mastercard Instalment Payment Service)."},"paymentPlanOption":{"title":"Instalment payment plan option","type":"object","properties":{"number_of_instalments":{"minimum":1,"type":"integer","description":"The number of individual parts that the total amount should be paid in."},"first_instalment_amount":{"$ref":"#/components/schemas/amountDecimal"},"instalment_amount":{"$ref":"#/components/schemas/amountDecimal"},"interest_rate":{"type":"number","description":"The interest rate.","format":"float"},"annual_percentage_rate":{"type":"number","description":"The interest rate expressed in Annual Percentage Rate.","format":"float"},"handling_fee":{"$ref":"#/components/schemas/amountDecimal"},"total_amount_with_cost":{"$ref":"#/components/schemas/amountDecimal"}},"description":"An instalment plan option available for the transaction. Instalments are managed by the issuer. To the merchant this is just another transaction."},"amountDecimal":{"type":"number","description":"Amount including decimal place."},"BadRequestV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[400],"default":400},"message":{"type":"string","enum":["At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."],"default":"At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."}},"required":["message"]},"UnauthorizedV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[401],"default":401},"message":{"type":"string","enum":["Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."],"default":"Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."}},"required":["message"]},"ForbiddenV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[403],"default":403},"message":{"type":"string","enum":["Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."],"default":"Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."}},"required":["message"]},"NotFoundV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[404],"default":404},"message":{"type":"string","enum":["The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."],"default":"The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."}},"required":["message"]},"InternalErrorV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[500],"default":500},"message":{"type":"string","enum":["Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"],"default":"Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"}},"required":["message"]}}},"paths":{"/api/v2/transactions/card":{"post":{"operationId":"saleTransaction","summary":"Initiate a payment","description":"Initiate a card payment or card verification request when amount is set to 0 (zero).\n\n <b>Transactions business models</b>\n\n| Business model | Transaction type | Shopper Interaction | Stored Credential Contract | Stored Credential Processing Model |\n| -------------- | ---------------- | ------------------- | ------------------ | -------------------------- |\n| Online purchase with shopper present | One-off online purchase without storing card payment details for future use.| `ECOMMERCE` | | |\n| Online purchase with shopper present | Online purchase where shopper agrees to store card details for future use. This can be a zero-value transaction account verification.| `ECOMMERCE` |  | `CREDENTIAL_ON_FILE` |\n| Online purchase with shopper present | Online purchase where shopper uses previously stored card payment details.| `ECOMMERCE` | `ONE_CLICK` | `CREDENTIAL_ON_FILE` |\n| Subscriptions | Initial transaction to sign up for a subscription.| `ECOMMERCE` |  | `RECURRING` |\n| Subscriptions | Subsequent subscription charge. | `ECOMMERCE` | `MERCHANT_INITIATED` | `RECURRING` |\n| Non-fixed in time contracts (such as auto account top-ups) | Initial transaction to sign up for the terms and conditions of later subsequent charges. | `ECOMMERCE` |  | `UNSCHEDULED_CREDENTIAL_ON_FILE` |\n| Non-fixed in time contracts (such as auto account top-ups) | Subsequent charges as described in the initial terms and conditions during the sign-up transaction. | `ECOMMERCE` | `MERCHANT_INITIATED` | `UNSCHEDULED_CREDENTIAL_ON_FILE` |","parameters":[{"name":"x-vfi-api-idempotencykey","required":false,"in":"header","schema":{"type":"string","description":"A value you specify that uniquely identifies this transaction. This must be used to trigger a reversal if there is a timeout.","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/EncryptedCardPaymentRequest"},{"$ref":"#/components/schemas/TokenPaymentRequest"}]}}}},"responses":{"201":{"description":"Ecommerce Payment Result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EcomResponseCard"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestV2Docs"}}}},"401":{"description":"Unauthorised","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedV2Docs"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenV2Docs"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundV2Docs"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalErrorV2Docs"}}}}},"tags":["Ecom Payments"]}}}}
```

## Initiate a wallet payment using Google Pay or Apple Pay

> Initiate a card payment or card verification request when amount is set to 0 (zero).\
> \
> &#x20;\<b>Transactions business models\</b>\
> \
> \| Business model | Transaction type | Shopper Interaction | Stored Credential Contract | Token Preference or Reference | Stored Credential Request Type | Stored Credential Processing Model |\
> \| ------------------- | ---------------- | ------------------- | ------------------ | ------------------ | ---------------- | -------------------------- |\
> \| Online purchase with shopper present | One-off online purchase without storing card payment details for future use.| \`ECOMMERCE\` | | | | |\
> \| Online purchase with shopper present | Online purchase where shopper agrees to store card details for future use. This can be a zero-value transaction account verification.| \`ECOMMERCE\` |  | \`REUSE\` | \`SIGNUP\` | \`NONE\` |\
> \| Subscriptions | Initial transaction to sign up for a subscription.| \`ECOMMERCE\` |  | \`REUSE\` or \`reuse\_token\` | \`SIGNUP\` | \`RECURRING\` |\
> \| Non-fixed in time contracts (such as auto account top-ups) | Initial transaction to sign up for the terms and conditions of later subsequent charges. | \`ECOMMERCE\` |  | \`REUSE\` | \`SIGNUP\` | \`NONE\` |\
> \<p>\<i>Note\</i>: To initiate a transaction with reference to previously stored credentials ( \`CHARGE\` ) use \`\`/v2/transactions/card\`\` endpoint instead.\</p>

```json
{"openapi":"3.0.0","info":{"title":"Verifone eCommerce API","version":"2.38.1"},"servers":[{"url":"https://emea.gsc.verifone.cloud/oidc","description":"EMEA Production"},{"url":"https://us.gsc.verifone.cloud/oidc","description":"Americas Production"},{"url":"https://nz.gsc.verifone.cloud/oidc","description":"New Zealand Production"},{"url":"https://cst.test-gsc.vfims.com/oidc","description":"Global Sandbox"},{"url":"https://uscst-gb.gsc.vficloud.net/oidc","description":"Americas Sandbox"}],"security":[{"BasicAuth":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic"}},"schemas":{"CreateWalletDto":{"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},"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"}}}]},"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":{"$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"},"encrypted_cvv":{"type":"string","title":"The encrypted cvv Card","description":"This is an optional field that is only supported with `reuse_token` or `stored_credentials.reference`."},"brand_choice":{"type":"string","description":"For dual-branded cards identifies whether selection is made by a cardholder or merchant.","enum":["MERCHANT","CARDHOLDER"],"default":"MERCHANT"},"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"]},"token_preference":{"allOf":[{"$ref":"#/components/schemas/TokenPreferenceDto","title":"Token Preference","description":"Contains the properties required to create a token"}]},"wallet_type":{"type":"string","enum":["APPLE_PAY","GOOGLE_PAY"]},"wallet_payload":{"type":"object","description":"The encrypted payload object provided by the Wallet on the frontend"},"sca_compliance_level":{"type":"string","description":"Determines if 3ds is needed:\n\nsca_compliance_level | WalletPayload authMethod | Additional 3ds\r\n--- | --- | ---\r\nNONE | N/A | NO\r\nWALLET | PAN_ONLY | YES\r\nWALLET | 3DS_CRYPTOGRAM | NO\r\nFORCE_3DS | N/A | YES\r\n","enum":["NONE","WALLET","FORCE_3DS"],"default":"WALLET"},"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"},"additional_data":{"type":"object","additionalProperties":false,"description":"Additional information for transaction, which may be required in a particular payment request.","properties":{"program_support":{"type":"array","description":"List of supported special programs. Can be used to indicate capability to process enhanced response data.","items":{"type":"string","enum":["MCINST"]}}}}},"required":["payment_provider_contract","amount","currency_code","wallet_type","wallet_payload"]},"ThreedAuthenticationDto":{"type":"object","properties":{"eci_flag":{"type":"string","description":"Electronic Commerce Indicator (ECI). The ECI value is part of the 2 data elements that indicate the transaction was processed electronically.This should be passed on the authorization transaction to the Gateway/Processor.Please refer to the integration guide for information on its usage.","enum":["05","06","07","02","01","00"]},"enrolled":{"type":"string","enum":["Y","N","U","B"],"description":"The enrolment response status of Authentication eligibility from the Directory Server.\n\nPossible Values:\n\n * `Y` - Yes, Bank is participating in 3-D Secure protocol and will return the ACSUrl.\n\n * `N` - No, Bank is not participating in 3-D Secure protocol.\n\n * `U` - Unavailable,  the DS or ACS is not available for authentication at the time of the request.\n\n * `B` - Bypass, merchant authentication rule is triggered to bypass authentication in this use case.\n\nNOTE: If the Enrolled value is NOT Y, then the Consumer is NOT eligible for Authentication."},"cavv":{"type":"string","minLength":28,"maxLength":48,"description":"Cardholder Authentication Verification Value (CAVV). Base64-encoded values of 28 or 32 characters. Hex-encoded values of 40 or 48 characters."},"cavv_algorithm":{"type":"string","description":"The algorithm used to generate the CAVV value. Supported for 3D Secure v1 only."},"pares_status":{"type":"string","enum":["Y","N","U","A","C","R"],"description":"Authentication response code.\n\nPossible Values:\n\n * `Y` - Successful Authentication.\n\n * `N` - Failed Authentication.\n\n * `U` - Unable to Complete Authentication\n\n * `A` - Successful Attempts Transaction.\n\n * `C` - Challenge Required for Authentication.\n\n * `R` - Authentication Rejected."},"xid":{"type":"string","description":"The transaction identifier assigned by Directory Server. Supported for 3D Secure v1 only."},"threeds_version":{"type":"string","enum":["1.0.2","2.1.0","2.2.0"],"description":"The 3DS version used to process the transaction."},"ds_transaction_id":{"type":"string","description":"The unique transaction identifier assigned by the Directory Server. Supported for 3D Secure v2 only."},"signature_verification":{"type":"string","enum":["Y","N"],"description":"Transaction Signature status identifier.\n\n Possible Values:\n\n *  `Y` - Indicates that the signature of the PARes has been validated successfully and the message contents can be trusted.\n\n * `N` - Indicates that the PARes could not be validated. This result could be for a variety of reasons; tampering, certificate expiration, etc., and the result should not be trusted."},"verification":{"type":"array","description":"Any verification/authentication responses captured as part of the submission of the transaction. e.g. 3DS response values or ACRQ/ARCP. For some mPos transactions the verification may be performed on-device e.g. ApplePay, Face ID or Touch ID.","items":{"type":"string","enum":["DENIED","NON_PARTICIPATION","UNABLE_TO_AUTHENTICATE","MERCHANT_NOT_ENROLLED","WITH_CRYPTOGRAM","WITHOUT_CRYPTOGRAM"]}},"error_desc":{"type":"string","description":"Application error description for the associated error number(s).\n\n NOTE: Multiple error descriptions are separated by a comma."},"error_no":{"type":"string","description":"Application error number(s). A non-zero value represents the error encountered while attempting to process the message request.\n\n NOTE: Multiple error numbers are separated by a comma."},"authentication_amount":{"type":"integer","title":"amount","description":"Amount is charged without a decimal place e.g. $1.5 = 150.\nThe required number of decimal places for a currency code is according to ISO 4217.\nFor Account Verification transactions, provide 0 as value for this field."},"additional_data":{"allOf":[{"$ref":"#/components/schemas/AdditionalDataDto","description":"Additional 3DS data, which may be required in the particular payment request."}]}}},"AdditionalDataDto":{"type":"object","properties":{"total_items":{"type":"number","description":"Number of purchased items or services.","minimum":0,"maximum":99},"device_channel":{"type":"string","enum":["SDK","BROWSER"],"description":"Determines the channel that the transaction came through."},"status_reason":{"type":"string","description":"Provides additional information as to why the PAResStatus has the specific value.\n\n **NOTE**: Required for Payment (e.g. Authentication Indicator equals 01 on Lookup Request) transactions when PAResStatus is equal to N, U, or R in the Lookup Response."},"challenge_indicator":{"type":"string","enum":["01","02","03","04","90"],"description":"This is a 2.0 required field. Possible values are:\n\n * `01` No preference\n\n * `02` No challenge requested\n\n * `03` Challenge requested (3DS Requestor preference)\n\n * `04` Challenge requested (Mandate)\n\n * `90` Used to call the CB Scoring platform"},"challenge_cancel":{"type":"string","enum":["01","02","03","04","05","06","07"],"description":"Indicator informing the ACS and the DS that the authentication has been cancelled.\n\n Possible values are:\n\n * `01` Cardholder selected “Cancel”\n\n * `02` 3DS Requestor cancelled Authentication.\n\n * `03` Transaction Abandoned\n\n * `04` Transaction Timed Out at ACS — other timeouts\n\n * `05` Transaction Timed Out at ACS — First CReq not received by ACS\n\n * `06` Transaction Error\n\n * `07` Unknown"},"acs_url":{"type":"string","maxLength":2048,"description":"The fully qualified URL to redirect the Consumer to complete the Consumer Authentication transaction.\n\n **NOTE**: Available if Enrolled = Y"},"acs_operator_id":{"type":"string","maxLength":32,"description":"DS assigned ACS identifier. Each DS can provide a unique ID to each ACS on an individual basis."},"network_score":{"type":"string","maxLength":2,"format":"number","description":"The global score calculated by the CB Scoring platform."},"reason_code":{"type":"string","description":"The error code indicating a problem with this transaction."},"reason_desc":{"type":"string","description":"Text and additional detail about the error for this transaction. NOTE: This field concatenates the errorDescription and errorDetail from the authentication response message."}}},"StoredCredentialDto":{"type":"object","properties":{"stored_credential_type":{"type":"string","enum":["SIGNUP","CHARGE"],"description":"The definition of a stored credential payment."},"processing_model_details":{"allOf":[{"$ref":"#/components/schemas/ProcessingModelDetailsDto"}]},"first_payment":{"type":"boolean","description":"Whether auto-capture or not. Setting this to 'false' will only authorize the transaction."},"scheme_reference":{"type":"string","description":"Scheme Reference Data returned in the initial transaction"}},"required":["stored_credential_type","processing_model_details"]},"ProcessingModelDetailsDto":{"type":"object","properties":{"total_payment_number":{"type":"number","description":"Total paymant Number."},"total_payment_amount":{"type":"number","description":"total Payment Amount."},"first_payment_amount":{"type":"number","description":"first Payment Amount."},"payment_frequency":{"allOf":[{"$ref":"#/components/schemas/PaymentFrequency"}]},"processing_model":{"type":"string","enum":["UNSCHEDULED_CREDENTIAL_ON_FILE","CREDENTIAL_ON_FILE","RECURRING","NONE","REAUTHORIZATION"],"description":"Processing model to use for COF transaction. Refer to the card integration guide for more information on the usage."},"merchant_signup_code":{"type":"string","description":"A pre-defined signup code between the merchant and the acquirer."},"current_payment_number":{"type":"number","description":"The current number of recurring payments."},"amount_fixed":{"type":"boolean","default":false,"description":"Set `true` to indicate that recurring charges are of the same amount (often used for subscriptions), and set `false` to indicate variable amount between charges (often used for standing orders with fixed schedule)."}},"required":["processing_model"]},"PaymentFrequency":{"type":"object","properties":{"time_unit":{"type":"string","enum":["DAY","WEEK","MONTH","YEAR"],"description":"Processing model to use for COF transaction. Refer to the card integration guide for more information on the usage."},"value":{"type":"number","description":"Value."}},"required":["time_unit"]},"ShippingInformation":{"type":"object","properties":{"address":{"type":"string","maxLength":300,"description":"Street address of the recipient."},"city":{"type":"string","maxLength":28,"description":"City of the recipient."},"country":{"type":"string","maxLength":2,"minLength":2,"format":"country-code","description":"A 2-letter ISO3166 alpha-2 country code for the address."},"postal_code":{"type":"string","minLength":1,"maxLength":16,"description":"A postal code for the address."},"email":{"type":"string","title":"Email Address","minLength":3,"maxLength":254,"format":"email","description":"A valid internationalized email address, as defined by RFC 5322, RFC 6530, and other RFCs. Due to RFC 5321, an email address can be up to 254 characters long even though up to 64 characters are allowed before and 255 characters are allowed after the @ sign. This pattern verifies only that the string contains an unquoted @ sign. See https://tools.ietf.org/html/rfc5322#section-3.4.1."},"first_name":{"type":"string","maxLength":100,"description":"First name of the recipient."},"last_name":{"type":"string","maxLength":100,"description":"Last name of the recipient."},"phone":{"type":"number","maxLength":15,"description":"Numbers only, no dash or any other separator."},"state":{"type":"string","maxLength":35,"description":"A region / state / province for the address."}},"required":["address","city","country","postal_code"]},"CustomerDetailsDto":{"type":"object","title":"Customer","description":"Customer information containing billing and shipping details.","additionalProperties":false,"properties":{"title":{"type":"string","description":"The prefix to the party name. This is sometimes referred to as a title, salutation or appellation.","maxLength":120},"first_name":{"type":"string","description":"The first name of the Customer. This may be a proper name or some form of entity name or nickname.","maxLength":100},"middle_name":{"type":"string","description":"The middle name of the Customer. This may be a proper name or some form of entity name or nickname.","maxLength":100},"last_name":{"type":"string","description":"The last name or family name of the Customer.","maxLength":100},"company_name":{"type":"string","description":"Where the Customer is an organisation or company this name should be used rather than the firstName lastName","maxLength":100},"phone_number":{"type":"string","description":"Customers phone number for billing address.","maxLength":25},"email_address":{"type":"string","title":"email","format":"email","description":"Customer email address, which might be used during refund flow."},"shipping":{"allOf":[{"$ref":"#/components/schemas/CustomerDetailsShippingInformationDto"}]},"billing":{"allOf":[{"$ref":"#/components/schemas/BillingDto"},{"description":"The address of billing.","title":"Billing Address"}]},"language":{"type":"string","title":"language","description":"The BCP-47 language tag. The tag is composed of:\n\n* The ISO-639 alpha-1 or ISO-639 alpha-2 language code\n\n* (Optional) The ISO-15924 script tag\n\n* The ISO-3166 alpha-2 country code\n\n `NOTE:`The value is case-insensitive, so for example \"he\" and \"HE\" should be considered equal."}}},"CustomerDetailsShippingInformationDto":{"type":"object","additionalProperties":false,"description":"The address where the purchased goods should be delivered to.","title":"Shipping Address","properties":{"address":{"type":"string","maxLength":300,"description":"Street address of the recipient."},"city":{"type":"string","maxLength":28,"description":"City of the recipient."},"country":{"type":"string","maxLength":2,"minLength":2,"format":"country-code","description":"A 2-letter ISO3166 alpha-2 country code for the address."},"postal_code":{"type":"string","minLength":1,"maxLength":16,"description":"A postal code for the address."},"email":{"type":"string","title":"Email Address","minLength":3,"maxLength":254,"format":"email","description":"A valid internationalized email address, as defined by RFC 5322, RFC 6530, and other RFCs. Due to RFC 5321, an email address can be up to 254 characters long even though up to 64 characters are allowed before and 255 characters are allowed after the @ sign. This pattern verifies only that the string contains an unquoted @ sign. See https://tools.ietf.org/html/rfc5322#section-3.4.1."},"first_name":{"type":"string","maxLength":100,"description":"First name of the recipient."},"last_name":{"type":"string","maxLength":100,"description":"Last name of the recipient."},"phone":{"type":"string","maxLength":18,"description":"Telephone number."},"state":{"type":"string","maxLength":35,"description":"A region / state / province for the address."}},"required":["address","city","country","postal_code"]},"BillingDto":{"type":"object","additionalProperties":false,"properties":{"address_1":{"type":"string","maxLength":40,"description":"Customer's primary billing address information."},"address_2":{"type":"string","maxLength":40,"description":"Customer's secondary billing address information."},"address_3":{"type":"string","maxLength":40,"description":"Customer's third billing address information."},"city":{"type":"string","maxLength":28,"description":"Customer's city on their billing address"},"country":{"type":"string","title":"Country Code","description":"The ISO 3166-1 alpha-3 country code.","enum":["ZZ","AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},"phone":{"type":"string","maxLength":25,"description":"Customer's phone number for billing address. This should be un formatted without hyphens. (e.g. 4422345678)"},"postal_code":{"type":"string","maxLength":10,"description":"Customer's postal code of their billing address."},"state":{"type":"string","maxLength":35,"description":"Customer's state or province of their billing address. (e,g. Ohio = OH, Texas = TX)"}}},"CardBrand":{"type":"string","title":"The Card Type","description":"Represents a Card type or brand. It should correspond to a consistent name, the list of standard names is as follows:\n\nValue |  Description\n------|-------------\nAMEX|American Express\nCB|Carte Bancaires\nDINERS|Diners Club International\nDISCOVER|Diners Club Discover\nJCB|Japan Credit Bureau\nMAESTRO|Multi-national Debit (MasterCard)\nMASTERCARD|MasterCard\nVISA|Visa\nUPI|Union Pay International\nGIFT_CARD|Gift Card (Generic)\nPLCC|Private Label Credit Card\n**Other local schemes as applicable**. Enter a pre-defined name to represent the scheme or type. \n**Note**:  1. For gift cards, card brand is mandatory and the value should be GIFT_CARD.\n2. This parameter is mandatory for dual branded cards."},"TokenPreferenceDto":{"type":"object","properties":{"token_scope":{"type":"string","title":"Token Scope","description":"The token scope under which this token was created.","format":"uuid"},"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"},"token_type":{"type":"string","title":"Token Type","description":"Token type","enum":["REUSE","ANALYTICS","REUSE_AND_ANALYTICS"]},"token_expiry_date":{"type":"string","description":"When this Token will expire.","format":"date"}},"required":["token_scope"]},"PromoFinancingDetails":{"title":"Promo Financing","type":"object","description":"Additional details of the special financing offers to customers using private label cards, typically in combination with `promo_code` field.","properties":{"promoFinancingType":{"description":"Type of special financing information requested. Promotional information may be requested for duration of the promo only (`PROMO_APR`) or for during and after promo period (`PROMO_AND_AFTER_APR`).\",","type":"string","enum":["PROMO_APR","PROMO_AND_AFTER_APR"]},"promoPlan":{"description":"The code or name of a promotional financing plan as set up between merchant and issuer.","type":"string"},"promoPlanExpiry":{"description":"Expiry date for the requested promo plan.","type":"string","format":"date"}}},"DetailedAmount":{"title":"Detailed Amount","description":"A structure that represents a breakdown all of the different amounts that may appear on a single transaction.","type":"object","properties":{"gratuity_amount":{"description":"An optional additional amount representing the tip or gratuity associated with a payment. This should be included in the total 'amount' of the transaction.\n\nAmount is specified without a decimal place e.g. $1.5 = 150.\n\n<i>The required number of decimal places for a currency code is according to ISO 4217.</i>","type":"integer"},"tax_amount":{"title":"Tax Amount","description":"An optional value to specify the amount of any tax that was included  within the total amount for the transaction. This should be included  in the total 'amount' of the transaction.\n\nAmount is specified a decimal place e.g. $1.5 = 150.\n\n<i>The required number of decimal places for a currency code is according to ISO 4217.</i>","type":"integer"},"surcharge_amount":{"title":"Surchange Amount","description":"An optional additional amount representing the surcharge associated with a payment. This should be included in the total 'amount' of the transaction.\n\nAmount is specified without a decimal place e.g. $1.5 = 150.\n\n<i>The required number of decimal places for a currency code is according to ISO 4217.</i>","type":"integer"}}},"VerificationAdvice":{"type":"object","properties":{"advice":{"type":"string","enum":["3DS_REQUIRED"]},"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 <a target=\"_blank\" style=\"color:blue;\" href=\"https://docs.verifone.com/online-payments/api-integration-methods-auth-and-endpoints/secure-card-capture-key\">Secure card capture key</a> 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."},"public_key_alias":{"type":"string","title":"Public Key Alias","description":"The alias for the public key used to encrypt this card."}}},"EcomResponseCard":{"type":"object","properties":{"id":{"type":"string","title":"Transaction ID","format":"uuid-flexible","description":"The ID of the transaction."},"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."},"blocked":{"type":"boolean","description":"True if the transaction has been blocked by a ruleset, false otherwise"},"created_at":{"type":"string","description":"The time at which the transaction was created.","format":"date-time"},"customer":{"type":"string","description":"The ID of a customer"},"merchant_reference":{"type":"string","description":"A reference specified by the merchant to identify the transaction"},"payment_product":{"type":"string","description":"The payment product corresponding to this transaction"},"payment_product_type":{"type":"string","description":"The name of the processor used for this transaction"},"processor_reference":{"type":"string","description":"Reference identifying the transaction, as provided by the processor."},"processor_details":{"type":"object","description":"Stores all details specific for the processor of the transaction."},"status":{"type":"string","description":"The outcome of the payment request.","title":"Ecommerce Transaction Status","enum":["INITIATED","AUTHORIZED","AUTHORIZATION_VOIDED","CANCELLED","CUSTOMER_ACCEPTED","REFUNDED","FAILED","PENDING","DECLINED","SETTLEMENT_CANCELLED","SETTLEMENT_REQUESTED","SETTLEMENT_SUBMITTED","SETTLEMENT_COMPLETED","SETTLEMENT_PARTIAL","SETTLEMENT_DECLINED","VOIDED","UNKNOWN"]},"status_reason":{"type":"string","description":"Message provided by the 3rd party service as additional information, when the transaction does not succeed."},"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"}]},"arn":{"type":"string","description":"Acquirer reference number. Generated by the Acquirer at the time of clearing for card transactions."},"authorization_code":{"type":"string","description":"* When the payment is authorized successfully, this field holds the authorization code for the payment.\n\n* When the payment is not authorized, this field is not returned.","maxLength":6},"avs_result":{"type":"string","description":"Address verification services result, which provides information about the outcome of the AVS check. The full list of codes and descriptions can be found <a href=\"https://docs.verifone.com/online-payments/fraud-management/address-verification-service-avs\">here</a>","enum":["A","B","C","D","E","F","G","I","K","L","M","N","O","P","R","S","T","U","W","X","Y","Z"]},"card":{"type":"string","description":"The token representing the payment card"},"created_by":{"type":"string","description":"The ID of the user who initiated the transaction. Only set when shopper_interaction = moto, mail_order or telephone_order"},"cvv_present":{"type":"boolean","description":"True if the card was used with a cvv"},"cvv_result":{"type":"string","description":"The CVC verification result, which provides information about the outcome of the CVC check.\n\n CVC-CVV result codes:\n * `0` Unknown\n * `1` Matches.\n * `2` Doesn't match.\n * `3` Not checked.\n * `4` No CVC/CVV provided, but was required.\n * `5` Issuer not certified for CVC/CVV.\n * `6` No CVC/CVV provided.\n\n<strong>The following are included only for backwards compatibility. They are deprecated and will be removed in the next major release. The client must take action now to ensure ongoing support.</strong>\n * `M` Match\n * `Y` Match\n * `N` No Match\n * `P` Not Processed\n * `S` CVV Should be present, but Merchant indicates not present.\n * `U` Issuer not certified or registered to process card verification.","enum":["0","1","2","3","4","5","6","9","M","Y","N","P","S","U"]},"cavv_result":{"type":"string","description":"This field will be populated for any Verified by Visa transaction and AVV Authorisation message sent by MasterCard SecureCode: This includes CAVV and AEVV from American Express SafeKey.\n\n\n CAVV Transaction Response Code Values:\n\n* `0` CAVV or AEVV Not Validated due to erroneous data submitted.\n\n\n* `1` CAVV or AEVV Failed Validation - Authentication Transaction. This is an indication of potential bad or fraudulent data submitted.\n\n\n* `2` CAVV or AEVV Passed Validation – Authentication Transaction.\n\n\n* `3` CAVV or AEVV Passed Validation – Attempted Authentication Transaction. (Determined that the Issuer ACS generated this value from the use of the Issuer’s CAVV/AEVV key[s]).\n\n\n* `4` CAVV or AEVV Failed Validation – Attempted Authentication Transaction. Attempted Authentication Transaction. This is an indication of potential bad or fraudulent data submitted as the CAVV/AEVV. (Determined that Visa generated this value from the use of CAVV/AEVV key[s]).\n\n\n* `5` Reserved.\n\n\n* `6` CAVV or AEVV Not Validated – Issuer not participated. This value is generated when an Issuer requests the `do not verify` flag to be established for its BINs. This parameter enables an Issuer to temporarily stop CAVV/AEVV verification while resolving CAVV/AEVV key issues. VisaNet processes this value as a valid CAVV/AEVV.\n\n\n* `7` CAVV or AEVV Failed Validation – Attempted Authentication Transaction. This is an indication of potential bad or fraudulent data submitted as the CAVV/AEVV. (CAVV/AEVV generated with Visa Key).\n\n\n* `8` CAVV or AEVV Passed Validation – Attempted Authentication Transaction. (CAVV/AEVV generated with Visa Key).\n\n\n* `9` CAVV or AEVV Failed Validation – Attempted Authentication Transaction. This is an indication of potential bad or fraudulent data submitted as the CAVV/AEVV (CAVV/AEVV generated with Visa Key – Issuer ACS unavailable).\n\n\n* `99` An unknown value was returned from the processor.\n\n\n* `A` CAVV or AEVV Passed Validation – Attempted Authentication Transaction. (CAVV/AEVV generated with Visa Key – Issuer ACS unavailable).\n\n\n* `B` CAVV or AEVV Failed Validation – Attempted Authentication Transaction. This is an indication of potential bad or fraudulent data submitted as the CAVV/AEVV. (CAVV/AEVV generated with Visa Key).\n\n\n* `C` CAVV or AEVV Not Validated – Attempted Authentication Transaction. Issuer did not return a CAVV/AEVV results code in the authorisation response. VisaNet will treat this as valid CAVV/AEVV if the Issuer approves the authorisation.\n\n\n* `D` CAVV or AEVV Not Validated – Authentication. Issuer did not return a CAVV/AEVV results code in the authorisation response. VisaNet will treat this as valid CAVV/AEVV if the Issuer approves the authorisation.\n\n\n* `I` Invalid Security Data.\n\n\n* `U` Issuer does not participate or 3-D Secure data not utilised.\n\n\n* `NA` Blank CAVV or AEVV Not Present.\n\n\n","enum":["0","1","2","3","4","5","6","7","8","9","99","A","B","C","D","I","U","NA"]},"invoice_number":{"type":"string","title":"Invoice Number","description":"Optional. The invoice number to track this payment.","maxLength":127},"stored_credential":{"allOf":[{"$ref":"#/components/schemas/StoredCredential","description":"Defines a recurring payment type"}]},"details":{"$ref":"#/components/schemas/Details"},"reason_code":{"type":"string","description":"A reason code assigned by the acquiring platform; '0000' in case of success","maxLength":4},"rrn":{"type":"string","description":"A client (user friendly) identifier for the transaction generated at the outset of a business event. The format will be dependent on the calling system.\n\nA reference supplied by the system retaining the original source information and used to assist in locating that transaction or a copy of the transaction. This value is critical in matching values that are sent to other Payment processors or Acquirers.\n This value would correspond to the **ISO8583 specification as RRN in attribute DE 37, which limits the value to being an alphanumeric value 12 characters.**\n\n For the GSC client android application the format will correspond to <strong>YYMMdd<stan 6 digits></strong>.","maxLength":12},"shopper_interaction":{"type":"string","description":"Determines the point of sale of a customer. Possible values: pos, moto, mail_order, telephone_order, ecommerce and cont_auth","enum":["ECOMMERCE","MAIL","TELEPHONE"]},"stan":{"type":"string","description":"System Trace Audit Number."},"threed_authentication":{"allOf":[{"$ref":"#/components/schemas/ThreedAuthentication","description":"MPI authentication data. Please refer to the integration guide for information on its usage."}]},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","enum":["NONE","REQUIRED","COMPLETED"],"default":"NONE"},"geo_location":{"type":"array","description":"The latitude / longitude resolved from the customer's ip address.","items":{"type":"number"}},"city":{"type":"string","description":"The city resolved from the customer's ip address."},"country_code":{"type":"string","description":"The country code resolved from the customer's ip address."},"additional_data":{"$ref":"#/components/schemas/AdditionalData"},"token_details":{"allOf":[{"$ref":"#/components/schemas/TokenDetails","description":"This object is returned as the response to a request for Create/Update Token."}]},"promo_code":{"type":"string","description":"A code defined by the merchant that affects the calculation of the total amount."},"promo_financing_result":{"$ref":"#/components/schemas/PromoFinancingResults"},"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},"issuer_instalment_result":{"$ref":"#/components/schemas/ecomPaymentResponse_issuer_instalment_result"},"balance_amount":{"type":"integer","title":"balanceAmount","description":"Balance amount is the amount remaining on a card or account of cardholder without a decimal place e.g. $1.5 = 150.\n\nThe required number of decimal places for a currency code is according to ISO 4217. However the following table takes precedence over ISO 4217:"}}},"StoredCredential":{"type":"object","properties":{"reference":{"type":"string","description":"Reference of a successfully processed initial COF transaction. Only used by subsequent COF transactions."},"stored_credential_type":{"type":"string"},"scheme_reference":{"type":"string","description":"Scheme Reference Data received from issuer/acquirer."},"processing_model":{"type":"string","enum":["UNSCHEDULED_CREDENTIAL_ON_FILE","CREDENTIAL_ON_FILE","RECURRING","REAUTHORIZATION","NONE"],"description":"Processing model to use for COF transaction. Refer to the card integration guide for more information on the usage."},"details":{"deprecated":true,"type":"string","enum":["UNSCHEDULED_CREDENTIAL_ON_FILE","CREDENTIAL_ON_FILE","RECURRING"],"description":"Processing model to use for COF transaction. Refer to the card integration guide for more information on the usage."}}},"Details":{"type":"object","properties":{"auto_capture":{"type":"boolean"},"mid":{"type":"string","format":"integer","description":"Merchant ID (MID)"}}},"ThreedAuthentication":{"type":"object","properties":{"eci_flag":{"type":"string","description":"Electronic Commerce Indicator (ECI). The ECI value is part of the 2 data elements that indicate the transaction was processed electronically.This should be passed on the authorization transaction to the Gateway/Processor.Please refer to the integration guide for information on its usage.","enum":["05","06","07","02","01","00"]},"enrolled":{"type":"string","enum":["Y","N","U","B"],"description":"The enrolment response status of Authentication eligibility from the Directory Server.\n\nPossible Values:\n\n * `Y` - Yes, Bank is participating in 3-D Secure protocol and will return the ACSUrl.\n\n * `N` - No, Bank is not participating in 3-D Secure protocol.\n\n * `U` - Unavailable,  the DS or ACS is not available for authentication at the time of the request.\n\n * `B` - Bypass, merchant authentication rule is triggered to bypass authentication in this use case.\n\nNOTE: If the Enrolled value is NOT Y, then the Consumer is NOT eligible for Authentication."},"cavv":{"type":"string","minLength":28,"maxLength":48,"description":"Cardholder Authentication Verification Value (CAVV). Base64-encoded values of 28 or 32 characters. Hex-encoded values of 40 or 48 characters."},"cavv_algorithm":{"type":"string","description":"The algorithm used to generate the CAVV value. Supported for 3D Secure v1 only."},"pares_status":{"type":"string","enum":["Y","N","U","A","C","R"],"description":"Authentication response code.\n\nPossible Values:\n\n * `Y` - Successful Authentication.\n\n * `N` - Failed Authentication.\n\n * `U` - Unable to Complete Authentication\n\n * `A` - Successful Attempts Transaction.\n\n * `C` - Challenge Required for Authentication.\n\n * `R` - Authentication Rejected."},"xid":{"type":"string","description":"The transaction identifier assigned by Directory Server. Supported for 3D Secure v1 only."},"threeds_version":{"type":"string","enum":["1.0.2","2.1.0","2.2.0"],"description":"The 3DS version used to process the transaction."},"ds_transaction_id":{"type":"string","description":"The unique transaction identifier assigned by the Directory Server. Supported for 3D Secure v2 only."}}},"AdditionalData":{"type":"object","additionalProperties":false,"description":"Additional payment result data, which may be required to return in a particular payment response.","properties":{"acquirer_response_code":{"$ref":"#/components/schemas/acquirerResponseCode"},"acquirer_response_message":{"$ref":"#/components/schemas/acquirerResponseMessage"},"acquirer_authorizing_network_id":{"$ref":"#/components/schemas/acquirerAuthorizingNetworkID"},"acquirer_authorizing_network_id_descriptor":{"$ref":"#/components/schemas/acquirerAuthorizingNetworkIdDescriptor"},"initiator_trace_id":{"$ref":"#/components/schemas/initiatorTraceId"},"settlement_date":{"$ref":"#/components/schemas/settlementDate"},"issuer_receipt_text":{"type":"string","description":"Additional text to print on transaction receipt, which optionally may be provided by the Issuer."}}},"acquirerResponseCode":{"description":"Acquirer response returned during the authorisation.","type":"string","maxLength":4},"acquirerResponseMessage":{"description":"The response description generated by the acquirer corresponding to the acquirer response code.","type":"string"},"acquirerAuthorizingNetworkID":{"description":"The Network ID returned in the original authorization response.","type":"string"},"acquirerAuthorizingNetworkIdDescriptor":{"description":"The name or descriptor that corresponds with the `acquirer_authorizing_network_id`  returned in the original authorization response.","type":"string"},"initiatorTraceId":{"description":"A number assigned by a transaction initiator(originator) to assist in identifying a transaction uniquely. The trace identifier remains unchanged for all messages within a two-message exchange, e.g. request/repeat and response. This property can be used to store the System trace audit number (STAN) as used in the ISO8583 specification (DE 11). Note the contents of this field are mandatory in many specifications - ISO8583, AS2805 (DE11) and are often related to the Retrieval Reference Number (RRN) as also specified in ISO8583. Unfortunately due to the usage in these earlier specifications, a STAN was limited to 6 digits which means that it cannot be utilised as a general purpose unique id. In addition, this entry is often printed on the receipt at a POI.\n This value will correspond to **ISO8583 DE11.**\n `Note: Use response.stan value for initiator_trace_id`","type":"string","maxLength":40,"deprecated":true},"settlementDate":{"description":"This will reflect either the desired Merchant settlement date or the actual settlement date depending where the transaction request is within the payment lifecycle. A transaction may be assigned an intended settlement date, but it is possible that this date will not occur for technical reasons hence there should be a subsequent event to indicate the actual date of settlement. Format is date only as per RFC 3339.","type":"string","format":"date"},"TokenDetails":{"type":"object","properties":{"reuse_token":{"type":"string","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.","type":"string","enum":["CHASE","INTERNAL","TAVE"]},"analytics_token":{"type":"string","description":"A token that cannot be reversed to Card Holder data. This is included in a Payment for auditing and tracking purposes."},"token_expiry_date":{"type":"string","format":"date","description":"When this Token will expire."},"token_scope":{"type":"string","format":"uuid","description":"The token scope under which this token was created."},"token_status":{"type":"string","enum":["DELETED","ACTIVE","SUSPENDED"],"description":"The status of the Token."},"created_at":{"type":"string","format":"date","description":"The date when this token was first created."},"updated_at":{"type":"string","format":"date","description":"The last date token was updated."},"variant":{"type":"string","description":"The variant of the card. eg. NEW_WORLD"},"type":{"type":"string","enum":["CREDIT","DEBIT"],"description":"The type of card application or account selection."},"issuer_name":{"type":"string","description":"The issuer of this card. eg. HSBC, BARCLAYS."},"issuer_country":{"$ref":"#/components/schemas/issuerCountryEnum"},"brand":{"type":"string","description":"The brand of this card. eg. VISA, MASTERCARD, AMEX."},"expiry_year":{"type":"integer","description":"A 4 digit value as shown on card.","maximum":9999},"expiry_month":{"type":"integer","description":"A 2 digit value as shown on card. ISO8583 - DE 14","maximum":12},"card_holder_name":{"type":"string","description":"The Card holder name as it appears on the card.","maxLength":30},"last_four":{"type":"string","description":"The last 4 digits of the card number.","maxLength":4},"bin":{"type":"string","description":"The Bank Identification Number (also called IIN - Issuer Identification Number) of this card.","minLength":4,"maxLength":11},"currency_code":{"type":"string","title":"Currency Code","description":"Three-letter ISO 4217 alphabetical currency code. e.g. USD. Values correspond\nto [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"]}}},"issuerCountryEnum":{"type":"string","description":"The [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as is used in that country's top-level domain names.</blockquote>.","enum":["ZZZ","ABW","AFG","AGO","AIA","ALA","ALB","AND","ARE","ARG","ARM","ASM","ATA","ATF","ATG","AUS","AUT","AZE","BDI","BEL","BEN","BES","BFA","BGD","BGR","BHR","BHS","BIH","BLM","BLR","BLZ","BMU","BOL","BRA","BRB","BSB","BRN","BTN","BVT","BWA","CAF","CAN","CCK","CHE","CHL","CHN","CIV","CMR","COD","COG","COK","COL","COM","CPV","CRI","CUB","CUW","CXR","CYM","CYP","CZE","DEU","DJI","DMA","DNK","DOM","DZA","ECU","EGY","ERI","ESH","ESP","EST","ETH","FIN","FJI","FLK","FRA","FRO","FSM","GAB","GBR","GEO","GGY","GHA","GIB","GIN","GLP","GMB","GNB","GNQ","GRC","GRD","GRL","GTM","GUF","GUM","GUY","HKG","HMD","HND","HRV","HTI","HUN","IDN","IMN","IND","IOT","IRL","IRN","IRQ","ISL","ISR","ITA","JAM","JEY","JOR","JPN","KAZ","KEN","KGZ","KHM","KIR","KNA","KOR","KWT","LAO","LBN","LBR","LBY","LCA","LIE","LKA","LSO","LTU","LUX","LVA","MAC","MAF","MAR","MCO","MDA","MDG","MDV","MEX","MHL","MKD","MLI","MLT","MMR","MNE","MNG","MNP","MOZ","MRT","MSR","MTQ","MUS","MWI","MYS","MYT","NAM","NCL","NER","NFK","NGA","NIC","NIU","NLD","NOR","NPL","NRU","NZL","OMN","PAK","PAN","PCN","PER","PHL","PLW","PNG","POL","PRI","PRK","PRT","PRY","PSE","PYF","QAT","REU","ROU","RUS","RWA","SAU","SDN","SEN","SGC","SGP","SHN","SJM","SLB","SLE","SLV","SMR","SOM","SPM","SRB","SSD","STP","SUR","SVK","SVN","SWE","SWZ","SXM","SYC","SYR","TCA","TCD","TGO","THA","TJK","TKL","TKM","TLS","TON","TTO","TUN","TUR","TUV","TWN","TZA","UGA","UKR","UMI","URY","USA","UZB","VAT","VCT","VEN","VGB","VIR","VNM","VUT","WLF","WSM","YEM","ZAF","ZMB","ZWE"]},"PromoFinancingResults":{"title":"Promo Financing Results","type":"object","description":"Details of the special financing offer returned from the issuer.","properties":{"promoFinancingType":{"description":"Type of special financing information provided. * `PROMO_APR ` - APR information provided only for the duration of the promo period; * `PROMO_AND_AFTER_APR ` - APR information provided for the duration of and after the promo period; * `PROMO_AND_AFTER_APR ` - No promotional financing available; * `ERROR ` - error.","type":"string","enum":["PROMO_APR","PROMO_AND_AFTER_APR","NO_PROMO","ERROR"]},"promoAnnualPercentageRateType":{"description":"The type of APR applicable during promo period.","type":"string","enum":["FIXED","VARIABLE"]},"promoAnnualPercentageRate":{"description":"The interest rate expressed in Annual Percentage Rate (APR), applicable during the promo period.","type":"number","format":"float"},"annualPercentageRateType":{"description":"The type of APR applicable after promo period.","type":"string","enum":["FIXED","VARIABLE"]},"annualPercentageRate":{"description":"The interest rate expressed in Annual Percentage Rate (APR).","type":"number","format":"float"},"promoDurationDescription":{"description":"Information or description of the promo period duration, e.g. 6 months","type":"string"},"promoDescription":{"description":"Description of the promotional financing plan.","type":"string"}}},"ecomPaymentResponse_issuer_instalment_result":{"type":"object","properties":{"instalment_program":{"type":"string","description":"The name of special program designated by scheme or issuer.","enum":["MCINST"]},"payment_option":{"type":"string","description":"Available payment mode allowed by issuer for the transaction.","enum":["FULL","FULL_OR_INSTALMENT","INSTALMENT"]},"payment_plan_option":{"type":"array","description":"The issuer may offer more than one instalment options within certain instalment programs.","items":{"$ref":"#/components/schemas/paymentPlanOption"}},"number_of_instalments":{"minimum":0,"type":"integer","description":"The number of individual parts that the total amount should be paid in."},"min_number_of_instalments":{"type":"integer","description":"The minimal number of individual parts that the total amount could be paid in, if choice is available."},"max_number_of_instalments":{"type":"integer","description":"The maximal number of individual parts that the total amount could be paid in, if choice is available."},"interest_rate":{"type":"number","description":"The interest rate.","format":"float"},"annual_percentage_rate":{"type":"number","description":"The interest rate expressed in Annual Percentage Rate.","format":"float"},"handling_fee":{"$ref":"#/components/schemas/amountDecimal"},"down_payment_amount":{"$ref":"#/components/schemas/amountDecimal"},"instalment_amount":{"$ref":"#/components/schemas/amountDecimal"},"total_amount_with_cost":{"$ref":"#/components/schemas/amountDecimal"}},"additionalProperties":false,"description":"Issuer-managed instalment response. May be used to inform on supported instalment options for the transaction in specific programs (e.g., Mastercard Instalment Payment Service)."},"paymentPlanOption":{"title":"Instalment payment plan option","type":"object","properties":{"number_of_instalments":{"minimum":1,"type":"integer","description":"The number of individual parts that the total amount should be paid in."},"first_instalment_amount":{"$ref":"#/components/schemas/amountDecimal"},"instalment_amount":{"$ref":"#/components/schemas/amountDecimal"},"interest_rate":{"type":"number","description":"The interest rate.","format":"float"},"annual_percentage_rate":{"type":"number","description":"The interest rate expressed in Annual Percentage Rate.","format":"float"},"handling_fee":{"$ref":"#/components/schemas/amountDecimal"},"total_amount_with_cost":{"$ref":"#/components/schemas/amountDecimal"}},"description":"An instalment plan option available for the transaction. Instalments are managed by the issuer. To the merchant this is just another transaction."},"amountDecimal":{"type":"number","description":"Amount including decimal place."},"BadRequestV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[400],"default":400},"message":{"type":"string","enum":["At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."],"default":"At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."}},"required":["message"]},"UnauthorizedV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[401],"default":401},"message":{"type":"string","enum":["Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."],"default":"Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."}},"required":["message"]},"ForbiddenV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[403],"default":403},"message":{"type":"string","enum":["Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."],"default":"Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."}},"required":["message"]},"NotFoundV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[404],"default":404},"message":{"type":"string","enum":["The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."],"default":"The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."}},"required":["message"]},"InternalErrorV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[500],"default":500},"message":{"type":"string","enum":["Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"],"default":"Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"}},"required":["message"]}}},"paths":{"/api/v2/transactions/wallet":{"post":{"operationId":"walletTransaction","summary":"Initiate a wallet payment using Google Pay or Apple Pay","description":"Initiate a card payment or card verification request when amount is set to 0 (zero).\n\n <b>Transactions business models</b>\n\n| Business model | Transaction type | Shopper Interaction | Stored Credential Contract | Token Preference or Reference | Stored Credential Request Type | Stored Credential Processing Model |\n| ------------------- | ---------------- | ------------------- | ------------------ | ------------------ | ---------------- | -------------------------- |\n| Online purchase with shopper present | One-off online purchase without storing card payment details for future use.| `ECOMMERCE` | | | | |\n| Online purchase with shopper present | Online purchase where shopper agrees to store card details for future use. This can be a zero-value transaction account verification.| `ECOMMERCE` |  | `REUSE` | `SIGNUP` | `NONE` |\n| Subscriptions | Initial transaction to sign up for a subscription.| `ECOMMERCE` |  | `REUSE` or `reuse_token` | `SIGNUP` | `RECURRING` |\n| Non-fixed in time contracts (such as auto account top-ups) | Initial transaction to sign up for the terms and conditions of later subsequent charges. | `ECOMMERCE` |  | `REUSE` | `SIGNUP` | `NONE` |\n<p><i>Note</i>: To initiate a transaction with reference to previously stored credentials ( `CHARGE` ) use ``/v2/transactions/card`` endpoint instead.</p>","parameters":[{"name":"x-vfi-api-idempotencykey","required":false,"in":"header","schema":{"type":"string","description":"A value you specify that uniquely identifies this transaction. This must be used to trigger a reversal if there is a timeout.","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWalletDto"}}}},"responses":{"201":{"description":"Wallet Result","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/VerificationAdvice"},{"$ref":"#/components/schemas/EcomResponseCard"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestV2Docs"}}}},"401":{"description":"Unauthorised","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedV2Docs"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenV2Docs"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundV2Docs"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalErrorV2Docs"}}}}},"tags":["Ecom Payments"]}}}}
```

## Start payment session for Apple Pay wallet transactions

> Create a merchant payment session

```json
{"openapi":"3.0.0","info":{"title":"Verifone eCommerce API","version":"2.38.1"},"servers":[{"url":"https://emea.gsc.verifone.cloud/oidc","description":"EMEA Production"},{"url":"https://us.gsc.verifone.cloud/oidc","description":"Americas Production"},{"url":"https://nz.gsc.verifone.cloud/oidc","description":"New Zealand Production"},{"url":"https://cst.test-gsc.vfims.com/oidc","description":"Global Sandbox"},{"url":"https://uscst-gb.gsc.vficloud.net/oidc","description":"Americas Sandbox"}],"security":[{"BasicAuth":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic"}},"schemas":{"ApplePayMerchantValidationDto":{"type":"object","properties":{"validation_url":{"type":"string","description":"The URL pointing to the Apple Pay validation location.\n\n**Note**: Use the URL below according to your Verifone environment:\n  - Sandbox: https://apple-pay-gateway-cert.apple.com/paymentservices/startSession\n  - Production: https://apple-pay-gateway.apple.com/paymentservices/startSession\n"},"domain":{"type":"string","description":"The domain from which the payment request will be initiated."},"payment_provider_contract":{"type":"string","description":"The identifier of payment provider contract you want to process the transaction request with.","format":"uuid-flexible"}},"required":["validation_url","domain","payment_provider_contract"]},"BadRequestV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[400],"default":400},"message":{"type":"string","enum":["At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."],"default":"At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."}},"required":["message"]},"UnauthorizedV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[401],"default":401},"message":{"type":"string","enum":["Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."],"default":"Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."}},"required":["message"]},"ForbiddenV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[403],"default":403},"message":{"type":"string","enum":["Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."],"default":"Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."}},"required":["message"]},"NotFoundV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[404],"default":404},"message":{"type":"string","enum":["The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."],"default":"The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."}},"required":["message"]},"InternalErrorV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[500],"default":500},"message":{"type":"string","enum":["Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"],"default":"Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"}},"required":["message"]}}},"paths":{"/api/v2/apple-pay/validation":{"post":{"operationId":"validationUrl","summary":"Start payment session for Apple Pay wallet transactions","description":"Create a merchant payment session","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplePayMerchantValidationDto"}}}},"responses":{"201":{"description":"The Apple Pay Validation Response.","content":{"application/json":{"schema":{"type":"object","description":"object (Apple Pay opaque session object)"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestV2Docs"}}}},"401":{"description":"Unauthorised","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedV2Docs"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenV2Docs"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundV2Docs"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalErrorV2Docs"}}}}},"tags":["Ecom Payments"]}}}}
```

## Initiate a Vipps payment

> Initiate a Vipps payment.

```json
{"openapi":"3.0.0","info":{"title":"Verifone eCommerce API","version":"2.38.1"},"servers":[{"url":"https://emea.gsc.verifone.cloud/oidc","description":"EMEA Production"},{"url":"https://us.gsc.verifone.cloud/oidc","description":"Americas Production"},{"url":"https://nz.gsc.verifone.cloud/oidc","description":"New Zealand Production"},{"url":"https://cst.test-gsc.vfims.com/oidc","description":"Global Sandbox"},{"url":"https://uscst-gb.gsc.vficloud.net/oidc","description":"Americas Sandbox"}],"security":[{"BearerAuth":[]},{"BasicAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"BasicAuth":{"type":"http","scheme":"basic"}},"schemas":{"vippsPaymentInitiationRequest":{"title":"Vipps Payment Initiation Request","required":["amount","currency_code","customer","merchant_reference","payment_provider_contract","redirect_url"],"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"},"threed_secure":{"$ref":"#/components/schemas/ThreeDSecure"},"app_phone_number":{"maxLength":18,"type":"string","description":"The Phone Number registered with Vipps Mobile APP."},"redirect_url":{"maxLength":2048,"type":"string","description":"Checkout Redirect URL which will be used by Vipps on Payment Completion."},"is_app":{"type":"boolean","description":"Flag to identify the transaction originated from APP or Browser.","default":false},"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 * `PRE_AUTH` is used when the authorized amount is unknown and can be adjusted later.\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":{"maxLength":25,"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."},"merchant_reference":{"type":"string","description":"A reference specified by the merchant to identify the transaction.","maxLength":50},"shipping_information":{"allOf":[{"$ref":"#/components/schemas/ShippingInformationDto"}]},"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},"currency_code":{"title":"Currency Code","type":"string","description":"Three-letter ISO 4217 alphabetical currency code. e.g. USD. Values correspond\nto [ISO 4217](https://wikipedia.org/wiki/ISO_4217).\n\nPlease note that Klarna only supports Norwegian krone (NOK).","enum":["NOK"]},"sca_compliance_level":{"type":"string","description":" * `NONE`: No SCA required.\n * `WALLET`: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not.\n * `FORCE_3DS`: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.","enum":["NONE","WALLET","FORCE_3DS"],"default":"WALLET"},"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            Possible Values:\n              1 - Low value payment\n              2 - Acquirer Transaction Risk Analysis\n              3 - Trusted beneficiary exemption\n              4 - Secure Corporate Payment (SCP) exemption\n              5 - Merchant Initiated Transaction\n              6 - SCA Delegation.\n\n**NOTE:** This only applies when `sca_compliance_level` = `NONE`","enum":["1","2","3","4","5","6"]}}},"ThreeDSecure":{"type":"object","properties":{"eci_flag":{"type":"string","title":"Electronic Commerce Indicator.","enum":["00","01","02","03","04","05","06","07"]},"enrolled":{"type":"string","title":"The enrolment response status of Authentication eligibility from the Directory Server.","description":"Possible Values:\n    Y - Yes, Bank is participating in 3-D Secure protocol and will return the ACSUrl.\n    N - No, Bank is not participating in 3-D Secure protocol.\n    U - Unavailable, the DS or ACS is not available for authentication at the time of the request.\n    B - Bypass, merchant authentication rule is triggered to bypass authentication in this use case.\n    NOTE: If the Enrolled value is NOT Y, then the Consumer is NOT eligible for Authentication."},"cavv":{"type":"string","maxLength":48,"title":"Cardholder Authentication Verification Value (CAVV)","description":"Base64-encoded values of 28 or 32 characters. Hex-encoded values of 40 or 48 characters."},"cavv_algorithm":{"type":"string","description":"Indicates the algorithm used to generate the CAVV value.Please refer to the integration guide for information on its usage."},"pares_status":{"type":"string","title":"Authentication response code.","description":"Possible Values:\n      Y - Successful Authentication.\n      U - Unable to Complete Authentication\n      A - Successful Attempts Transaction."},"xid":{"type":"string","description":"Transaction identifier resulting from authentication processing.Please refer to the integration guide for information on its usage."},"ds_transaction_id":{"type":"string","title":"The unique transaction identifier","description":"The unique transaction identifier assigned by the Directory Server. Supported for 3D Secure v2 only."},"threeds_version":{"type":"string","title":"The 3DS version used to process the transaction.","enum":["1.0.2","2.1.0","2.2.0"]}}},"ShippingInformationDto":{"type":"object","additionalProperties":false,"description":"The address where the purchased goods should be delivered to.","title":"Shipping Address","properties":{"address":{"type":"string","maxLength":300,"description":"Street address of the recipient."},"city":{"type":"string","maxLength":28,"description":"City of the recipient."},"country":{"type":"string","maxLength":2,"minLength":2,"format":"country-code","description":"A 2-letter ISO3166 alpha-2 country code for the address."},"postal_code":{"type":"string","minLength":1,"maxLength":16,"description":"A postal code for the address."},"email":{"type":"string","title":"Email Address","minLength":3,"maxLength":254,"format":"email","description":"A valid internationalized email address, as defined by RFC 5322, RFC 6530, and other RFCs. Due to RFC 5321, an email address can be up to 254 characters long even though up to 64 characters are allowed before and 255 characters are allowed after the @ sign. This pattern verifies only that the string contains an unquoted @ sign. See https://tools.ietf.org/html/rfc5322#section-3.4.1."},"first_name":{"type":"string","maxLength":100,"description":"First name of the recipient."},"last_name":{"type":"string","maxLength":100,"description":"Last name of the recipient."},"phone":{"type":"number","maxLength":15,"description":"Numbers only, no dash or any other separator."},"state":{"type":"string","maxLength":35,"description":"A region / state / province for the address."}},"required":["address","city","country","postal_code"]},"vippsPaymentInitiationResponse":{"title":"Vipps Payment Initiation Response","type":"object","properties":{"id":{"title":"Transaction ID","type":"string","description":"The ID of the transaction.","format":"uuid-flexible"},"redirect_url":{"type":"string","description":"Vipps Host Redirection URL."},"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."},"blocked":{"type":"boolean","description":"True if the transaction has been blocked by a ruleset, false otherwise"},"created_at":{"type":"string","description":"The time at which the transaction was created.","format":"date-time"},"customer":{"type":"string","description":"The ID of a customer"},"details":{"$ref":"#/components/schemas/ecomPaymentResponse_details"},"merchant_reference":{"type":"string","description":"A reference specified by the merchant to identify the transaction.","maxLength":50},"processor":{"type":"string","description":"The name of the processor used for this transaction","default":"NETS"},"payment_product":{"type":"string","description":"The payment product corresponding to this transaction","default":"CARD"},"payment_product_type":{"$ref":"#/components/schemas/PaymentProductType"},"shipping_information":{"allOf":[{"$ref":"#/components/schemas/ShippingInformationDto"}]},"status":{"type":"string","description":"The outcome of the payment request.","title":"Ecommerce Transaction Status","enum":["INITIATED","AUTHORIZED","AUTHORIZATION_VOIDED","CANCELLED","CUSTOMER_ACCEPTED","REFUNDED","FAILED","PENDING","DECLINED","SETTLEMENT_CANCELLED","SETTLEMENT_REQUESTED","SETTLEMENT_SUBMITTED","SETTLEMENT_COMPLETED","SETTLEMENT_PARTIAL","SETTLEMENT_DECLINED","VOIDED","UNKNOWN"]},"status_reason":{"type":"string","description":"Message provided by the 3rd party service as additional information, when the transaction does not succeed."},"created_by":{"type":"string","description":"The ID of the user who initiated the transaction. Only set when shopper_interaction = moto, mail_order or telephone_order"},"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"},"geo_location":{"type":"array","description":"The latitude / longitude resolved from the customer's ip address.","items":{"type":"number"}},"city":{"type":"string","description":"The city resolved from the customer's ip address."},"country_code":{"title":"Country Code","type":"string","description":"The [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as is used in that country's top-level domain names.</blockquote>."}}},"ecomPaymentResponse_details":{"type":"object","properties":{"auto_capture":{"type":"boolean","description":"Indicates whether the transaction would be automatically captured upon authorisation."},"mid":{"type":"string","description":"Merchant ID (MID)","format":"integer"}}},"PaymentProductType":{"title":"Payment Product Type","type":"string","description":"The payment product type corresponding to this transaction. Fees applied to the transaction, is based on the payment product","enum":["Affirm","Amex","Crypto","Diners Club International","Discover","JCB","Klarna","Maestro","Mastercard","OP Online Payment","Swish","Unknown","Visa"],"default":"Unknown"},"BadRequestV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[400],"default":400},"message":{"type":"string","enum":["At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."],"default":"At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."}},"required":["message"]},"UnauthorizedV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[401],"default":401},"message":{"type":"string","enum":["Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."],"default":"Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."}},"required":["message"]},"ForbiddenV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[403],"default":403},"message":{"type":"string","enum":["Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."],"default":"Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."}},"required":["message"]},"NotFoundV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[404],"default":404},"message":{"type":"string","enum":["The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."],"default":"The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."}},"required":["message"]},"InternalErrorV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[500],"default":500},"message":{"type":"string","enum":["Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"],"default":"Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"}},"required":["message"]}}},"paths":{"/api/v2/transactions/vipps":{"post":{"tags":["Ecom Payments"],"summary":"Initiate a Vipps payment","description":"Initiate a Vipps payment.","operationId":"vippsTransaction","parameters":[{"name":"x-vfi-api-idempotencykey","required":false,"in":"header","schema":{"type":"string","description":"A value you specify that uniquely identifies this transaction. This must be used to trigger a reversal if there is a timeout.","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/vippsPaymentInitiationRequest"}}}},"responses":{"201":{"description":"The Vipps Payment Initiation Response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/vippsPaymentInitiationResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestV2Docs"}}}},"401":{"description":"Unauthorised Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedV2Docs"}}}},"403":{"description":"Forbidden Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenV2Docs"}}}},"404":{"description":"Not Found Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundV2Docs"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalErrorV2Docs"}}}}}}}}}
```

## Initiate a MobilePay payment

> Initiate a MobilePay payment.

```json
{"openapi":"3.0.0","info":{"title":"Verifone eCommerce API","version":"2.38.1"},"servers":[{"url":"https://emea.gsc.verifone.cloud/oidc","description":"EMEA Production"},{"url":"https://us.gsc.verifone.cloud/oidc","description":"Americas Production"},{"url":"https://nz.gsc.verifone.cloud/oidc","description":"New Zealand Production"},{"url":"https://cst.test-gsc.vfims.com/oidc","description":"Global Sandbox"},{"url":"https://uscst-gb.gsc.vficloud.net/oidc","description":"Americas Sandbox"}],"security":[{"BearerAuth":[]},{"BasicAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"BasicAuth":{"type":"http","scheme":"basic"}},"schemas":{"mobilePayPaymentInitiationRequest":{"title":"MobilePay Payment Initiation Request","required":["amount","currency_code","customer","merchant_reference","payment_provider_contract","redirect_url"],"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"},"threed_secure":{"$ref":"#/components/schemas/ThreeDSecure"},"redirect_url":{"maxLength":2048,"type":"string","description":"Checkout Redirect URL which will be used by MobilePay on Payment Completion."},"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 * `PRE_AUTH` is used when the authorized amount is unknown and can be adjusted later.\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":{"maxLength":25,"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."},"merchant_reference":{"type":"string","description":"A reference specified by the merchant to identify the transaction.","maxLength":50},"shipping_information":{"allOf":[{"$ref":"#/components/schemas/ShippingInformationDto"}]},"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},"currency_code":{"title":"Currency Code","type":"string","description":"Three-letter ISO 4217 alphabetical currency code. e.g. USD. Values correspond\nto [ISO 4217](https://wikipedia.org/wiki/ISO_4217).\n\nPlease note that Klarna only supports EURO (EUR) and Danish krone (DKK).","enum":["EUR","DKK"]},"sca_compliance_level":{"type":"string","description":" * `NONE`: No SCA required.\n * `WALLET`: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not.\n * `FORCE_3DS`: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.","enum":["NONE","WALLET","FORCE_3DS"],"default":"WALLET"},"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            Possible Values:\n              1 - Low value payment\n              2 - Acquirer Transaction Risk Analysis\n              3 - Trusted beneficiary exemption\n              4 - Secure Corporate Payment (SCP) exemption\n              5 - Merchant Initiated Transaction\n              6 - SCA Delegation.\n\n**NOTE:** This only applies when `sca_compliance_level` = `NONE`","enum":["1","2","3","4","5","6"]}}},"ThreeDSecure":{"type":"object","properties":{"eci_flag":{"type":"string","title":"Electronic Commerce Indicator.","enum":["00","01","02","03","04","05","06","07"]},"enrolled":{"type":"string","title":"The enrolment response status of Authentication eligibility from the Directory Server.","description":"Possible Values:\n    Y - Yes, Bank is participating in 3-D Secure protocol and will return the ACSUrl.\n    N - No, Bank is not participating in 3-D Secure protocol.\n    U - Unavailable, the DS or ACS is not available for authentication at the time of the request.\n    B - Bypass, merchant authentication rule is triggered to bypass authentication in this use case.\n    NOTE: If the Enrolled value is NOT Y, then the Consumer is NOT eligible for Authentication."},"cavv":{"type":"string","maxLength":48,"title":"Cardholder Authentication Verification Value (CAVV)","description":"Base64-encoded values of 28 or 32 characters. Hex-encoded values of 40 or 48 characters."},"cavv_algorithm":{"type":"string","description":"Indicates the algorithm used to generate the CAVV value.Please refer to the integration guide for information on its usage."},"pares_status":{"type":"string","title":"Authentication response code.","description":"Possible Values:\n      Y - Successful Authentication.\n      U - Unable to Complete Authentication\n      A - Successful Attempts Transaction."},"xid":{"type":"string","description":"Transaction identifier resulting from authentication processing.Please refer to the integration guide for information on its usage."},"ds_transaction_id":{"type":"string","title":"The unique transaction identifier","description":"The unique transaction identifier assigned by the Directory Server. Supported for 3D Secure v2 only."},"threeds_version":{"type":"string","title":"The 3DS version used to process the transaction.","enum":["1.0.2","2.1.0","2.2.0"]}}},"ShippingInformationDto":{"type":"object","additionalProperties":false,"description":"The address where the purchased goods should be delivered to.","title":"Shipping Address","properties":{"address":{"type":"string","maxLength":300,"description":"Street address of the recipient."},"city":{"type":"string","maxLength":28,"description":"City of the recipient."},"country":{"type":"string","maxLength":2,"minLength":2,"format":"country-code","description":"A 2-letter ISO3166 alpha-2 country code for the address."},"postal_code":{"type":"string","minLength":1,"maxLength":16,"description":"A postal code for the address."},"email":{"type":"string","title":"Email Address","minLength":3,"maxLength":254,"format":"email","description":"A valid internationalized email address, as defined by RFC 5322, RFC 6530, and other RFCs. Due to RFC 5321, an email address can be up to 254 characters long even though up to 64 characters are allowed before and 255 characters are allowed after the @ sign. This pattern verifies only that the string contains an unquoted @ sign. See https://tools.ietf.org/html/rfc5322#section-3.4.1."},"first_name":{"type":"string","maxLength":100,"description":"First name of the recipient."},"last_name":{"type":"string","maxLength":100,"description":"Last name of the recipient."},"phone":{"type":"number","maxLength":15,"description":"Numbers only, no dash or any other separator."},"state":{"type":"string","maxLength":35,"description":"A region / state / province for the address."}},"required":["address","city","country","postal_code"]},"mobilePayPaymentInitiationResponse":{"title":"MobilePay Payment Initiation Response","type":"object","properties":{"id":{"title":"Transaction ID","type":"string","description":"The ID of the transaction.","format":"uuid-flexible"},"redirect_url":{"type":"string","description":"MobilePay Host Redirection URL."},"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."},"blocked":{"type":"boolean","description":"True if the transaction has been blocked by a ruleset, false otherwise"},"created_at":{"type":"string","description":"The time at which the transaction was created.","format":"date-time"},"customer":{"type":"string","description":"The ID of a customer"},"details":{"$ref":"#/components/schemas/ecomPaymentResponse_details"},"merchant_reference":{"type":"string","description":"A reference specified by the merchant to identify the transaction.","maxLength":50},"processor":{"type":"string","description":"The name of the processor used for this transaction","default":"NETS"},"payment_product":{"type":"string","description":"The payment product corresponding to this transaction","default":"CARD"},"payment_product_type":{"$ref":"#/components/schemas/PaymentProductType"},"shipping_information":{"allOf":[{"$ref":"#/components/schemas/ShippingInformationDto"}]},"status":{"type":"string","description":"The outcome of the payment request.","title":"Ecommerce Transaction Status","enum":["INITIATED","AUTHORIZED","AUTHORIZATION_VOIDED","CANCELLED","CUSTOMER_ACCEPTED","REFUNDED","FAILED","PENDING","DECLINED","SETTLEMENT_CANCELLED","SETTLEMENT_REQUESTED","SETTLEMENT_SUBMITTED","SETTLEMENT_COMPLETED","SETTLEMENT_PARTIAL","SETTLEMENT_DECLINED","VOIDED","UNKNOWN"]},"status_reason":{"type":"string","description":"Message provided by the 3rd party service as additional information, when the transaction does not succeed."},"created_by":{"type":"string","description":"The ID of the user who initiated the transaction. Only set when shopper_interaction = moto, mail_order or telephone_order"},"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"},"geo_location":{"type":"array","description":"The latitude / longitude resolved from the customer's ip address.","items":{"type":"number"}},"city":{"type":"string","description":"The city resolved from the customer's ip address."},"country_code":{"title":"Country Code","type":"string","description":"The [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as is used in that country's top-level domain names.</blockquote>."}}},"ecomPaymentResponse_details":{"type":"object","properties":{"auto_capture":{"type":"boolean","description":"Indicates whether the transaction would be automatically captured upon authorisation."},"mid":{"type":"string","description":"Merchant ID (MID)","format":"integer"}}},"PaymentProductType":{"title":"Payment Product Type","type":"string","description":"The payment product type corresponding to this transaction. Fees applied to the transaction, is based on the payment product","enum":["Affirm","Amex","Crypto","Diners Club International","Discover","JCB","Klarna","Maestro","Mastercard","OP Online Payment","Swish","Unknown","Visa"],"default":"Unknown"},"BadRequestV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[400],"default":400},"message":{"type":"string","enum":["At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."],"default":"At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."}},"required":["message"]},"UnauthorizedV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[401],"default":401},"message":{"type":"string","enum":["Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."],"default":"Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."}},"required":["message"]},"ForbiddenV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[403],"default":403},"message":{"type":"string","enum":["Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."],"default":"Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."}},"required":["message"]},"NotFoundV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[404],"default":404},"message":{"type":"string","enum":["The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."],"default":"The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."}},"required":["message"]},"InternalErrorV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[500],"default":500},"message":{"type":"string","enum":["Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"],"default":"Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"}},"required":["message"]}}},"paths":{"/api/v2/transactions/mobilepay":{"post":{"tags":["Ecom Payments"],"summary":"Initiate a MobilePay payment","description":"Initiate a MobilePay payment.","operationId":"mobilePayTransaction","parameters":[{"name":"x-vfi-api-idempotencykey","required":false,"in":"header","schema":{"type":"string","description":"A value you specify that uniquely identifies this transaction. This must be used to trigger a reversal if there is a timeout.","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mobilePayPaymentInitiationRequest"}}}},"responses":{"201":{"description":"The MobilePay Payment Initiation Response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/mobilePayPaymentInitiationResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestV2Docs"}}}},"401":{"description":"Unauthorised Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedV2Docs"}}}},"403":{"description":"Forbidden Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenV2Docs"}}}},"404":{"description":"Not Found Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundV2Docs"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalErrorV2Docs"}}}}}}}}}
```

## Initiate a Klarna payment.

> Initiate a Klarna payment.

```json
{"openapi":"3.0.0","info":{"title":"Verifone eCommerce API","version":"2.38.1"},"servers":[{"url":"https://emea.gsc.verifone.cloud/oidc","description":"EMEA Production"},{"url":"https://us.gsc.verifone.cloud/oidc","description":"Americas Production"},{"url":"https://nz.gsc.verifone.cloud/oidc","description":"New Zealand Production"},{"url":"https://cst.test-gsc.vfims.com/oidc","description":"Global Sandbox"},{"url":"https://uscst-gb.gsc.vficloud.net/oidc","description":"Americas Sandbox"}],"security":[{"BearerAuth":[]},{"BasicAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"BasicAuth":{"type":"http","scheme":"basic"}},"schemas":{"klarnaPaymentInitiationRequest":{"title":"Klarna Initiate Payment Request","required":["amount","currency_code","customer","entity_id","line_items","locale","purchase_country","redirect_url"],"type":"object","properties":{"entity_id":{"type":"string","description":"The identifier of merchant entity you want to process the transaction request with. Entity Id can be located on the organization level as Organization ID (Administration > Organizations > [Organization] > Organisation ID value)","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."},"tax_amount":{"type":"integer","description":"Tax Amount is charged without a decimal place e.g. $1.5 = 150. Currencies can have different decimals/exponentials, see Currencies Section for more details."},"redirect_url":{"maxLength":2048,"type":"string","description":"Checkout Redirect URL which will be used by Klarna on Payment Completion."},"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":{"maxLength":25,"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."},"merchant_reference":{"type":"string","description":"A reference specified by the merchant to identify the transaction.","maxLength":50},"shipping_information":{"allOf":[{"$ref":"#/components/schemas/ShippingInformationDto"}]},"line_items":{"type":"array","description":"The array of items being purchased.","items":{"$ref":"#/components/schemas/LineItem"}},"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},"currency_code":{"type":"string","description":"Three-letter ISO 4217 alphabetical currency code. e.g. EUR. Values correspond\nto [ISO 4217](https://wikipedia.org/wiki/ISO_4217).\n\nPlease note that Klarna only supports EURO (EUR), Norwegian krone (NOK) , Swedish krona (SEK) and Danish krone (DKK).","enum":["EUR","NOK","SEK","DKK"]},"locale":{"$ref":"#/components/schemas/Locale"}}},"ShippingInformationDto":{"type":"object","additionalProperties":false,"description":"The address where the purchased goods should be delivered to.","title":"Shipping Address","properties":{"address":{"type":"string","maxLength":300,"description":"Street address of the recipient."},"city":{"type":"string","maxLength":28,"description":"City of the recipient."},"country":{"type":"string","maxLength":2,"minLength":2,"format":"country-code","description":"A 2-letter ISO3166 alpha-2 country code for the address."},"postal_code":{"type":"string","minLength":1,"maxLength":16,"description":"A postal code for the address."},"email":{"type":"string","title":"Email Address","minLength":3,"maxLength":254,"format":"email","description":"A valid internationalized email address, as defined by RFC 5322, RFC 6530, and other RFCs. Due to RFC 5321, an email address can be up to 254 characters long even though up to 64 characters are allowed before and 255 characters are allowed after the @ sign. This pattern verifies only that the string contains an unquoted @ sign. See https://tools.ietf.org/html/rfc5322#section-3.4.1."},"first_name":{"type":"string","maxLength":100,"description":"First name of the recipient."},"last_name":{"type":"string","maxLength":100,"description":"Last name of the recipient."},"phone":{"type":"number","maxLength":15,"description":"Numbers only, no dash or any other separator."},"state":{"type":"string","maxLength":35,"description":"A region / state / province for the address."}},"required":["address","city","country","postal_code"]},"LineItem":{"title":"Ecommerce basket line items","required":["name","quantity","tax_rate","total_amount","total_tax_amount"],"type":"object","properties":{"image_url":{"type":"string","description":"Image URL for the line item"},"name":{"maxLength":255,"type":"string","description":"Descriptive name of the order line item"},"quantity":{"type":"integer","description":"Quantity of the order line item"},"unit_price":{"type":"integer","description":"Unit Price is charged without a decimal place  e.g. $1.5 = 150. Currencies can have different decimals/exponentials,  see Currencies Section for more details."},"unit_price_tax":{"type":"integer","description":"Unit Price Tax is charged without a decimal place  e.g. $1.5 = 150. Currencies can have different decimals/exponentials,  see Currencies Section for more details."},"tax_rate":{"type":"number","description":"Item Tax (VAT) Rate.","format":"float"},"discount_amount":{"type":"integer","description":"Discount inclusive of tax. This is charged without a decimal place  e.g. $1.5 = 150. Currencies can have different decimals/exponentials,  see Currencies Section for more details."},"total_tax_amount":{"type":"integer","description":"Total tax amount is charged without a decimal place  e.g. $1.5 = 150. Currencies can have different decimals/exponentials,  see Currencies Section for more details."},"total_amount":{"type":"integer","description":"Total Amount is charged without a decimal place  e.g. $1.5 = 150. Currencies can have different decimals/exponentials,  see Currencies Section for more details."},"sku":{"maxLength":127,"type":"string","description":"The stock keeping unit (SKU) for the item."},"description":{"maxLength":127,"type":"string","description":"The detailed item description."},"category":{"type":"string","description":"The item category type. <br />  The possible values are: <br />  * DIGITAL_GOODS - Goods that are stored, delivered, and used in their electronic format. This value is not currently supported for API callers that leverage the [PayPal for Commerce Platform](https://www.paypal.com/us/webapps/mpp/commerce-platform) product. <br />  * DIGITAL_GOODS - A tangible item that can be shipped with proof of delivery. <br />","enum":["DIGITAL_GOODS","PHYSICAL_GOODS"]}},"description":"The description of item(s) that was included in a transaction or purchase."},"Locale":{"title":"Locale","required":["countryCode"],"type":"object","properties":{"countryCode":{"title":"Country Code","type":"string","description":"The [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as is used in that country's top-level domain names.</blockquote>."},"language":{"$ref":"#/components/schemas/Language"},"timezoneId":{"$ref":"#/components/schemas/TimeZone"}},"description":"JSON schema for locale. Based off the BCP-47 language tag, ISO-3166 alpha-2 country code, and Olsen IANA time zone ID."},"Language":{"title":"Language","maxLength":11,"minLength":2,"type":"string","description":"The BCP-47 language tag. Composed of:<ul><li>The ISO-639 alpha-1 or ISO-639 alpha-2 language code</li><li>(Optional) The ISO-15924 script tag</li><li>The ISO-3166 alpha-2 country code</li></ul>"},"TimeZone":{"maxLength":127,"minLength":1,"type":"string","description":"A time zone, following the format defined in the IANA tz database (https://www.iana.org/time-zones). Valid examples are America/New_York and Etc/UTC. Do not use ambiguous, non-qualified values such as EST or GB. Before including this type in your interface, please consider whether it is actually appropriate to convey time zone information with your type. It is almost always the case that this should be transformed from UTC at the time of display to the user; this type might therefore be most associated with user-preference APIs."},"klarnaPaymentInitiationResponse":{"title":"Klarna Initiate Payment Result","type":"object","properties":{"id":{"title":"Transaction ID","type":"string","description":"The ID of the transaction.","format":"uuid-flexible"},"instore_reference":{"type":"string","description":"In-store reference for the transaction"},"client_token":{"type":"string","description":"Client token returned by klarna host to initialize the payment process"},"payment_method_categories":{"type":"array","description":"Provides a list of available payment method categories at the time of checkout","items":{"title":"Klarna Payment Method Category Object","type":"object","properties":{"identifier":{"type":"string","description":"The Identifier of the payment method category"},"name":{"type":"string","description":"Name of the Klarna payment method category"},"asset_urls":{"type":"object","properties":{"standard":{"type":"string","description":"URL of the standard asset"},"descriptive":{"type":"string","description":"URL of the descriptive asset"}},"description":"Asset URLs for the payment method provided by Klarna"}},"description":"Klarna available payment method category for a new payment credit transaction returned by Klarna Host"}},"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."},"blocked":{"type":"boolean","description":"True if the transaction has been blocked by a ruleset, false otherwise"},"created_by":{"type":"string","description":"The ID of the user who initiated the transaction. Only set when shopper_interaction = moto, mail_order or telephone_order"},"created_at":{"type":"string","description":"The time at which the transaction was created.","format":"date-time"},"customer":{"type":"string","description":"The ID of a customer"},"details":{"$ref":"#/components/schemas/ecomPaymentResponse_details"},"merchant_reference":{"type":"string","description":"A reference specified by the merchant to identify the transaction.","maxLength":50},"processor":{"type":"string","description":"The name of the processor used for this transaction","default":"KLARNA"},"payment_product":{"type":"string","description":"The payment product corresponding to this transaction","default":"KLARNA"},"payment_product_type":{"$ref":"#/components/schemas/PaymentProductType"},"shipping_information":{"allOf":[{"$ref":"#/components/schemas/ShippingInformationDto"}]},"status":{"type":"string","description":"The outcome of the payment request.","title":"Ecommerce Transaction Status","enum":["INITIATED","AUTHORIZED","AUTHORIZATION_VOIDED","CANCELLED","CUSTOMER_ACCEPTED","REFUNDED","FAILED","PENDING","DECLINED","SETTLEMENT_CANCELLED","SETTLEMENT_REQUESTED","SETTLEMENT_SUBMITTED","SETTLEMENT_COMPLETED","SETTLEMENT_PARTIAL","SETTLEMENT_DECLINED","VOIDED","UNKNOWN"]},"status_reason":{"type":"string","description":"Message provided by the 3rd party service as additional information, when the transaction does not succeed."},"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"},"geo_location":{"type":"array","description":"The latitude / longitude resolved from the customer's ip address.","items":{"type":"number"}},"city":{"type":"string","description":"The city resolved from the customer's ip address."},"country_code":{"title":"Country Code","type":"string","description":"The [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as is used in that country's top-level domain names.</blockquote>."}}},"ecomPaymentResponse_details":{"type":"object","properties":{"auto_capture":{"type":"boolean","description":"Indicates whether the transaction would be automatically captured upon authorisation."},"mid":{"type":"string","description":"Merchant ID (MID)","format":"integer"}}},"PaymentProductType":{"title":"Payment Product Type","type":"string","description":"The payment product type corresponding to this transaction. Fees applied to the transaction, is based on the payment product","enum":["Affirm","Amex","Crypto","Diners Club International","Discover","JCB","Klarna","Maestro","Mastercard","OP Online Payment","Swish","Unknown","Visa"],"default":"Unknown"},"BadRequestV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[400],"default":400},"message":{"type":"string","enum":["At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."],"default":"At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."}},"required":["message"]},"UnauthorizedV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[401],"default":401},"message":{"type":"string","enum":["Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."],"default":"Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."}},"required":["message"]},"ForbiddenV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[403],"default":403},"message":{"type":"string","enum":["Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."],"default":"Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."}},"required":["message"]},"NotFoundV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[404],"default":404},"message":{"type":"string","enum":["The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."],"default":"The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."}},"required":["message"]},"InternalErrorV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[500],"default":500},"message":{"type":"string","enum":["Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"],"default":"Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"}},"required":["message"]}}},"paths":{"/api/v2/transactions/klarna":{"post":{"tags":["Ecom Payments"],"summary":"Initiate a Klarna payment.","description":"Initiate a Klarna payment.","operationId":"klarnaInitTransaction","parameters":[{"name":"x-vfi-api-idempotencykey","required":false,"in":"header","schema":{"type":"string","description":"A value you specify that uniquely identifies this transaction. This must be used to trigger a reversal if there is a timeout.","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/klarnaPaymentInitiationRequest"}}}},"responses":{"201":{"description":"Klarna Initiate Payment Result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/klarnaPaymentInitiationResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestV2Docs"}}}},"401":{"description":"Unauthorised Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedV2Docs"}}}},"403":{"description":"Forbidden Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenV2Docs"}}}},"404":{"description":"Not Found Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundV2Docs"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalErrorV2Docs"}}}}}}}}}
```

## Initiate a Swish payment

> Initiate a Swish payment.

```json
{"openapi":"3.0.0","info":{"title":"Verifone eCommerce API","version":"2.38.1"},"servers":[{"url":"https://emea.gsc.verifone.cloud/oidc","description":"EMEA Production"},{"url":"https://us.gsc.verifone.cloud/oidc","description":"Americas Production"},{"url":"https://nz.gsc.verifone.cloud/oidc","description":"New Zealand Production"},{"url":"https://cst.test-gsc.vfims.com/oidc","description":"Global Sandbox"},{"url":"https://uscst-gb.gsc.vficloud.net/oidc","description":"Americas Sandbox"}],"security":[{"BearerAuth":[]},{"BasicAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"BasicAuth":{"type":"http","scheme":"basic"}},"schemas":{"swishPaymentInitiationRequest":{"title":"Swish Payment Initiation Request","required":["amount","currency_code","merchant_reference","payment_provider_contract"],"type":"object","properties":{"entity_id":{"type":"string","description":"The identifier of merchant entity you want to process the transaction request with. Entity Id can be located on the organization level as Organization ID (Administration > Organizations > [Organization] > Organisation ID value)","format":"uuid-flexible"},"app_phone_number":{"maxLength":18,"type":"string","description":"The Phone Number registered with Swish Mobile APP. This field is required for ECommerce flow, not needed MCommerce flow."},"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."},"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 and also shown in the Swish application. Max 50 chars, allowed characters are the letters a-ö, A-Ö, the numbers 0-9 and the special characters :;.,?!()” and space","maxLength":50},"merchant_reference":{"type":"string","description":"A reference specified by the merchant to identify the transaction.","maxLength":50},"shipping_information":{"allOf":[{"$ref":"#/components/schemas/ShippingInformationDto"}]},"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},"currency_code":{"title":"Currency Code","type":"string","description":"Three-letter ISO 4217 alphabetical currency code. e.g. USD. Values correspond\nto [ISO 4217](https://wikipedia.org/wiki/ISO_4217).\n\nPlease note that Swish only supports Swedish krona (SEK).","enum":["SEK"]}}},"ShippingInformationDto":{"type":"object","additionalProperties":false,"description":"The address where the purchased goods should be delivered to.","title":"Shipping Address","properties":{"address":{"type":"string","maxLength":300,"description":"Street address of the recipient."},"city":{"type":"string","maxLength":28,"description":"City of the recipient."},"country":{"type":"string","maxLength":2,"minLength":2,"format":"country-code","description":"A 2-letter ISO3166 alpha-2 country code for the address."},"postal_code":{"type":"string","minLength":1,"maxLength":16,"description":"A postal code for the address."},"email":{"type":"string","title":"Email Address","minLength":3,"maxLength":254,"format":"email","description":"A valid internationalized email address, as defined by RFC 5322, RFC 6530, and other RFCs. Due to RFC 5321, an email address can be up to 254 characters long even though up to 64 characters are allowed before and 255 characters are allowed after the @ sign. This pattern verifies only that the string contains an unquoted @ sign. See https://tools.ietf.org/html/rfc5322#section-3.4.1."},"first_name":{"type":"string","maxLength":100,"description":"First name of the recipient."},"last_name":{"type":"string","maxLength":100,"description":"Last name of the recipient."},"phone":{"type":"number","maxLength":15,"description":"Numbers only, no dash or any other separator."},"state":{"type":"string","maxLength":35,"description":"A region / state / province for the address."}},"required":["address","city","country","postal_code"]},"swishPaymentInitiationResponse":{"title":"Swish Payment Initiation Response","type":"object","properties":{"id":{"title":"Transaction ID","type":"string","description":"The ID of the transaction.","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."},"blocked":{"type":"boolean","description":"True if the transaction has been blocked by a ruleset, false otherwise"},"created_at":{"type":"string","description":"The time at which the transaction was created.","format":"date-time"},"customer":{"type":"string","description":"The ID of a customer"},"details":{"$ref":"#/components/schemas/ecomPaymentResponse_details"},"merchant_reference":{"type":"string","description":"A reference specified by the merchant to identify the transaction.","maxLength":50},"processor":{"type":"string","description":"The name of the processor used for this transaction","default":"SWISH"},"payment_product":{"type":"string","description":"The payment product corresponding to this transaction","default":"SWISH"},"payment_product_type":{"$ref":"#/components/schemas/PaymentProductType"},"shipping_information":{"allOf":[{"$ref":"#/components/schemas/ShippingInformationDto"}]},"status":{"type":"string","description":"The outcome of the payment request.","title":"Ecommerce Transaction Status","enum":["INITIATED","AUTHORIZED","AUTHORIZATION_VOIDED","CANCELLED","CUSTOMER_ACCEPTED","REFUNDED","FAILED","PENDING","DECLINED","SETTLEMENT_CANCELLED","SETTLEMENT_REQUESTED","SETTLEMENT_SUBMITTED","SETTLEMENT_COMPLETED","SETTLEMENT_PARTIAL","SETTLEMENT_DECLINED","VOIDED","UNKNOWN"]},"status_reason":{"type":"string","description":"The outcome of the payment request.","title":"Ecommerce Transaction Status","enum":["INITIATED","AUTHORIZED","AUTHORIZATION_VOIDED","CANCELLED","CUSTOMER_ACCEPTED","REFUNDED","FAILED","PENDING","DECLINED","SETTLEMENT_CANCELLED","SETTLEMENT_REQUESTED","SETTLEMENT_SUBMITTED","SETTLEMENT_COMPLETED","SETTLEMENT_PARTIAL","SETTLEMENT_DECLINED","VOIDED","UNKNOWN"]},"created_by":{"type":"string","description":"The ID of the user who initiated the transaction. Only set when shopper_interaction = moto, mail_order or telephone_order"},"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"},"geo_location":{"type":"array","description":"The latitude / longitude resolved from the customer's ip address.","items":{"type":"number"}},"city":{"type":"string","description":"The city resolved from the customer's ip address."},"country_code":{"title":"Country Code","type":"string","description":"The [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as is used in that country's top-level domain names.</blockquote>."},"payment_request_token":{"type":"string","description":"Returned when creating an m-commerce payment request. The token to use when opening the Swish app. Please find more details at [Swish documentation](https://developer.swish.nu/documentation/guides/trigger-the-swish-app)."}}},"ecomPaymentResponse_details":{"type":"object","properties":{"auto_capture":{"type":"boolean","description":"Indicates whether the transaction would be automatically captured upon authorisation."},"mid":{"type":"string","description":"Merchant ID (MID)","format":"integer"}}},"PaymentProductType":{"title":"Payment Product Type","type":"string","description":"The payment product type corresponding to this transaction. Fees applied to the transaction, is based on the payment product","enum":["Affirm","Amex","Crypto","Diners Club International","Discover","JCB","Klarna","Maestro","Mastercard","OP Online Payment","Swish","Unknown","Visa"],"default":"Unknown"},"BadRequestV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[400],"default":400},"message":{"type":"string","enum":["At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."],"default":"At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."}},"required":["message"]},"UnauthorizedV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[401],"default":401},"message":{"type":"string","enum":["Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."],"default":"Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."}},"required":["message"]},"ForbiddenV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[403],"default":403},"message":{"type":"string","enum":["Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."],"default":"Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."}},"required":["message"]},"NotFoundV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[404],"default":404},"message":{"type":"string","enum":["The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."],"default":"The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."}},"required":["message"]},"InternalErrorV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[500],"default":500},"message":{"type":"string","enum":["Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"],"default":"Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"}},"required":["message"]}}},"paths":{"/api/v2/transactions/swish":{"post":{"tags":["Ecom Payments"],"summary":"Initiate a Swish payment","description":"Initiate a Swish payment.","operationId":"swishTransaction","parameters":[{"name":"x-vfi-api-idempotencykey","required":false,"in":"header","schema":{"type":"string","description":"A value you specify that uniquely identifies this transaction. This must be used to trigger a reversal if there is a timeout.","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/swishPaymentInitiationRequest"}}}},"responses":{"201":{"description":"The Swish Payment Initiation Response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/swishPaymentInitiationResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestV2Docs"}}}},"401":{"description":"Unauthorised Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedV2Docs"}}}},"403":{"description":"Forbidden Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenV2Docs"}}}},"404":{"description":"Not Found Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundV2Docs"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalErrorV2Docs"}}}}}}}}}
```

## Initiate a OP Online payment

> Initiate a OP Online payment.

```json
{"openapi":"3.0.0","info":{"title":"Verifone eCommerce API","version":"2.38.1"},"servers":[{"url":"https://emea.gsc.verifone.cloud/oidc","description":"EMEA Production"},{"url":"https://us.gsc.verifone.cloud/oidc","description":"Americas Production"},{"url":"https://nz.gsc.verifone.cloud/oidc","description":"New Zealand Production"},{"url":"https://cst.test-gsc.vfims.com/oidc","description":"Global Sandbox"},{"url":"https://uscst-gb.gsc.vficloud.net/oidc","description":"Americas Sandbox"}],"security":[{"BearerAuth":[]},{"BasicAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"BasicAuth":{"type":"http","scheme":"basic"}},"schemas":{"opOnlinePaymentInitiationRequest":{"title":"OP Online Payment Initiation Request","required":["amount","bank_id","cancel_url","currency_code","merchant_reference","payment_provider_contract","reject_url","return_url"],"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","title":"paymentProviderContractId"},"bank_id":{"maxLength":40,"type":"string","description":"OP bank ID for the bank to be used"},"bank_name":{"type":"string","description":"Bank name for the selected Bank"},"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."},"customer":{"title":"Customer ID","type":"string","description":"The ID of a customer.","format":"uuid-flexible"},"dynamic_descriptor":{"maxLength":50,"type":"string","description":"A short [descriptor](https://en.wikipedia.org/wiki/Billing_descriptor) to be shown on the invoice of the customer. Please refer to the integration guide for the format requirements."},"line_items":{"type":"array","description":"The array of items being purchased.","items":{"$ref":"#/components/schemas/LineItem"}},"merchant_reference":{"type":"string","description":"A reference specified by the merchant to identify the transaction.","maxLength":50},"user_agent":{"type":"string","description":"The full user agent string of the device the customer used to submit the transaction.","maxLength":256},"currency_code":{"$ref":"#/components/schemas/CurrencyCodeEnum"},"language":{"$ref":"#/components/schemas/Language"},"message_to_customer":{"maxLength":500,"type":"string","description":"this message will be shown on OP's payment list"},"return_url":{"type":"string","description":"redirect url for successful payments"},"cancel_url":{"type":"string","description":"redirect url for cancelled payments"},"reject_url":{"type":"string","description":"redirect url for rejected payments"},"payout_reference":{"maxLength":20,"minLength":4,"pattern":"^[0-9]{4,20}$","type":"string","description":"A settlement reference specified by the merchant to identify the transaction including checksum digit."}}},"LineItem":{"title":"Ecommerce basket line items","required":["name","quantity","tax_rate","total_amount","total_tax_amount"],"type":"object","properties":{"image_url":{"type":"string","description":"Image URL for the line item"},"name":{"maxLength":255,"type":"string","description":"Descriptive name of the order line item"},"quantity":{"type":"integer","description":"Quantity of the order line item"},"unit_price":{"type":"integer","description":"Unit Price is charged without a decimal place  e.g. $1.5 = 150. Currencies can have different decimals/exponentials,  see Currencies Section for more details."},"unit_price_tax":{"type":"integer","description":"Unit Price Tax is charged without a decimal place  e.g. $1.5 = 150. Currencies can have different decimals/exponentials,  see Currencies Section for more details."},"tax_rate":{"type":"number","description":"Item Tax (VAT) Rate.","format":"float"},"discount_amount":{"type":"integer","description":"Discount inclusive of tax. This is charged without a decimal place  e.g. $1.5 = 150. Currencies can have different decimals/exponentials,  see Currencies Section for more details."},"total_tax_amount":{"type":"integer","description":"Total tax amount is charged without a decimal place  e.g. $1.5 = 150. Currencies can have different decimals/exponentials,  see Currencies Section for more details."},"total_amount":{"type":"integer","description":"Total Amount is charged without a decimal place  e.g. $1.5 = 150. Currencies can have different decimals/exponentials,  see Currencies Section for more details."},"sku":{"maxLength":127,"type":"string","description":"The stock keeping unit (SKU) for the item."},"description":{"maxLength":127,"type":"string","description":"The detailed item description."},"category":{"type":"string","description":"The item category type. <br />  The possible values are: <br />  * DIGITAL_GOODS - Goods that are stored, delivered, and used in their electronic format. This value is not currently supported for API callers that leverage the [PayPal for Commerce Platform](https://www.paypal.com/us/webapps/mpp/commerce-platform) product. <br />  * DIGITAL_GOODS - A tangible item that can be shipped with proof of delivery. <br />","enum":["DIGITAL_GOODS","PHYSICAL_GOODS"]}},"description":"The description of item(s) that was included in a transaction or purchase."},"CurrencyCodeEnum":{"title":"Currency Code","type":"string","description":"Three-letter ISO 4217 alphabetical currency code. e.g. USD. Values correspond\nto [ISO 4217](https://wikipedia.org/wiki/ISO_4217).\n\n<b>Deprecated:</b> `BYR` (replaced by BYN), `FRF` (replaced by EUR), `LTL` (replaced by EUR), `LVL` (replaced by EUR), `MRO` (replaced by MRU), `STD` (replaced by STN), `USS` (no replacement), `VEF`  (replaced by VES), `ZMK` (replaced by ZMV) and `BTC` (Bitcoin only supported as Crypto Amount).","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","BYN","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","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","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","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UYW","UZS","VES","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMW","ZWL"]},"Language":{"title":"Language","maxLength":11,"minLength":2,"type":"string","description":"The BCP-47 language tag. Composed of:<ul><li>The ISO-639 alpha-1 or ISO-639 alpha-2 language code</li><li>(Optional) The ISO-15924 script tag</li><li>The ISO-3166 alpha-2 country code</li></ul>"},"opOnlinePaymentInitiationResponse":{"title":"OP Online Payment Payment Initiation Response","type":"object","properties":{"id":{"title":"Transaction ID","type":"string","description":"The ID of the transaction.","format":"uuid-flexible"},"payment_url":{"type":"string","description":"The payment URL can be used to redirect to transfer the money.","format":"uri"},"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."},"created_at":{"type":"string","description":"The time at which the transaction was created.","format":"date-time"},"customer":{"type":"string","description":"The ID of a customer"},"merchant_reference":{"type":"string","description":"A reference specified by the merchant to identify the transaction.","maxLength":50},"processor":{"type":"string","description":"The name of the processor used for this transaction","default":"OP_ONLINE_PAYMENT"},"payment_product":{"type":"string","description":"The payment product corresponding to this transaction","default":"OP_ONLINE_PAYMENT"},"payment_product_type":{"$ref":"#/components/schemas/PaymentProductType"},"status":{"type":"string","description":"The outcome of the payment request.","title":"Ecommerce Transaction Status","enum":["INITIATED","AUTHORIZED","AUTHORIZATION_VOIDED","CANCELLED","CUSTOMER_ACCEPTED","REFUNDED","FAILED","PENDING","DECLINED","SETTLEMENT_CANCELLED","SETTLEMENT_REQUESTED","SETTLEMENT_SUBMITTED","SETTLEMENT_COMPLETED","SETTLEMENT_PARTIAL","SETTLEMENT_DECLINED","VOIDED","UNKNOWN"]},"status_reason":{"type":"string","description":"Message provided by the 3rd party service as additional information, when the transaction does not succeed."},"geo_location":{"type":"array","description":"The latitude / longitude resolved from the customer's ip address.","items":{"type":"number"}},"city":{"type":"string","description":"The city resolved from the customer's ip address."},"country_code":{"title":"Country Code","type":"string","description":"The [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as is used in that country's top-level domain names.</blockquote>."},"payout_reference":{"maxLength":20,"minLength":4,"pattern":"^[0-9]{4,20}$","type":"string","description":"A settlement reference specified by the merchant to identify the transaction including checksum digit."}}},"PaymentProductType":{"title":"Payment Product Type","type":"string","description":"The payment product type corresponding to this transaction. Fees applied to the transaction, is based on the payment product","enum":["Affirm","Amex","Crypto","Diners Club International","Discover","JCB","Klarna","Maestro","Mastercard","OP Online Payment","Swish","Unknown","Visa"],"default":"Unknown"},"BadRequestV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[400],"default":400},"message":{"type":"string","enum":["At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."],"default":"At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."}},"required":["message"]},"UnauthorizedV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[401],"default":401},"message":{"type":"string","enum":["Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."],"default":"Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."}},"required":["message"]},"ForbiddenV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[403],"default":403},"message":{"type":"string","enum":["Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."],"default":"Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."}},"required":["message"]},"NotFoundV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[404],"default":404},"message":{"type":"string","enum":["The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."],"default":"The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."}},"required":["message"]},"InternalErrorV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[500],"default":500},"message":{"type":"string","enum":["Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"],"default":"Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"}},"required":["message"]}}},"paths":{"/api/v2/transactions/op-online-payment":{"post":{"tags":["Ecom Payments"],"summary":"Initiate a OP Online payment","description":"Initiate a OP Online payment.","operationId":"opOnlinePaymentTransaction","parameters":[{"name":"x-vfi-api-idempotencykey","required":false,"in":"header","schema":{"type":"string","description":"A value you specify that uniquely identifies this transaction. This must be used to trigger a reversal if there is a timeout.","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/opOnlinePaymentInitiationRequest"}}}},"responses":{"201":{"description":"The OP Online Payment Initiation Response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/opOnlinePaymentInitiationResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestV2Docs"}}}},"401":{"description":"Unauthorised Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedV2Docs"}}}},"403":{"description":"Forbidden Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenV2Docs"}}}},"404":{"description":"Not Found Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundV2Docs"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalErrorV2Docs"}}}}}}}}}
```

## Get a list of Banks supported by OP Online Payment

> Get a list of Banks supported by OP Online Payment.

```json
{"openapi":"3.0.0","info":{"title":"Verifone eCommerce API","version":"2.38.1"},"servers":[{"url":"https://emea.gsc.verifone.cloud/oidc","description":"EMEA Production"},{"url":"https://us.gsc.verifone.cloud/oidc","description":"Americas Production"},{"url":"https://nz.gsc.verifone.cloud/oidc","description":"New Zealand Production"},{"url":"https://cst.test-gsc.vfims.com/oidc","description":"Global Sandbox"},{"url":"https://uscst-gb.gsc.vficloud.net/oidc","description":"Americas Sandbox"}],"security":[{"BearerAuth":[]},{"BasicAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"BasicAuth":{"type":"http","scheme":"basic"}},"schemas":{"opOnlinePaymentGetBanksResponse":{"title":"OP Online Payment list of Banks Response","type":"array","items":{"type":"object","properties":{"bank_id":{"type":"string"},"bank_name":{"type":"string"}}}},"BadRequestV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[400],"default":400},"message":{"type":"string","enum":["At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."],"default":"At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."}},"required":["message"]},"UnauthorizedV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[401],"default":401},"message":{"type":"string","enum":["Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."],"default":"Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."}},"required":["message"]},"ForbiddenV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[403],"default":403},"message":{"type":"string","enum":["Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."],"default":"Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."}},"required":["message"]},"NotFoundV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[404],"default":404},"message":{"type":"string","enum":["The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."],"default":"The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."}},"required":["message"]},"InternalErrorV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[500],"default":500},"message":{"type":"string","enum":["Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"],"default":"Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"}},"required":["message"]}}},"paths":{"/api/v2/get-op-banks":{"get":{"tags":["Ecom Payments"],"summary":"Get a list of Banks supported by OP Online Payment","description":"Get a list of Banks supported by OP Online Payment.","operationId":"getOpBanks","responses":{"201":{"description":"The OP Online Payment list of Banks Response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/opOnlinePaymentGetBanksResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestV2Docs"}}}},"401":{"description":"Unauthorised Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedV2Docs"}}}},"403":{"description":"Forbidden Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenV2Docs"}}}},"404":{"description":"Not Found Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundV2Docs"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalErrorV2Docs"}}}}}}}}}
```

## Initiate a Affirm payment.

> With Affirm, you will never owe more than you agree to up front. Instead, you’ll always get a flexible, transparent, and convenient way to pay over time.

```json
{"openapi":"3.0.0","info":{"title":"Verifone eCommerce API","version":"2.38.1"},"servers":[{"url":"https://emea.gsc.verifone.cloud/oidc","description":"EMEA Production"},{"url":"https://us.gsc.verifone.cloud/oidc","description":"Americas Production"},{"url":"https://nz.gsc.verifone.cloud/oidc","description":"New Zealand Production"},{"url":"https://cst.test-gsc.vfims.com/oidc","description":"Global Sandbox"},{"url":"https://uscst-gb.gsc.vficloud.net/oidc","description":"Americas Sandbox"}],"security":[{"BearerAuth":[]},{"BasicAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"BasicAuth":{"type":"http","scheme":"basic"}},"schemas":{"affirmPaymentInitiationRequest":{"title":"Affirm Initiate Payment Request","required":["payment_provider_contract","amount","redirect_url","cancel_url","currency_code"],"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","title":"paymentProviderContractId"},"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."},"tax_amount":{"description":"Tax Amount is charged without a decimal place e.g. $1.5 = 150. Currencies can have different decimals/exponentials, see Currencies Section for more details.","type":"integer"},"redirect_url":{"type":"string","description":"Checkout Redirect URL which will be used by Affirm on Payment Completion.","maxLength":2048},"cancel_url":{"type":"string","description":"Checkout Cancel URL which will be used by Affirm on Payment Completion.","maxLength":2048},"capture_now":{"type":"boolean","description":"Whether auto-capture or not. Setting the to 'false' will only authorize the transaction.","default":true},"customer":{"title":"Customer ID","type":"string","description":"The ID of a customer.","format":"uuid-flexible"},"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"}]},"customer_details":{"$ref":"#/components/schemas/CustomerDetailsDto"},"merchant_reference":{"type":"string","description":"A reference specified by the merchant to identify the transaction.","maxLength":50},"line_items":{"type":"array","description":"The array of items being purchased.","items":{"$ref":"#/components/schemas/affirmLineItem"}},"user_agent":{"type":"string","description":"The full user agent string of the device the customer used to submit the transaction.","maxLength":256},"currency_code":{"$ref":"#/components/schemas/CurrencyCodeEnum"},"locale":{"$ref":"#/components/schemas/Locale"},"mode":{"type":"string","description":"Set to modal to enable the modal checkout flow (default uses redirect checkout flow). Possible values: authorization.\n * `MODAL:` Users go through the Affirm flow in a modal window while remaining on merchant site. Modal checkout with the help of affirm.js will enable client-side callbacks so that merchant can do post checkout confirmation procedures on merchant site.\n * `REDIRECT:` Users are redirected to Affirm site, where they authenticate and go through the checkout flow. Once they complete checkout, they're returned to the merchant site.","enum":["MODAL","REDIRECT"],"default":"REDIRECT"}}},"CustomerDetailsDto":{"type":"object","title":"Customer","description":"Customer information containing billing and shipping details.","additionalProperties":false,"properties":{"title":{"type":"string","description":"The prefix to the party name. This is sometimes referred to as a title, salutation or appellation.","maxLength":120},"first_name":{"type":"string","description":"The first name of the Customer. This may be a proper name or some form of entity name or nickname.","maxLength":100},"middle_name":{"type":"string","description":"The middle name of the Customer. This may be a proper name or some form of entity name or nickname.","maxLength":100},"last_name":{"type":"string","description":"The last name or family name of the Customer.","maxLength":100},"company_name":{"type":"string","description":"Where the Customer is an organisation or company this name should be used rather than the firstName lastName","maxLength":100},"phone_number":{"type":"string","description":"Customers phone number for billing address.","maxLength":25},"email_address":{"type":"string","title":"email","format":"email","description":"Customer email address, which might be used during refund flow."},"shipping":{"allOf":[{"$ref":"#/components/schemas/CustomerDetailsShippingInformationDto"}]},"billing":{"allOf":[{"$ref":"#/components/schemas/BillingDto"},{"description":"The address of billing.","title":"Billing Address"}]},"language":{"type":"string","title":"language","description":"The BCP-47 language tag. The tag is composed of:\n\n* The ISO-639 alpha-1 or ISO-639 alpha-2 language code\n\n* (Optional) The ISO-15924 script tag\n\n* The ISO-3166 alpha-2 country code\n\n `NOTE:`The value is case-insensitive, so for example \"he\" and \"HE\" should be considered equal."}}},"CustomerDetailsShippingInformationDto":{"type":"object","additionalProperties":false,"description":"The address where the purchased goods should be delivered to.","title":"Shipping Address","properties":{"address":{"type":"string","maxLength":300,"description":"Street address of the recipient."},"city":{"type":"string","maxLength":28,"description":"City of the recipient."},"country":{"type":"string","maxLength":2,"minLength":2,"format":"country-code","description":"A 2-letter ISO3166 alpha-2 country code for the address."},"postal_code":{"type":"string","minLength":1,"maxLength":16,"description":"A postal code for the address."},"email":{"type":"string","title":"Email Address","minLength":3,"maxLength":254,"format":"email","description":"A valid internationalized email address, as defined by RFC 5322, RFC 6530, and other RFCs. Due to RFC 5321, an email address can be up to 254 characters long even though up to 64 characters are allowed before and 255 characters are allowed after the @ sign. This pattern verifies only that the string contains an unquoted @ sign. See https://tools.ietf.org/html/rfc5322#section-3.4.1."},"first_name":{"type":"string","maxLength":100,"description":"First name of the recipient."},"last_name":{"type":"string","maxLength":100,"description":"Last name of the recipient."},"phone":{"type":"string","maxLength":18,"description":"Telephone number."},"state":{"type":"string","maxLength":35,"description":"A region / state / province for the address."}},"required":["address","city","country","postal_code"]},"BillingDto":{"type":"object","additionalProperties":false,"properties":{"address_1":{"type":"string","maxLength":40,"description":"Customer's primary billing address information."},"address_2":{"type":"string","maxLength":40,"description":"Customer's secondary billing address information."},"address_3":{"type":"string","maxLength":40,"description":"Customer's third billing address information."},"city":{"type":"string","maxLength":28,"description":"Customer's city on their billing address"},"country":{"type":"string","title":"Country Code","description":"The ISO 3166-1 alpha-3 country code.","enum":["ZZ","AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},"phone":{"type":"string","maxLength":25,"description":"Customer's phone number for billing address. This should be un formatted without hyphens. (e.g. 4422345678)"},"postal_code":{"type":"string","maxLength":10,"description":"Customer's postal code of their billing address."},"state":{"type":"string","maxLength":35,"description":"Customer's state or province of their billing address. (e,g. Ohio = OH, Texas = TX)"}}},"affirmLineItem":{"title":"Affirm basket line items","description":"The description of item(s) that was included in a transaction or purchase.","required":["name","suk","unit_price","quantity","image_url","item_url","total_tax_amount","total_amount"],"type":"object","properties":{"image_url":{"type":"string","description":"Image URL for the line item"},"name":{"maxLength":255,"type":"string","description":"Descriptive name of the order line item"},"quantity":{"type":"integer","description":"Quantity of the order line item"},"unit_price":{"type":"integer","description":"Unit Price is charged without a decimal place  e.g. $1.5 = 150. Currencies can have different decimals/exponentials,  see Currencies Section for more details."},"unit_price_tax":{"type":"integer","description":"Unit Price Tax is charged without a decimal place  e.g. $1.5 = 150. Currencies can have different decimals/exponentials,  see Currencies Section for more details."},"tax_rate":{"type":"number","description":"Item Tax (VAT) Rate.","format":"float"},"discount_amount":{"type":"integer","description":"Discount inclusive of tax. This is charged without a decimal place  e.g. $1.5 = 150. Currencies can have different decimals/exponentials,  see Currencies Section for more details."},"total_tax_amount":{"type":"integer","description":"Total tax amount is charged without a decimal place  e.g. $1.5 = 150. Currencies can have different decimals/exponentials,  see Currencies Section for more details."},"total_amount":{"type":"integer","description":"Total Amount is charged without a decimal place  e.g. $1.5 = 150. Currencies can have different decimals/exponentials,  see Currencies Section for more details."},"sku":{"maxLength":127,"type":"string","description":"The stock keeping unit (SKU) for the item."},"description":{"maxLength":127,"type":"string","description":"The detailed item description."},"category":{"type":"string","description":"The item category type. <br />  The possible values are: <br />  * DIGITAL_GOODS - Goods that are stored, delivered, and used in their electronic format. This value is not currently supported for API callers that leverage the [PayPal for Commerce Platform](https://www.paypal.com/us/webapps/mpp/commerce-platform) product. <br />  * DIGITAL_GOODS - A tangible item that can be shipped with proof of delivery. <br />","enum":["DIGITAL_GOODS","PHYSICAL_GOODS"]}}},"CurrencyCodeEnum":{"title":"Currency Code","type":"string","description":"Three-letter ISO 4217 alphabetical currency code. e.g. USD. Values correspond\nto [ISO 4217](https://wikipedia.org/wiki/ISO_4217).\n\n<b>Deprecated:</b> `BYR` (replaced by BYN), `FRF` (replaced by EUR), `LTL` (replaced by EUR), `LVL` (replaced by EUR), `MRO` (replaced by MRU), `STD` (replaced by STN), `USS` (no replacement), `VEF`  (replaced by VES), `ZMK` (replaced by ZMV) and `BTC` (Bitcoin only supported as Crypto Amount).","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","BYN","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","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","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","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UYW","UZS","VES","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMW","ZWL"]},"Locale":{"title":"Locale","required":["countryCode"],"type":"object","properties":{"countryCode":{"title":"Country Code","type":"string","description":"The [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as is used in that country's top-level domain names.</blockquote>."},"language":{"$ref":"#/components/schemas/Language"},"timezoneId":{"$ref":"#/components/schemas/TimeZone"}},"description":"JSON schema for locale. Based off the BCP-47 language tag, ISO-3166 alpha-2 country code, and Olsen IANA time zone ID."},"Language":{"title":"Language","maxLength":11,"minLength":2,"type":"string","description":"The BCP-47 language tag. Composed of:<ul><li>The ISO-639 alpha-1 or ISO-639 alpha-2 language code</li><li>(Optional) The ISO-15924 script tag</li><li>The ISO-3166 alpha-2 country code</li></ul>"},"TimeZone":{"maxLength":127,"minLength":1,"type":"string","description":"A time zone, following the format defined in the IANA tz database (https://www.iana.org/time-zones). Valid examples are America/New_York and Etc/UTC. Do not use ambiguous, non-qualified values such as EST or GB. Before including this type in your interface, please consider whether it is actually appropriate to convey time zone information with your type. It is almost always the case that this should be transformed from UTC at the time of display to the user; this type might therefore be most associated with user-preference APIs."},"affirmPaymentInitiationResponse":{"title":"Affirm Initiate Payment Result","type":"object","properties":{"id":{"title":"Transaction ID","type":"string","description":"The ID of the transaction.","format":"uuid-flexible"},"checkout_id":{"title":"Checkout Id","description":"A unique identifier representing the Payment Host checkout ID. This value is optional and available only in `MODAL` mode.","type":"string"},"public_api_key":{"description":"The merchants public api key. This value is optional and available only in `MODAL` mode.","type":"string"},"payment_url":{"description":"The payment URL can be used to redirect to transfer the money.","type":"string","format":"uri"},"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."},"created_at":{"type":"string","format":"date-time","description":"The time at which the transaction was created."},"customer":{"description":"The ID of a customer","type":"string"},"merchant_reference":{"type":"string","description":"A reference specified by the merchant to identify the transaction.","maxLength":50},"processor":{"description":"The name of the processor used for this transaction","type":"string","default":"AFFIRM"},"payment_product":{"description":"The payment product corresponding to this transaction","type":"string","default":"AFFIRM"},"payment_product_type":{"$ref":"#/components/schemas/PaymentProductType"},"status":{"type":"string","description":"The outcome of the payment request.","title":"Ecommerce Transaction Status","enum":["INITIATED","AUTHORIZED","AUTHORIZATION_VOIDED","CANCELLED","CUSTOMER_ACCEPTED","REFUNDED","FAILED","PENDING","DECLINED","SETTLEMENT_CANCELLED","SETTLEMENT_REQUESTED","SETTLEMENT_SUBMITTED","SETTLEMENT_COMPLETED","SETTLEMENT_PARTIAL","SETTLEMENT_DECLINED","VOIDED","UNKNOWN"]},"status_reason":{"type":"string","description":"Message provided by the 3rd party service as additional information, when the transaction does not succeed."},"geo_location":{"type":"array","description":"The latitude / longitude resolved from the customer's ip address.","items":{"type":"number"}},"city":{"type":"string","description":"The city resolved from the customer's ip address."},"country_code":{"title":"Country Code","type":"string","description":"The [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as is used in that country's top-level domain names.</blockquote>."}}},"PaymentProductType":{"title":"Payment Product Type","type":"string","description":"The payment product type corresponding to this transaction. Fees applied to the transaction, is based on the payment product","enum":["Affirm","Amex","Crypto","Diners Club International","Discover","JCB","Klarna","Maestro","Mastercard","OP Online Payment","Swish","Unknown","Visa"],"default":"Unknown"},"BadRequestV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[400],"default":400},"message":{"type":"string","enum":["At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."],"default":"At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."}},"required":["message"]},"UnauthorizedV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[401],"default":401},"message":{"type":"string","enum":["Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."],"default":"Access is restricted to authenticated users only. The query can't be made without a valid JWT token (check the Authorization header of your request)."}},"required":["message"]},"ForbiddenV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[403],"default":403},"message":{"type":"string","enum":["Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."],"default":"Insufficient permissions. Your current user roles don't allow you to perform this query. Should you believe this error to be incorrect, please contact an administrator."}},"required":["message"]},"NotFoundV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[404],"default":404},"message":{"type":"string","enum":["The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."],"default":"The requested resource, or one of its sub-resources, can't be found. If the submitted query is valid, this error is likely to be caused by a problem with a nested resource that has been deleted or modified. Check the details property for additional insights."}},"required":["message"]},"InternalErrorV2Docs":{"type":"object","properties":{"details":{"type":"object","additionalProperties":{"type":"object"}},"timestamp":{"type":"number","description":"Error timestamp"},"reversal_status":{"type":"string","description":"Indicates to the API client if a technical reversal has been completed by Verifone.","default":"NONE","enum":["NONE","REQUIRED","COMPLETED"]},"code":{"type":"number","enum":[500],"default":500},"message":{"type":"string","enum":["Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"],"default":"Unexpected error: if the error persists, please contact an administrator, quoting the code and timestamp of this error"}},"required":["message"]}}},"paths":{"/api/v2/transactions/affirm":{"post":{"tags":["Ecom Payments"],"summary":"Initiate a Affirm payment.","description":"With Affirm, you will never owe more than you agree to up front. Instead, you’ll always get a flexible, transparent, and convenient way to pay over time.","operationId":"affirmInitTransaction","parameters":[{"name":"x-vfi-api-idempotencykey","required":true,"in":"header","schema":{"type":"string","description":"A value you specify that uniquely identifies this transaction. This must be used to trigger a reversal if there is a timeout.","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/affirmPaymentInitiationRequest"}}}},"responses":{"201":{"description":"The Affirm Initiation Response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/affirmPaymentInitiationResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestV2Docs"}}}},"401":{"description":"Unauthorised Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedV2Docs"}}}},"403":{"description":"Forbidden Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenV2Docs"}}}},"404":{"description":"Not Found Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundV2Docs"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalErrorV2Docs"}}}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.verifone.com/api-reference/open-api-references/ecommerce/ecom-payments.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
