Updated the list of supported countries to include Bulgaria, Greece, Japan, Romania,
Slovenia, Thailand, and Vietnam. See Supported Countries for Digital Payments.
25.03.02
Added information about choosing your preferred card number prefix length and supported
scenarios. See the Include Card Prefix sections of these topics:
Updated the capture context request sections to include the most recent client version
and allowed payment types. See Capture Context and Capture Context API.
Added information about China UnionPay cards that do not have a card verification number
(CVN) and expiration date. See the Important note in Capture Context.
provides a single interface with which you can
accept numerous types of digital payments.
Unified Checkout
calls other
follow-on services such as Payments,
Decision Manager
, and
Payer Authentication
.
Unified Checkout
consists of a server-side component and a client-side JavaScript library.
The server-side component authenticates your merchant identity and instructs the system
to act within your payment environment. The response contains limited-use public keys.
The keys are for end-to-end encryption and contain merchant-specific payment information
that drives the interaction of the application. The client-side JavaScript library
dynamically and securely places digital payment options onto your e-commerce page.
The provided JavaScript library enables you to securely accept many payment options
within your e-commerce environment.
Unified Checkout
can be embedded
seamlessly into your existing webpage, simplifying payment acceptance.
When a customer selects a payment method from the button widget,
Unified Checkout
handles all of the interactions with the digital payment that
was chosen.
Unified Checkout
is also able to orchestrate requests for to
follow-on services such as Payments,
Decision Manager
, and
Payer Authentication
before it provides a response to your e-commerce system.
The figure below shows
Unified Checkout
with customer checkout payment
options.
Figure:
Button Widget
For examples of different payment method UIs through
into your
platform, you must follow several integration steps. This section gives a high-level
overview of how to integrate and launch
Unified Checkout
on your
webpage and process a transaction. You can find the detailed specifications of the
APIs later in this document.
The integration flow consists of four events:
You send a server-to-server API request for a capture context. This request is
fully authenticated and returns a JSON Web Token (JWT) that is necessary in
order to invoke the frontend JavaScript library. For information on setting up
the server side, see Server-Side Set Up.
You invoke the
Unified Checkout
JavaScript library using the JWT
response from the capture context request. For information on setting up the
client side, see Client-Side Set Up.
You process the payment through the
Unified Checkout
complete
mandate feature and interpret the response of the transaction flow that is
displayed on your browser.
IMPORTANT
If you do not use the complete mandate for
Unified Checkout
, you must request follow-on services using a
transient token to process the payment.
Optional:
Capture the full payment response through webhook
notifications.
Information that is captured by
Unified Checkout
, including the billing
and shipping address, can be retrieved using the payment details API.
The figure below shows the
Unified Checkout
payment flow.
Figure:
Unified Checkout
Payment Flow
For more information on the specific APIs referenced, see these topics:
, you must first ensure that your merchant ID (MID)
is configured to use the service and that any payment methods you intend to use are
properly set up.
If you are unable to access this page, contact your sales
representative.
In the
Business Center
, go to the left navigation panel and choose
Payment Configuration
>
Unified
Checkout
.
You can configure various payment methods such as Apple Pay,
Click to Pay
, and Google Pay. Click
Set
up
and follow the instructions for your selected payment
methods. When payment methods are enabled, they appear on the payment
configuration page.
IMPORTANT
You must configure payment methods you want to use for
each transacting MID.
Figure:
Click
Manage
to edit your existing
payment method configurations or enroll in new payment methods as they are
released.
Server-Side Set Up
This section contains the information you need to
set up your server. Initializing
Unified Checkout
within your webpage
begins with a server-to-server call to the sessions API. This step authenticates your
merchant credentials, and establishes how the
Unified Checkout
frontend
components will function. The sessions API request contains parameters that define how
Unified Checkout
performs.
The server-side component provides this information:
A transaction-specific public key is used by the customer's browser to protect
the transaction.
An authenticated context description package that manages the payment experience on
the client side. It includes available payment options such as card networks,
payment interface styling, and payment methods.
The functions are compiled in a JSON Web Token (JWT) object referred to as the
This section contains the information you need to set up your server. Initializing
Unified Checkout
within your webpage begins with a server-to-server
call to the sessions API. This step authenticates your merchant credentials, and
establishes how the frontend components will function. The sessions API request contains
parameters that define how
Unified Checkout
performs.
The server-side component provides this information:
A transaction-specific public key is used by the customer's browser to protect the
transaction.
An authenticated context description package that manages the payment experience on
the client side. It includes available payment options such as card networks,
payment interface styling, and payment methods.
The functions are compiled in a JSON Web Token (JWT) object referred to as the
The capture context request is a signed JSON Web Token
(JWT) that includes all of the merchant-specific parameters. This request tells the
frontend JavaScript library how to behave within your payment experience. The
request provides authentication, one-time keys, the target origin to the
Unified Checkout
integration in addition to allowed card networks and
payment types. The capture context request includes these elements:
allowedCardNetworks
allowedPaymentTypes
clientVersion
targetOrigin
completeMandate
Use the
targetOrigins
and the
allowedPaymentTypes
fields to define the target origin and
the accepted digital payment methods in your capture context. Use the
comppleteMandate
to orchestrate follow-on services such as
Payments,
This diagram shows how elements of the capture context request appear in the card entry
form.
Figure:
Anatomy of a Manual Card Entry Form
Client-Side Set Up
This section contains the information you need to set up the client side. You use the
Unified Checkout
JavaScript library to add the payment interface to
your e-commerce site. It has two primary components:
The button widget, which lists the payment methods available to the customer.
The payment acceptance page, which captures payment information from the cardholder.
You can set up the payment acceptance page to be embedded with your webpage or added
as a sidebar.
Follow these steps to set up the client:
Load the JavaScript library.
Initialize the accept object, the capture context JWT. For information JSON Web
Tokens, see JSON Web Tokens.
Initialize the unified payment object with optional parameters.
Show the button list or payment acceptance page or both.
Process the payment request using the instructions included within the capture
mandate.
The response to these interactions is a transient token that you use to retrieve the
payment information captured by the UI.
Loading the JavaScript Library and Invoking the Accept Function
Use the client library asset path and client library integrity value that is returned by
the capture context response to invoke
Unified Checkout
on your page.
You can retrieve these values from the
clientLibrary
and
clientLibraryIntegrity
fields that are returned in the JWT from
https://apitest.visaacceptance.com
/up/v1/capture-contexts
. You can use these
values to create your script tags.
You must perform this process for each transaction, as these values may be unique for
each transaction. You must avoid hard-coding values for the
clientLibrary
and
clientLibraryIntegrity
fields to prevent client-side errors.
For example, a response from
https://apitest.visaacceptance.com
/up/v1/capture-contexts
would
include:
"data": {
"clientLibrary":"[EXTRACT clientLibrary VALUE from here]",
"clientLibraryIntegrity": "[EXTRACT clientLibraryIntegrity VALUE from here]"
}
Below is an example script
tag:
<script src="[INSERT clientLibrary VALUE HERE]"
integrity=”[INSERT clientLibraryIntegrity VALUE HERE]”
crossorigin=”anonymous”></script>
IMPORTANT
Use the
clientLibrary
and
clientLibraryIntegrity
parameter values in the capture context
response to obtain the
Unified Checkout
JavaScript library URL and the
integrity value. This ensures that you are always using the most up-to-date library and
protects against fraud. Do not hard-code the
Unified Checkout
JavaScript
library URL or integrity value.
When you load the library, the capture context from your initial server-side request is
used to invoke the accept function.
JavaScript Example: Initializing the SDK
try {
const accept = await Accept(captureContext);
const up = await accept.unifiedPayments(sidebar);
} catch (error) {
// merchant logic for handling issues
console.error("something went wrong: " + error);
}
In this example,
captureContext
refers to the capture context
JWT.
JavaScript Example: Displaying the Button List
After you initialize the
Unified Checkout
object, you can add the
payment application and payment acceptance pages to your webpage. You can attach the
embedded
Unified Checkout
tool and payment acceptance pages to any
named element within your HTML. Typically, they are attached to explicit named
components that are replaced with
The response to the unifiedPayment.show() method is a JWT data object referred to
here as a transient token. The transient token contains all the payment information
captured during the
Unified Checkout
payment journey.
JavaScript Example: Client-Defined Trigger for
Click to Pay
or PAN
Entry
When you are presenting
CLICKTOPAY
or
PANENTRY
as
allowed payment types, you can load the UI without displaying the
Checkout with Card
button by creating a trigger that
defines what loads the UI.
You can create a trigger by calling the
createTrigger()
method on an
existing unified payments object and pass in these two parameters:
The payment method that the trigger is linked to. It is required.
IMPORTANT
You can create a trigger only for
CLICKTOPAY
or
PANENTRY
payment
methods.
The container for the payment screen. It is required when you are in
embedded mode.
// Example: Basic usage with full sidebar experience
// Create a trigger
const trigger = up.createTrigger("CLICKTOPAY");
// Show the trigger
// In this example, when a button in your UI is clicked
const myButton = document.getElementById("myButton");
myButton.addEventListener("click", async () => {
const transientToken = await trigger.show();
console.log(transientToken);
})
// Example: Payment screen in a container
// Define the container for the payment screen to be rendered in
var options = { containers: { paymentScreen: '#paymentScreenContainer' } };
// Create the trigger
const trigger = up.createTrigger("CLICKTOPAY", options);
// Show the trigger
// In this example, when a button in your UI is clicked
const myButton = document.getElementById("myButton");
myButton.addEventListener("click", async () => {
const transientToken = await trigger.show();
console.log(transientToken);
})
JavaScript Example: Processing a Payment
Payment is initiated when
Unified Checkout
captures the customer's
payment information by calling the
The response to a successful customer interaction with
Unified Checkout
is
a transient token. This is returned in the response from the
unifiedPayment.show()
function. The transient token is a
reference to the payment data collected on your behalf. Tokens allow secure card
payments to occur without risk of exposure to sensitive payment information. The
transient token is a short-term token that expires after 15 minutes. This reduces your
PCI burden/responsibility and ensures that sensitive information is not exposed to your
back-end systems.
Transient tokens can be included requests sent to the Payment Details and Payment
Credentials APIs in exchange for the customer payment data that is collected. This data
can include the payment account number (PAN) or tokenized credentials.
Transient Token Format
The transient token is issued as a JSON Web Token (JWT) (RFC 7519).
For information on JSON Web Tokens, see JSON Web Tokens.
The payload portion of the token is a Base64-encoded JSON string and contains various
claims. For more information, see JSON Web Tokens.
Example: Transient Token Format
Transient Token Payload
{
"iss": "Flex/00",
"exp": 1706910242,
"type": "gda-0.9.0",
"iat": 1706909347,
"jti": "1D1I2O2CSTMW3UIXOKEQFI4OQX1L7CMSKDE3LJ8B5DVZ6WBJGKLQ65BD6222D426",
"metadata": {
"consumerPreference": {
"saveCard": true
},
"tokenizedCard": {
"card": {
"maskedValue": "XXXXXXXXXXXX9876",
"prefix": "123456",
"expirationMonth": "MM",
"expirationYear": "YYYY"
}
}
},
"content": {
"orderInformation": {
"billTo" : {
// Empty fields present within this node indicate which fields were captured by
// the application without exposing you to personally identifiable information
// directly.
},
"amountDetails" : {
// Empty fields present within this node indicate which fields were captured by
// the application without exposing you to personally identifiable information
// directly.
},
"shipTo" : {
// Empty fields present within this node indicate which fields were captured by
// the application without exposing you to personally identifiable information
// directly.
}
},
"paymentInformation": {
"card": {
"expirationYear": {
"value": "2028"
},
"number": {
"maskedValue": "XXXXXXXXXXXX1111",
"bin": "411111"
},
"securityCode": {},
"expirationMonth": {
"value": "06"
},
"type": {
"value": "001"
}
}
}
}
}
PAN BIN in
metadata
Object
The
cardDetails
object, including the PAN BIN, is included in
the transient token
metadata
when a
Click to Pay
network token is used as a payment method. This allows you to display information about
the card on invoices and see the BIN details that are linked to the underlying card.
and enables you to determine if the payload is fully
authenticated. When
authenticationStatus
is set to
true
, the payload is fully authenticated. When
authenticationStatus
is set to
false
, the
transaction is not authenticated.
If you are using
Unified Checkout
with the complete API and you include
consumerAuthentication
in the
complete mandate request, then
Payer Authentication
is called automatically if it
is available for the selected payment method and card network. In this case, there is no
action required on your
part.
"metadata": {
"authenticationStatus": "true"
}
}
Token Verification
When you receive the transient token, you should cryptographically verify its integrity
using the public key embedded within the capture context. Doing so verifies that
Visa Acceptance Solutions
issued the token and that the data has not been tampered
with in transit. Verifying the transient token JWT involves verifying the signature and
various claims within the token. Programming languages each have their own specific
libraries to assist.
Dual-Branded Cards
Unified Checkout
accepts dual-branded cards. To use this feature, you must
include the card networks that have overlapping BIN ranges in the capture context
request. For
example:
When a card number within an overlapping BIN range is entered, the network that is listed
first in the value array for the
allowedCardNetworks
field is used.
For example, if the card number 403550XXXXXXXXXX is entered, the payment network is
Visa.
During the transaction, the card type is populated with the first network in the list,
and the
detectedCardTypes
field includes all of the detected card types in the
transient token.
The
detectedCardTypes
field is returned in the transient token
response only when more than one card type is detected.
Authorizations with a Transient Token
This section provides the minimum information required in order to perform a successful
authorization with a
Unified Checkout
transient token. You can use this method
to construct more complex payment scenarios that are not supported by the
unifiedPayment.complete()
payment method.
IMPORTANT
When you process payments through
Unified Checkout
,
Unified Checkout
invokes service orchestration directly. When you send an
authorization request using a transient token, you are using an alternative method for
processing payments.
The transient token is a short-term token that expires after 15 minutes. Doing so eliminates
the need to send sensitive payment data along with the request. For more information on
transient tokens, see Transient Tokens.
To send the transient token with a request, use the
tokenInformation.transientTokenJwt
field.
This example shows a transient token in the context of an authorization
request:
endpoint. This data includes cardholder name and billing and shipping details. For more information, see Payment Details API.
IMPORTANT
Fields supplied directly in an API request supersede those that are also present in the transient token. For example, in the request below, the total amount might have been overridden because of a tax calculation.
Endpoint
Production:
POST
https://api.visaacceptance.com
/pts/v2/payments
Test:
POST
https://apitest.visaacceptance.com
/pts/v2/payments
Required Field for an Authorization with a Transient Token
tokenInformation.transientTokenJwt
REST Example: Requesting an Authorization with a Transient Token
The capture context request contains all of the merchant-specific parameters that tell the
front-end JavaScript library what to do within your payment experience.
The capture context is a signed JSON Web Token (JWT) containing this information:
Merchant-specific parameters that dictate the customer payment experience for the
current payment transaction.
A one-time public key that secures the information flow during the current payment
transaction.
The capture context request includes these fields:
You can define the payment cards and digital payments that you want to accept in the
capture context.
Allowed Card Networks
Use the
allowedCardNetworks
field to define the card types.
These card networks are available for card entry:
American Express
Cartes Bancaires
Carnet
China UnionPay
Diners Club
Discover
EFTPOS
ELO
JCB
JCrew
mada
Maestro
Mastercard
Meeza
PayPak
Visa
To support dual-branded or co-badged cards, you must list your supported card type
values for the
allowedCardNetworks
field based on your preference
for processing card numbers. For example, if a card is dual-branded as Visa and Cartes
Bancaires, and Cartes Bancaires is listed first, the card type is set to Cartes
Bancaires after the card number is entered in your
Unified Checkout
card
collection form. For information on dual-branded or co-badged cards, see Dual-Branded Cards.
Allowed Payment Types
You can specify the type of
Unified Checkout
digital payment methods
that you want to accept in the capture context.
Use the
allowedPaymentTypes
field to define the payment type:
APPLEPAY
CHECK
CLICKTOPAY
GOOGLEPAY
PANENTRY
PAZE
AFTERPAY
IDEAL
MULTIBANCO
IMPORTANT
Click to Pay
accepts American Express,
Mastercard, and Visa for saved cards. Visa and Mastercard tokenize payment credentials
using network tokenization for all
Click to Pay
requests.
Click to Pay
uses
Click to Pay
Token Requester IDs
(TRIDs) rather than your existing TRIDs to generate network tokens.
For more
information on enabling and managing these digital payment methods, see these
topics:
recommends
that you dynamically parse the response for the fields that you are looking for when you
integrate with
Visa Acceptance Solutions
APIs.
Visa Acceptance Solutions
may add
additional fields in the future.
You must ensure that your integration can handle new
fields that are returned in the response. Even though the underlying data structures do
not change, you must also ensure that your integration can handle changes to the order
in which the data is returned.
Visa Acceptance Solutions
uses semantic versioning
practices, which enables you to retain backwards compatibility as new fields are
introduced in minor version updates.
Features
Unified Checkout
comprises these features.
Save Card
Click to Pay
and PAN entry payment methods support
Save Card when they are set as allowed payment types on
Unified Checkout
.
When the feature is enabled, the customer can save their card information
for future purchases placed at your website.
IMPORTANT
This
feature is available only for card credentials that are manually
entered during checkout.
When the customer checks the box and finalizes their purchase, you
receive a notification in the transient token response to your capture
context request. The transient token payload includes the
consumerPreference.saveCard
field value set to
true
:
"captureMandate" : {
"requestSaveCard": true
}
Combo Cards
A combo card is a single card in Brazil that functions as both a debit and a
credit card.
Unified Checkout
enables the cardholder to choose
whether to pay for a transaction using a debit or credit card. The
cardholder can choose the card that they want to use when they enter their
card details or when they choose a stored Visa card from their
Click to Pay
wallet during checkout. While in the card
details section of the payment form, the cardholder is prompted for a debit
or credit card. Credit is the default option.
IMPORTANT
Combo cards are supported on client version 0.24
and later.
To enable combo cards during checkout, you must include the
comboCard
field in your capture context request
and set the field value to
true
. When the
comboCard
field value is set to
true
, the option to use a debit or credit card
appears for all Visa cards that are entered in
Unified Checkout
and for all cards that are already stored in
Click to Pay
. If you do not want to offer a combo card at
checkout, do not include the
comboCard
field in your
capture context request:
"captureMandate" : {
"comboCard": true
}
Cadastro de Pessoas Físicas (CPF) – Brazilian Tax ID
The tax ID feature is for customers in Brazil and provides your customers
with a way to include their Consumer National Identifier when it is
requested at checkout. Include this field in the capture context to display
this field within the flow for manual card entry and
Automatic email lookup occurs when an email address is included in the
capture context request. If the user has a
Click to Pay
account but is not on a recognized device, a one-time password (OTP) screen
appears and the user is prompted to enter their OTP. If the user does not
have a
Click to Pay
account, the user must enter their
card information manually. They will have the option to create a
Click to Pay
account.
To enable email autolookup, you must
include
CLICKTOPAY
as a value in the
allowedPaymentTypes
field and include an email
address in the capture context.
Removal of Confirm and Continue Screen
You can opt to not show the confirmation screen to the cardholder during
checkout when a user selects an existing
Click to Pay
card from their
Click to Pay
account. To hide the
confirmation screen you must set these fields to these corresponding values
in the capture context:
The capture context that you generate is a JSON Web Token (JWT) data object. The JWT is
digitally signed using a public key and confirms the validity of the JWT and that it
comes from
Visa Acceptance Solutions
. When you do not have a key in the JWT header,
Visa Acceptance Solutions
recommends that you follow cryptography best practices
and validate the capture context signature.
To validate a JWT, you must obtain its public key. This public RSA key is in JSON Web Key
(JWK) format. The public key is associated with the capture context on the
Visa Acceptance Solutions
domain.
To get the public key of a capture context from the header of the capture context itself,
you must retrieve the key ID associated with the public key and then pass the key ID to
the
/flex/v2/public-keys
endpoint:
From the header of the capture context, get the key ID
(
kid
):
{
"kid": "3g",
"alg": "RS256"
}
Send a GET request to the
/flex/v2/public-keys
endpoint and
include the key ID. For example:
Test:
GET
https://apitest.visaacceptance.com
/flex/v2/public-keys/{3g}
Production:
GET
https://api.visaacceptance.com
/flex/v2/public-keys/{3g}
Depending on the cryptographic method you use to validate the public key, you
might need to convert the key to privacy-enhanced mail (PEM) format.
This section contains the information you need to retrieve the non-sensitive data associated
with a
Unified Checkout
transient token and the payment details API. This API
can be used to retrieve personally identifiable information, such as the cardholder name and
billing and shipping details, without retrieving payment credentials, which helps ease the PCI
compliance burden.
There are two methods of authentication, and they are described in the
recommends
that you dynamically parse the response for the fields that you are looking for when you
integrate with
Visa Acceptance Solutions
APIs.
Visa Acceptance Solutions
may add
additional fields in the future.
You must ensure that your integration can handle new
fields that are returned in the response. Even though the underlying data structures do
not change, you must also ensure that your integration can handle changes to the order
in which the data is returned.
Visa Acceptance Solutions
uses semantic versioning
practices, which enables you to retain backwards compatibility as new fields are
introduced in minor version updates.
Endpoint
Production:
GET
https://api.visaacceptance.com
/up/v1/payment-details/
{id}
Test:
GET
https://apitest.visaacceptance.com
/up/v1/payment-details/
{id}
The
{id}
is the full
JWT received from
Unified Checkout
as the result of capturing payment
information. The transient token is a JWT object that you retrieved as part of a
successful capture of payment information from a cardholder.
This reference provides details about the JavaScript API for creating the
Unified Checkout
payment form.
Class: Accept
Accept
Returns
Type: Promise.<Accept>
Example
Basic Setup
<script src="[INSERT clientLibrary VALUE HERE]" integrity=”[INSERT clientLibraryIntegrity VALUE HERE]” crossorigin=”anonymous”></script>
//Note: Script location and integrity value should be sourced from the capture context response clientLibrary and clientLibraryIntegrity values.
<script> Accept('header.payload.signature').then(function(accept) {
// use accept object
});
</script>
Methods
dispose()
→ {void}
Dispose of this Accept instance.
Returns
Type: void
unifiedPayments(sidebar)
→
{Promise.<UnifiedPayments>}
Create a Unified Payments integration.
Parameters
Name
Type
Attributes
Description
sidebar
Boolean
<optional>
Set the option to
false
to enable embedded functionality of
Unified Checkout. This will configure Unified Checkout to place the
Payment Entry form inline. If this value is not set, the default is
true
and Unified Checkout will open the Payment
Entry form in the sidebar configuration.
The response to a successful customer interaction with Unified Checkout is a
transient token. The transient token is a reference to the payment data collected on
your behalf. Tokens allow secure card payments to occur without risk of exposure to
sensitive payment information. The transient token is a short-term token that lasts
15 minutes. This reduces your PCI burden and responsibility and ensures that
sensitive information is not exposed to your backend systems.
It is in a JSON Web Token format. The payload of the transient token may contain
useful metadata in relation to the stored sensitive info. However , all of this info
is safe to use and store on your systems.
The transient token can be used to complete a payment or other services, after which
the transient data will be evicted from the token store.
, you must first register for
each digital payment method that you would like enabled on your page. This enablement
process sends the appropriate information to the digital payment systems and registers
your page with each system.
This section contains information about enabling and managing
digital payments on
Unified Checkout
in the
Business Center
:
Apple Pay
Enrolling in Apple Pay
Preparing a device for testing Apple Pay on
Unified Checkout
Click to Pay
Enabling
Click to Pay
Google Pay
Enrolling in Google Pay
Managing Google Pay authentication types
Enrolling in Apple Pay
Apple Pay is a digital payment service that enables users to make secure and convenient
transactions using their Apple devices. Users can add their credit or debit cards to the
Wallet app and use them to pay online or in apps in a safe and convenient consumer
experience.
To enable Apple Pay you must first host a public certificate on your
web page and then pass your merchant name and domain name to Apple. Apple crawls out
to your web page to validate the presence of this certificate to ensure the web
pages are properly vetted and registered with Apple.
Follow these steps to
validate your domain and enroll in Apple Pay:
In order to run an end-to-end test of the Apple Pay service on
Unified Checkout
,
you must prepare an Apple test device by loading Apple Pay test cards onto the device.
Follow these steps to prepare your Apple test device for end-to-end testing:
Make sure your Apple Developer account is configured for Apple Pay.
Register your Apple Pay test device with Apple.
Load Apple Pay test cards onto your Apple test device.
ADDITIONAL INFORMATION
The Apple Developer center provides the instructions in the
Sandbox Testing page for Apple Pay:
Follow the steps described in
Create a Sandbox Tester Account
.
Follow the steps described in
Adding a Test Card Number
.
Enabling
Click to Pay
Click to Pay
is a digital payment solution that allows
customers to pay with their preferred card network and issuer without entering their
card details on every website. Customers can use Visa, Mastercard, and American Express
cards to streamline their purchase experience.
Click to Pay
provides
a fast, secure, and consistent checkout experience across devices and browsers.
Follow
these steps to enable in
Click to Pay
on
Unified Checkout
:
Navigate to
Payment Configuration >
Unified Checkout
.
In the Click to Pay section, click
Set Up
.
Enter your business name and website URL.
Click
Submit
.
Contact your implementation contact
or
technical account manager
to request that you be enabled for
tokenization within
Click to Pay
. Your implementation
contact
or technical account
manager
will confirm that you were configured successfully and that you
can now accept digital payments with
Click to Pay
.
Set Up Customer Authentication for Visa
Follow these steps to use the
Business Center
to enable customer
authentication through
Click to Pay
. Authentication methods differ in
each region and are dependent on the issuer, the cardholder device, and the
Click to Pay
configuration. These authentication methods are
available:
3-D Secure
FIDO
Card verification value (CVV)
One-time password (OTP)
IMPORTANT
After you complete these steps, Visa determines which
authentication method to use. When Visa determines that they will authenticate,
they authenticate each
Click to Pay
transaction through the
appropriate method. This may be a frictionless authentication or the customer
may need to provide more information when required by the issuer.
If you have a business account or a financial relationship
with Bank of America, Wells Fargo, or Chase, and you would like them to process
your transactions, you must contact our Sales or Support team for more
information on our ACH product.
Manage Permissions
Portfolio administrators
can set permissions for new or existing
Business Center
user roles for
Unified Checkout
.
Administrators retain full read and write permissions. They enable you to regulate
access to specific pages and specify who can access, view, or amend digital products
within
Unified Checkout
.
Portfolio administrators
must apply the appropriate user role
permission for any existing or newly created
If you are a transacting merchant, you might find that your permissions are restricted.
If your permissions are restricted, a message appears indicating that you do not have
access, or buttons might appear gray. To make changes to your digital products within
Unified Checkout
that have restricted permissions, contact
your portfolio administrator's customer support
representative
This section describes the payment methods you can use in your
Unified Checkout
integration. After you successfully integrate one payment
method, you can add another from the same category with minimal adjustments to your
existing configuration.
Cards
Unified Checkout
accepts several card types including global
networks such as Visa, Mastercard, and American Express.
Unified Checkout
also accepts local schemes such as Cartes
Bancaires in France, EFTPOS in Australia, and PayPak in Pakistan.
Card Support
Support for card brands varies based on the payment method for these services:
Payments
Decision Manager
Payer Authentication
This table shows which card types are
accepted for each payment method and which region:
Card Brand by Region and Payment Method
Region
Card Brand
Manual Card Entry
Apple Pay
Click to Pay
Google Pay
Paze
Asia Pacific
China UnionPay
Asia Pacific
EFTPOS
Asia Pacific
JCB
CEMEA
mada
CEMEA
Meeza
CEMEA
PayPak
Europe
Cartes Bancaires
Global
American Express
Global
Diners Club
Global
Mastercard
Global
Visa
Global and Europe
Maestro
Latin America
Carnet
Latin America
ELO
US and Canada
Discover
US and Canada
JCrew
Unified Checkout
Appendix
Unified Checkout
UI
Completing a payment with
Unified Checkout
requires the customer to
navigate through a sequence of interfaces. This section includes examples of the
interfaces your customers can expect when completing a payment with these payment
methods on
Unified Checkout
:
Apple Pay
Click to Pay
Google Pay
Manual payment entry
Payment with a bank account
Paze
Apple Pay UI
These screen captures show the sequence of events your customer can expect when
completing a payment with Apple Pay.
Figure:
Apple Pay UI
Click to Pay
UI
These screen captures show the sequence of events your customer can expect when
completing a payment with
Click to Pay
.
Figure:
Click to Pay
UI
Google Pay UI
These screen captures show the sequence of events your customer can expect when
completing a payment with Google Pay.
Figure:
Google Pay UI
Manual Payment Entry UI
These screen captures show the sequence of events your customer can expect when
completing a payment by manually entering payment, shipping, and contact
information.
Figure:
Manual Entry Payment Details
Figure:
Manual Entry Shipping Details
Figure:
Manual Entry Contact Details
Figure:
Manual Entry Review and Confirm
Pay with Bank Account UI
These screen captures show the sequence of events your customer can expect when
completing a payment with a bank account.
Figure:
Pay with Bank Account Order Summary
Figure:
Pay with Bank Account Checkout
Figure:
Pay with Bank Account Checking Account
Figure:
Pay with Bank Account Routing Number
Figure:
Pay with Bank Account Contact Details
Figure:
Pay with Bank Account Review and Confirm
Figure:
Pay with Bank Account Review and Confirm Disclaimer
Paze UI
These screen captures show the sequence of events your customer can expect when
completing a payment with Paze.
Figure:
Paze UI
JSON Web Tokens
JSON Web Tokens (JWTs) are digitally signed JSON objects based on the open standard RFC 7519. These tokens provide a compact, self-contained
method for securely transmitting information between parties. These tokens are
signed with an RSA-encoded public/private key pair. The signature is calculated
using the header and body, which enables the receiver to validate that the content
has not been tampered with.
A JWT takes the form of a string, and consists of three parts separated by dots:
<Header>.<Payload>.<Signature>
The header and payload is
Base64-encoded JSON
and contains these claims:
Header
: The algorithm and token type. For
example:
{
"kid": "zu",
"alg": "RS256"
}
Payload
: The claims of what the token represents. For
example:
: The signature is computed from the header and payload using a
secret or private key.
IMPORTANT
When working with JWTs,
Visa Acceptance Solutions
recommends that you use a well- maintained JWT library to ensure proper decoding
and parsing of the JWT.
IMPORTANT
When parsing the JWT’s JSON payload, you must ensure that you
implement a robust solution for transversing JSON. Additional elements can be
added to the JSON in future releases. Follow JSON parsing best practices to
ensure that you can handle the addition of new data elements in the future.
Unified Checkout
Examples
This section contains the information you need in order to integrate
Unified Checkout
within your e-commerce experience and use the
unifiedPayment.complete()
method.
Unified Checkout
with Authorization
This section contains the capture context and JavaScript examples to integrate
Unified Checkout
into your e-commerce page. You can use these examples to
collect your customer's payment information and process an authorization. You must
initiate a capture request to move funds and complete the transaction.
This section contains the capture context and JavaScript examples to integrate
Unified Checkout
into your e-commerce page. You can use these examples to
collect your customer's payment information. Payment processing and service
orchestration are completed through the back end of the integrator.
<script type="text/javascript">
const sidebar = true;
const captureContext = document.getElementById("captureContext").value;
const showArgs = {
containers: { paymentSelection: "#buttonPaymentListContainer" }
};
async function launchCheckout() {
try {
const accept = await Accept(captureContext);
const up = await accept.unifiedPayments(sidebar);
const tt = await up.show(showArgs);
console.log(tt); // merchant logic for passing the Transient token to their backend for service orchestration
} catch (error) {
// merchant logic for handling issues
console.error("something went wrong: " + error);
}
}
// Call the function
launchCheckout();
</script>
Echeck Payment with a Transient Token
This section contains a request example for making a payment with an eCheck using a
transient token. You must meet these requirements to make an eCheck payment with a
transient token:
The
paymentType.name.value
field value must be set to
CHECK
in the transient token.
You must include the
paymentInformation.paymentType.name
field in your request and the value must be set to
The locale field within the capture context request consists of an ISO 639 language code,
an underscore (_), and an ISO 3166 region code. The locale controls the language in
which the application is rendered. The following locales are supported:
ar_AE
bg_BG
ca_ES
cs_CZ
da_DK
de_AT
de_DE
el_GR
en_AU
en_CA
en_GB
en_IE
en_NZ
en_US
es_AR
es_CL
es_CO
es_ES
es_MX
es_PE
es_US
fi_FI
fr_CA
fr_FR
he_IL
hr_HR
hu_HU
id_ID
it_IT
ja_JP
km_KH
ko_KR
lo_LA
ms_MY
nb_NO
nl_NL
pl_PL
pt_BR
ro_RO
ru_RU
sk_SK
sl_SI
sv_SE
th_TH
tl_PH
tr_TR
vi_VN
zh_CN
zh_HK
zh_MO
zh_SG
zh_TW
Reason Codes
A
Unified Checkout
request response returns one of the following reason
codes:
Reason Codes
Reason Code
Description
200
Successful response.
201
Capture context created.
400
Bad request.
Possible
reason
values:
CAPTURE_CONTEXT_EXPIRED
CAPTURE_CONTEXT_INVALID
CREATE_TOKEN_TIMEOUT
CREATE_TOKEN_XHR_ERROR
INVALID_APIKEY
SDK_XHR_ERROR
SHOW_LOAD_CONTAINER_SELECTOR
SHOW_LOAD_INVALID_CONTAINER
SHOW_PAYMENT_TIMEOUT
SHOW_TOKEN_TIMEOUT
SHOW_TOKEN_XHR_ERROR
UNIFIEDPAYMENT_PAYMENT_PARAMITERS
UNIFIEDPAYMENTS_VALIDATION_FIELDS
UNIFIEDPAYMENTS_VALIDATION_PARAMS
404
The specified resource not found in the
system.
500
Unexpected server error.
VISA Platform Connect: Specifications and Conditions for
Resellers/Partners
The following are specifications and conditions that apply to a Reseller/Partner enabling
its merchants through
Visa Acceptance platform
. Failure to meet any of the specifications and conditions below is
subject to the liability provisions and indemnification obligations under
Reseller/Partner’s contract with Visa/Cybersource.
Before boarding merchants for payment processing on a VPC acquirer’s connection,
Reseller/Partner and the VPC acquirer must have a contract or other legal agreement
that permits Reseller/Partner to enable its merchants to process payments with the
acquirer through the dedicated VPC connection and/or traditional connection with
such VPC acquirer.
Reseller/Partner is responsible for boarding and enabling its merchants in
accordance with the terms of the contract or other legal agreement with the relevant
VPC acquirer.
Reseller/Partner acknowledges and agrees that all considerations and fees associated
with chargebacks, interchange downgrades, settlement issues, funding delays, and
other processing related activities are strictly between Reseller and the relevant
VPC acquirer.
Reseller/Partner acknowledges and agrees that the relevant VPC acquirer is
responsible for payment processing issues, including but not limited to, transaction
declines by network/issuer, decline rates, and interchange qualification, as may be
agreed to or outlined in the contract or other legal agreement between
Reseller/Partner and such VPC acquirer.
DISCLAIMER: NEITHER VISA NOR CYBERSOURCE WILL BE RESPONSIBLE OR LIABLE FOR ANY ERRORS OR
OMISSIONS BY THE
Visa Platform Connect
ACQUIRER IN PROCESSING TRANSACTIONS. NEITHER VISA
NOR CYBERSOURCE WILL BE RESPONSIBLE OR LIABLE FOR RESELLER/PARTNER BOARDING MERCHANTS OR
ENABLING MERCHANT PROCESSING IN VIOLATION OF THE TERMS AND CONDITIONS IMPOSED BY THE
RELEVANT