For the complete documentation index, see llms.txt. This page is also available as Markdown.

eCom Payments

The Ecom Payments endpoints initiate card and wallet payment transactions, including one-off purchases, account verifications (amount = 0), and credential-on-file (COF) scenarios. Use capture_now: false to separate authorisation from capture.

For subsequent COF/recurring charges that reference previously stored credentials, use POST /api/v2/transactions/card with a stored_credential.stored_credential_type of CHARGE.

How It Works

1

Encrypt the card or obtain a wallet payload

Use Verifone.JS or Verifone Checkout to encrypt the card data with the public key alias obtained from Secure Card Capture. For wallet payments, obtain the encrypted payload from the Apple Pay or Google Pay frontend SDK.

2

Submit the payment request

POST to /api/v2/transactions/card (card/token) or /api/v2/transactions/wallet (Apple Pay / Google Pay) with the required fields. Include an idempotency key header (x-vfi-api-idempotencykey) — this must be retained to trigger a reversal if a timeout occurs.

3

Read the response

A 201 response returns the transaction id, status, and authorisation details. Store id, rrn, and authorization_code for reconciliation and downstream operations like capture or refund.

Stored Credential Business Models

The stored_credential object controls how the transaction is classified for Credential-on-File (COF) and recurring scenarios.

Online purchase without storing card details. Omit stored_credential.

Shopper Interaction: ECOMMERCE

API Reference

Initiate a payment

post
/api/v2/transactions/card

Initiate a card payment or card verification request when amount is set to 0 (zero).

Transactions business models

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

Authorizations
AuthorizationstringRequired
Header parameters
x-vfi-api-idempotencykeystring · uuidOptional

A value you specify that uniquely identifies this transaction. This must be used to trigger a reversal if there is a timeout.

Example: 63bbc548-d2de-4546-b106-880a5018461c
Body
or
Responses
post
/api/v2/transactions/card

The wallet endpoint accepts Google Pay and Apple Pay payloads. The sca_compliance_level field controls whether an additional 3DS step is triggered.

To start an Apple Pay payment session before submitting the wallet transaction, call POST /api/v2/apple-pay/validation first to obtain a merchant session object from Apple.

Initiate a wallet payment using Google Pay or Apple Pay

post
/api/v2/transactions/wallet

Initiate a card payment or card verification request when amount is set to 0 (zero).

Transactions business models

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

Note: To initiate a transaction with reference to previously stored credentials ( `CHARGE` ) use ``/v2/transactions/card`` endpoint instead.

Authorizations
AuthorizationstringRequired
Header parameters
x-vfi-api-idempotencykeystring · uuidOptional

A value you specify that uniquely identifies this transaction. This must be used to trigger a reversal if there is a timeout.

Example: 63bbc548-d2de-4546-b106-880a5018461c
Body
payment_provider_contractstring · uuid-flexibleRequired

The identifier of payment provider contract you want to process the transaction request with.

Example: 30b8bec8-5042-4e67-939c-5453fbe41711
amountintegerRequired

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.

Example: 0
auth_typestring · enumOptional

Flags a payment request for either pre-authorization or final authorization.

  • PRE_AUTH is used when the authorized amount is unknown and can be adjusted later.

  • FINAL_AUTH is used when a final authorized amount is known and the transaction will definitely be captured in whole.

Default: FINAL_AUTHPossible values:
capture_nowbooleanOptional

Whether auto-capture or not. Setting the value to 'false' will only authorize the transaction.

Default: trueExample: false
customerstring · uuid-flexibleOptional

The ID of a customer.

Example: 0a57b387-2ba7-4f65-be2f-e176bb49d2ce
customer_ipone of · max: 15Optional

The IP Address of the customer where the transaction was initiated.

Example: 127.0.0.1
string · ipv4Optional
or
string · ipv6Optional
dynamic_descriptorstring · max: 25Optional

A short descriptor to be shown on bank statement of the customer. Please refer to the integration guide for the format requirements.

merchant_referencestring · max: 50Optional

A reference specified by the merchant to identify the transaction.

Example: 7a1db7a8-6f24-4bc5-a51b-cef33fc05140
receipt_typestring · enumOptional

Defines the type of receipt to be generated

Possible values:
shopper_interactionstring · enumOptional

Determines the sales channel the shopper gives their card details through:

  • ECOMMERCE Online transactions where the cardholder is present.

  • MAIL order transactions where the shopper is in contact with the merchant via email.

  • TELEPHONE order transactions where the shopper is in contact with the merchant via telephone.

Default: ECOMMERCEExample: ECOMMERCEPossible values:
user_agentstring · max: 256Optional

The full user agent string of the device the customer used to submit the transaction.

sales_descriptionstring · max: 200Optional

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

sca_exemptionstring · enumOptional

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.

Possible Values:

1 - Low value payment

2 - Acquirer Transaction Risk Analysis

3 - Trusted beneficiary exemption

4 - Secure Corporate Payment (SCP) exemption

5 - Merchant Initiated Transaction

6 - SCA Delegation

Possible values:
currency_codestring · enumRequired

Three-letter ISO 4217 alphabetical currency code. e.g. USD.

Values correspond to ISO 4217.

Possible values:
card_brandstringOptional

Represents a Card type or brand. It should correspond to a consistent name, the list of standard names is as follows:

ValueDescription
AMEXAmerican Express
CBCarte Bancaires
DINERSDiners Club International
DISCOVERDiners Club Discover
JCBJapan Credit Bureau
MAESTROMulti-national Debit (MasterCard)
MASTERCARDMasterCard
VISAVisa
UPIUnion Pay International
GIFT_CARDGift Card (Generic)
PLCCPrivate Label Credit Card
Other local schemes as applicable. Enter a pre-defined name to represent the scheme or type.
Note: 1. For gift cards, card brand is mandatory and the value should be GIFT_CARD.
  1. This parameter is mandatory for dual branded cards.
encrypted_cvvstringOptional

This is an optional field that is only supported with reuse_token or stored_credentials.reference.

brand_choicestring · enumOptional

For dual-branded cards identifies whether selection is made by a cardholder or merchant.

Default: MERCHANTPossible values:
refusal_reasonstring · enumOptional

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.

Possible values:
wallet_typestring · enumRequiredPossible values:
wallet_payloadobjectRequired

The encrypted payload object provided by the Wallet on the frontend

sca_compliance_levelstring · enumOptional

Determines if 3ds is needed:

sca_compliance_levelWalletPayload authMethodAdditional 3ds
NONEN/ANO
WALLETPAN_ONLYYES
WALLET3DS_CRYPTOGRAMNO
FORCE_3DSN/AYES
Default: WALLETPossible values:
promo_codestringOptional

A code defined by the merchant that affects the calculation of the total amount.

purchase_order_numberstring · max: 17Optional

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.

tax_indicatorstring · enumOptional

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

Default: TAX_NOT_PROVIDEDPossible values:
Responses
post
/api/v2/transactions/wallet

Start payment session for Apple Pay wallet transactions

post
/api/v2/apple-pay/validation

Create a merchant payment session

Authorizations
AuthorizationstringRequired
Body
validation_urlstringRequired

The URL pointing to the Apple Pay validation location.

Note: Use the URL below according to your Verifone environment:

domainstringRequired

The domain from which the payment request will be initiated.

payment_provider_contractstring · uuid-flexibleRequired

The identifier of payment provider contract you want to process the transaction request with.

Example: 30b8bec8-5042-4e67-939c-5453fbe41711
Responses
post
/api/v2/apple-pay/validation

Key Response Fields

Last updated

Was this helpful?