On This Page
Acceptance Devices | PAX Acceptance Devices App Integration Guide
This section describes how to use this guide and where to find further information.
Audience and Purpose
This guide is written for partner developers, system architects, and independent software
vendors (ISVs) who wish to integrate their point-of-sale system with PAX terminals in a
semi-integrated manner.
Implementing the PAX Acceptance Devices App requires software development skills. You must
write code that uses the API request and response fields to integrate the solution into your
point-of-sale system.
Conventions
These statements appear in this document:
IMPORTANT
An
Important
statement contains information essential to
successfully completing a task or learning a concept.WARNING
A
Warning
contains information or instructions, which, if not
heeded, can result in a security risk, irreversible loss of data, or significant cost in
time or revenue or both.Support
For support information about any service, visit the Support Center:
Recent Revisions to This Document
25.08.01
- Added new customization feature: Customizable User Interface Parameters.
- Removed logo parameter from and added transaction history view parameter to Customizable Common Parameters.
- Updated Acceptance Devices app to version 1.15.0. See Acceptance Devices App Version 1.15.0 Release Notes.
25.07.01
- Updated screenshots and related content in these topics:
- Updated Acceptance Devices app to version 1.14.0. See Acceptance Devices App Version 1.14.0 Release Notes.
25.06.01
- Updated Acceptance Devices app to version 1.13.0. See Acceptance Devices App Version 1.13.0 Release Notes.
25.05.01
- Renamed the product fromAcceptance Devices | PAX Semi-Integration Solution Integration GuidetoAcceptance Devices | PAX Acceptance Devices App.
- Updated Acceptance Devices app to version 1.12.0. See Acceptance Devices App Version 1.12.0 Release Notes.
25.04.01
- Updated Acceptance Devices app to version 1.11.0. See Acceptance Devices App Version 1.11.0 Release Notes.
25.02
- Added formatting guidelines for creating themerchantReferenceCodefield in the Required Fields section of applicable payment transaction types.
- Updated steps for using the app with Mutual Transport Layer Security (mTLS), Transport Layer Security (TLS), or in Cloud mode. See Entering an Activation Code in the Acceptance Devices App.
- Revised instructions for processing offline transactions in Semi-Integrated mode. See Processing an Offline Transaction.
- Updated instructions for enabling Standalone mode and added instructions for processing transactions. See Standalone Mode Payment Services.
- Updated Acceptance Devices app to version 1.10.0. See Acceptance Devices App Version 1.10.0 Release Notes.
25.01
- Added devices to supported terminals list in Terminals Supported by the PAX Acceptance Devices App.
- Renamed Getting Started with the PAX Semi-Integrated Solution section to Getting Started with the Acceptance Devices App and updated the introduction. See Getting Started with the Acceptance Devices App.
- Updated the code example in all mid-transaction status updates examples. See REST example sections in Local Mode Payment Services.
- Replaced Generating a Customer or Merchant Receipt in Processing Payment Transactions in Local Mode section with Printing a Customer or Merchant Receipt.
- Removed Obtaining a Merchant ID and Secret Key instructions from Processing Payment Transactions in Cloud Mode section. This task is now done in combination with generating a bearer token.
- Updated instructions for generating a bearer token when the app is in Cloud mode. See Generating a Bearer Token for Authentication.
- Replaced Generating a Customer or Merchant Receipt in Processing Payment Transactions in Cloud Mode section with Printing a Customer or Merchant Receipt.
- Updated Acceptance Devices app to version 1.9.0. See Acceptance Devices App Version 1.9.0 Release Notes.
24.12
- Added information about resetting the passcode in Setting Up a PAX Terminal.
- Added option for retrieving the Root CA Certificate in Retrieving the Root CA Certificate in the Business Center.
- Moved endpoints information from REST Example sections to introductory sections. No technical changes were made as part of this update.
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
Cybersource for
. 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.Visa Platform Connect
(“VPC”)
processing- 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 Visa Platform Connect
ACQUIRER. Introduction to Acceptance Devices | PAX Acceptance Devices App
The PAX Acceptance Devices App enables partners to easily integrate their point-of-sale
(POS) systems with supported PAX terminals in a semi-integrated manner using Local and
Cloud modes. Leveraging the Acceptance Devices Android app and using API requests, your
POS system can accept payments by communicating with the PAX terminal over a local Wi-Fi
network or the cloud.
The solution can also be operated in Standalone mode. This mode does not require
integration with a POS system and enables you to start transactions directly from the
PAX terminal.
For more information about the modes available in the Acceptance Devices app, see:
For information about the current version of the Acceptance Devices Android app, see the
Release Notes for PAX Acceptance Devices App.
Terminals Supported by the PAX Acceptance Devices App
The PAX Acceptance Devices App supports these PAX terminals:
- Portable
- PAX A920 MAX. For more information about the terminal, see
- PAX A920 PRO. For more information about the terminal, see .
- PAX A920. For more information about the terminal, see .
- Mobile
- PAX A77. For more information about the terminal, see .
- Countertop
- PAX A35. For more information about the terminal, see .
- Unattended
- PAX IM30. For more information about the terminal, see
Transaction Workflow for the PAX Acceptance Devices App
This is the transaction workflow for the PAX Acceptance Devices App.
Figure:
PAX Acceptance Devices App Transaction Workflow
The PAX Acceptance Devices App workflow typically includes this sequence of events:
- The point-of-sale (POS) system, running on Windows, Android, or iOS, integrates to the PAX Acceptance Devices App APIs.
- The merchant's POS system sends an API request, using the local Wi-Fi network or the cloud, to the Acceptance Devices app that is running on the PAX terminal.
- The Acceptance Devices app user interface shows on the PAX terminal screen and displays prompts to guide the customer through the payment flow.
- The Acceptance Devices app sends an API response to the POS system with the transaction result and details, which completes the transaction.
Getting Started with the Acceptance Devices App
This section describes how to get started with using the Acceptance Devices app. After
completing device set up and app configuration, you can process payments in these
modes:
Setting Up a PAX Terminal
Setting up a PAX terminal is completed within the Acceptance Devices app, so the app
must be open on the PAX terminal. The app is installed automatically and remotely on
your PAX terminal when it connects to the internet for the first time.
IMPORTANT
To ensure that you benefit from the latest features and
enhancements, regularly update the Acceptance Devices app. Only the five latest
versions are made available.
For current version information about the Acceptance Devices app, see the Release Notes for PAX Acceptance Devices App.
Follow these steps to set up the PAX terminal in the Acceptance Devices
app:
- Open the Acceptance Devices app on the PAX terminal.
- On the Welcome screen, tapStart Configuration.
- On the Select Language screen, choose the language you want to use on the terminal. TapContinue.
- On the Create a Passcode screen, enter a unique passcode. The passcode must consist of six digits. Confirm the passcode by entering it a second time. TapSave Passcode. You will use this passcode to access the app, so choose a code that you will remember. The app does not include an option to reset the passcode. If you forget the code, you must reinstall the Acceptance Devices app and complete the set-up process again.
- When your device is not connected to the internet, the Connect to Internet screen appears. TapConnect to Internet, and choose your Wi-Fi network from the list that appears.
- When your device is connected to the internet, the Internet Connected screen appears. TapContinue.
- On the Appearance Preferences screen, you are promoted to allow changes to system settings such as screen brightness. Take one of these actions:
- To change the appearance preferences, tapAllow.
- To keep the default settings, tapSkip. You can make changes later. The next set-up screen appears.
- If you allow changes to the appearance preferences, the Can Modify System Settings screen appears. To enableAllow modify system settings, slide the toggle switch to the right. Tap the back navigation arrow to return to the Adjust Screen Brightness screen.
- On the Adjust Screen Brightness screen, move the slider left or right to adjust screen brightness. TapContinue.
- On the Automatic Standby Time screen, you can choose how long the device screen remains active when there is no activity. Select a standby time, and then tapContinue. If your terminal has an integrated printer, the Load Paper screen appears. See Loading Paper in a PAX Terminal with an Integrated Printer. If the terminal does not have a printer, you are prompted to activate your terminal in the Acceptance Devices app. See Activating a Terminal in the Acceptance Devices App.
Loading Paper in a PAX Terminal with an Integrated Printer
If your PAX terminal is equipped with an integrated printer, a roll of printer paper
is included with the device. Have the paper roll available.
The Load Paper screen appears on the device during terminal set up only when a
terminal has an integrated printer. In order to print transaction receipts, the paper
roll must be loaded into the terminal.
Follow these steps to load printer paper in to
the PAX Terminal:
- On back of the terminal, open the printer hatch by moving the printer cover switch toward the bottom of the device.
- Review the diagram on the inside of the hatch, which shows the correct way to insert the paper roll.
- Insert the paper roll.
- Pull out approximately 1 inch of the paper beyond the hatch. This step reduces the possibility of a paper jam occurring when you print the first receipt.
- Close the hatch.
- TapContinue. You are prompted to activate your terminal in the Acceptance Devices app. See Activating a Terminal in the Acceptance Devices App.
Activating a Terminal in the Acceptance Devices App
In order to process payments on your PAX device using the Acceptance Devices app and your
point-of-sale (POS) system, you must activate a terminal in the Acceptance Devices app
by using an activation code. You can generate the code in the
Business Center
or
by using an API request. After generating the activation code, you must enter it in the
Acceptance Devices app. Generating a Terminal Activation Code in the Business Center
Business Center
The terminal activation code that you generate in the
Business Center
is valid for 24
hours.Follow these steps to generate a terminal activation code:
- In theBusiness Center, go to the left navigation panel and chooseAcceptance Devices > Activation Codes. The Activation Codes page appears.
- Click theSelect Transacting MIDdrop-down menu.
- Choose a transacting MID from the list.
- Click theSelect number of Activation Codesdrop-down menu.
- Choose the number of activation codes that you want to generate. The maximum number of codes is 15.
- ClickGenerate. The activation codes display on the page. To copy the codes to your clipboard, click the icon next to the code.
- To download a text file containing the activation codes, click theDownload codes as a .txt filebutton.
- Navigate to the Download folder on your computer to access the text file.
Generating a Terminal Activation Code Using a REST API Request
Before activating the terminal in the Acceptance Devices app, you must generate a terminal activation code.
You can use a REST API request to generate a terminal activation code, which is valid for
24 hours.
You must authenticate each request that you send to a
Cybersource
API. In
order to authenticate an API request, you can use a REST shared secret key or a
REST certificate. For more information about authentication requirements, see .Endpoints
The POST request must include the transacting merchant ID (MID) that is sending the
request and the quantity of activation codes to be generated. You can request up to
15 activation codes in a single request.
Test:
POST
https://apitest.cybersource.com
/dms/v2/merchants/{transacting
mid}/activation-codes?size={number of activation codes}Production:
POST
https://api.cybersource.com
/dms/v2/merchants/{transacting
mid}/activation-codes?size={number of activation codes}Required Fields for Generating a Terminal Activation Code
The body of the API request is empty. The POST request must include the information
required to return the response.
REST Example: Generating a Terminal Activation Code
Request
The body of the request is empty. The POST request includes the information required
to return the response.
{ }
Response to a Successful Request
The response includes the activation code (
token
field) and
the amount of time (ttl
field) that the activation code is
valid. The ttl
field value is shown in milliseconds. The
activation code is valid for 24 hours. { "tokens": [ { "token": "%N5wU2jH", "ttl": 86399805 } ] }
Entering an Activation Code in the Acceptance Devices App
Before activating a terminal, you must generate a terminal activation code for the
device in the
Business Center
or by using a REST API request. The activation
code is valid for 24 hours. Follow these steps to enter a terminal activation code in the Acceptance Devices
app:
- On the Device Activation screen, enter the activation code that you generated. TapContinue.
- When the activation code is accepted, the Activation Successful screen appears. TapConfirm.
AFTER COMPLETING THE TASK
If you are using the app in Local mode with Mutual Transport Layer Security (mTLS) enabled, you
must activate a secure mTLS connection between your point-of-sale (POS) system and
the Android device in the Acceptance Devices app. See Activating a Secure mTLS Connection.
If you are using the app in Local mode with Transport Layer Security (TLS) enabled or
in Cloud mode, you must start the Acceptance Devices app server. See Starting the Acceptance Devices App Server.
Getting Started with the Acceptance Devices App Server
In order to process payments on your payment terminal using the Acceptance Devices app and
your point-of-sale (POS) system, you must start the Acceptance Devices app server on the
terminal.
Starting the Acceptance Devices App Server
Before you can start the Acceptance Devices app server, you must activate a terminal
in the Acceptance Devices app. For more information, see Activating a Terminal in the Acceptance Devices App.
Follow these steps to start the Acceptance Devices app server:
- Before you start the server, the Device Status screen shows theDevice is not connectedmessage. TapConnect Device.
- After you start the server, the Device Status screen shows theDevice connectedmessage. The terminal is activated and ready to accept transactions.
- Tap the back navigation arrow to finish setup.
Customizing the Acceptance Devices App
This section describes how to customize the Acceptance Devices app in the
Business Center
or by using a REST API request. Use the Acceptance Devices Customizations feature in the
Business Center
to
customize these parameters for a portfolio, merchant, or transacting merchant ID
(MID):- User interface
- Common
- Local mode
- Standalone mode
Use a REST API request to perform these customization tasks:
- Retrieve and review your current parameter customization settings.
- Update customization settings for user interface, common, Local mode, and Standalone mode parameters.
Customizable User Interface Parameters
You can customize these user interface parameters in the Acceptance Devices app when it
is in Local, Standalone, or Cloud mode:
- Home screen logo
- Defines the logo that is shown on the home screen of the app.
- Toolbar logo
- Defines the logo that is shown during transaction processing.
- Primary color
- Defines the color of the primary buttons.
- Color on primary
- Defines the color of the text on the primary buttons.
- Background color
- Defines the color of the screen background.
- Color on background
- Defines the color of the text on the screen background.
- Button shape
- Defines the shape of the buttons.
Customizable Common Parameters
You can customize these common parameters in the Acceptance Devices app when it is in
Local, Standalone, or Cloud mode:
- Operating mode – Choose one of these operating modes:
- Semi-Integrated with Standalone:Acceptance Devices app operates in Local and Standalone modes. This is the default setting.
- Semi-Integrated:Acceptance Devices app operates only in Local mode.
- Standalone:Acceptance Devices app operates only in Standalone mode.
- Cloud with Standalone:Acceptance Devices app operates in Cloud and Standalone modes.
- Cloud:Acceptance Devices app operates only in Cloud mode.
- Automatic receipt printing
- Enables the automatic printing of the merchant or customer receipt after each transaction. The default setting isDisabled. This feature is available only on terminals with integrated printers.
- Enable accessibility options
- Enables the use of accessibility features during transaction processing. This feature supports visually impaired customers by using voice-over capabilities. The default setting isTrue.
- Tipping type – Choose one of these tipping types:
- Percentage choice:Customer selects between three pre-defined tip percentages or enters a custom tip amount. The tipping values are set in the Tipping values parameter. This is the default setting.
- Tip amount:Customer enters a custom tip amount.
- Total amount:Customer enters the full amount, including the tip amount.
- Tipping values
- Defines the three tipping percentage choices that appear on the screen for the customer to choose. This parameter only applies if the Tipping Type parameter is set to Percentage choice. The default setting is10, 15, 20.
- Tipping confirmation screen
- Enables the display of an additional screen during a Sale with On-Reader Tipping transaction. The customer reviews and confirms that the tip amount before the payment is processed. The default setting isFalse.
- MOTO CVV required
- Enables Card Verification Value (CVV) as a required data input for mail order or telephone order (MOTO) transactions. The default setting isTrue.
- MOTO address required
- Enables the customer's address as a required data input for MOTO transactions. The default setting isTrue.
- MOTO confirmation screen
- Enables the display of an additional screen during MOTO transactions. The merchant reviews and confirms the MOTO address data shown on the screen before the payment is processed. The default setting isFalse.
- Enable offline mode
- Enables the option to toggle Offline mode ON/OFF to process transactions without internet connectivity. The default setting isFalse.
- Transaction history view
- Defines whether the transaction history view is shown at the merchant or device level. The default setting isMerchant.
Customizable Local Mode Parameters
These are the Local mode parameters that you can customize in the Acceptance Devices app:
- Port
- Defines the port number used by the server on the terminal. The default setting is8443.
- Security
- Defines whether the server on the terminal uses two-way verification (mTLS) or one-way verification (TLS). The default setting ismTLS.
- Protocol
- Defines the protocol that is used to process transactions. The default setting isADP.
- Signature capture type
- Defines whether the signature is captured on the terminal screen or paper receipt, or is skipped. The default setting isOn screen.
- Skip summary screen
- Disables the Summary screen from displaying after each transaction. The default setting isTrue.
Customizable Standalone Mode Parameters
You can customize these Standalone mode parameters in the Acceptance Devices app:
- Additional transaction types
- Defines the list of transaction types, in addition to sale and refund transactions that are supported when the app is in Standalone mode. The default setting isNone.
- Enable LAC installments
- Enables the option to toggle Latin America and Caribbean (LAC) installments ON/OFF in order to process transactions with installment details. The default setting isFalse.
- Enable tax details
- Enables the option to toggle Tax details ON/OFF in order to process transactions with tax details. The default setting isFalse.
Customizing Parameters in the Business Center
Business Center
You can customize common, Local mode, and Standalone mode parameters for the
Acceptance Devices app in the
Business Center
.- In theBusiness Center, go to the left navigation panel and chooseAcceptance Devices>Customizations. The Customizations screen appears.
- Click theLoad customization parameter fordrop-down menu.
- Choose a user level from the list. ClickLoad.
- Scroll down to see the various parameter sections and which elements are available to customize for the chosen user level.
- Choose parameters to customize. To see a description of a parameter, hover your mouse over the Information icon.
- ClickApply Changes.
Retrieving Parameters Using a REST API Request
Using a REST API request, you can retrieve and view customizable parameters and their
current values. Depending on your account settings, you can view values for a portfolio,
merchant, or transacting merchant ID (MID).
You must authenticate each request that you send to a
Cybersource
API. In
order to authenticate an API request, you can use a REST shared secret key or a
REST certificate. For more information about authentication requirements, see .Endpoints
The GET request must include the organization ID for the portfolio, merchant, or
transacting merchant ID that is sending the request.
Test:
GET
https://apitest.cybersource.com
/dms/v2/customization?type=organization&id={{organization
id}}Production:
GET
https://api.cybersource.com
/dms/v2/customization?type=organization&id={{organization
id}}Required Fields for Retrieving Parameters Using a REST API Request
The body of the API request is empty. The GET request must include the information
required to return the response.
REST Example: Retrieving Parameters Using a REST API Request
Request
The body of the request is empty. The GET request includes the information required
to return the response.
{ }
Response to a Successful Request
{ "id": "{{organization id}}", "customizations": { Your configured parameters response data appears here. }, "customizationMetadata": { Your possible values for parameters response data appears here. } }
Customizing Parameters Using a REST API Request
You can update customizable parameters for a portfolio, merchant, or transacting merchant
ID (MID) by using a REST API request.
You must authenticate each request that you send to a
Cybersource
API. In
order to authenticate an API request, you can use a REST shared secret key or a
REST certificate. For more information about authentication requirements, see .Endpoints
Test:
PUT
https://apitest.cybersource.com
/dms/v2/customizationProduction:
PUT
https://api.cybersource.com
/dms/v2/customizationRequired Fields for Customizing Parameters Using a REST API Request
- type
- Set this field toorganization.
- id
- Set this field toorganization idfor the portfolio, merchant, or transacting MID.
- customizations
- Set this field to the parameters to be updated.
REST Example: Customizing Parameters Using a REST API Request
Request
{ "type": "organization", "id": "{{organization id}}", "customizations": { "OPERATING_MODE": "SEMI_INTEGRATED", "TIPPING_TYPE": "TIP_AMOUNT", "SIGNATURE_TYPE": "ON_RECEIPT" } }
Response to a Successful Request
The body of the response is empty. A successful response is indicated with a
200 OK
status.{ }
Local Mode Payment Services
This section describes how to process payment services featured in the Acceptance Devices
app when operated in Local mode.
These are some Local mode features:
- The point-of-sale (POS) system communicates with the Acceptance Devices app on the terminal over a local Wi-Fi network.
- You can retrieve the Root CA certificate to validate the Acceptance Devices app server’s certificate.
- You have the option to activate an mTLS connection in the Acceptance Devices app.
- You have the option to implement hostname validation in your client.
For information about other modes available in the Acceptance Devices app, see:
Communication Protocol Used in Local Mode
When using the solution in Local mode, the communication protocol used between the
Acceptance Devices app and the point-of-sale (POS) system is a single WebSocket channel.
Through this channel, simultaneous, two-way communication occurs between the Acceptance
Devices app and the POS system.
Retrieving the Root CA Certificate
When the app is operating in Local mode, you can validate the Acceptance Devices app
server’s certificate by adding the Root CA certificate to your trust store. This action
is required if you want to use an mTLS connection. For more information, see Activating a Secure mTLS Connection.
You can retrieve the Root CA certificate in the
Business Center
or by using an
API request. Retrieving the Root CA Certificate in the Business Center
Business Center
Follow these steps to retrieve the Root CA certificate in the Business Center:
- In theBusiness Center, go to the left navigation panel and chooseAcceptance Devices > Activation Codes. The Activation Codes page appears.
- ClickDownload Root CA Certificate. When the download is complete, the browser window shows a download completion message.
- In the local folder directory of your computer, navigate to the Download folder to access the Root CA certificate file.
Retrieving the Root CA Certificate Using a REST API Request
You can use a REST API request to retrieve the Acceptance Devices app server’s Root CA
certificate when the app is operating in Local mode. You would then add the certificate
to your trust store.
You must authenticate each API request you send to a
Cybersource
API by using a REST shared secret key or a REST certificate. For more information about authentication
requirements, see .Endpoints
Test:
GET
https://apitest.cybersource.com
/dms/v2/devices/certificates/rootcaProduction:
GET
https://api.cybersource.com
/dms/v2/devices/certificates/rootcaRequired Fields for Retrieving the Root CA Certificate Using a REST API Request
The body of the API request is empty.
REST Example: Retrieving the Root CA Certificate Using a REST API Request
Request
The body of the request is empty.
{ }
Response to a Successful Request
The response includes a PEM–encoded certificate chain.
{ "certificateChain": "-----BEGIN CERTIFICATE-----Your certificate response data appears here.-----END CERTIFICATE-----" }
Activating a Secure mTLS Connection
When the app is operating in Local mode, using a Mutual Transport Layer Security (mTLS)
connection creates an additional layer of security for communication between the
Acceptance Devices app running on your PAX terminal and point-of-sale (POS) system.
Using the mTLS protocol is recommended because it employs two-way verification. The
minimum requirement for providing end-to-end data security is using the Transport Layer
Security (TLS) protocol.
Before activating an mTLS connection, you must retrieve the Root CA certificate. For more
information, see Retrieving the Root CA Certificate.
Endpoints
The endpoint is the same for the test and production environments.
Test:
POST https://{terminal IP address:port number}/ or wss://{terminal IP
address:port number}/
Production:
POST https://{terminal IP address:port number}/ or wss://{terminal IP
address:port number}/
Generating a POS Connection Code for the Point-of-Sale System
Before you can sync the terminal with the point-of-sale (POS) system to establish a
secure connection, you must activate the terminal. For more information, see Activating a Terminal in the Acceptance Devices App.
To ensure the security of the data sent over the internet between your POS system and
the PAX terminal, you must establish a secure connection (sync) between your system
and the terminal. You must complete this procedure one time only for each POS system
you are using.
If Mutual Transport Layer Security (mTLS) is enabled, and terminal activation is
complete, the Generate Code screen appears during terminal set up.
Follow these steps to generate a POS connection code for a POS system in the
Acceptance Devices app:
- On the Generate Code screen, tapGenerate Code.
- Record the eight-character code that appears on the screen. You will use this code to request a certificate from the POS system. The screen shows an expiration timer for the code, which refreshes every 300 seconds.
Requesting Certificates for the Point-of-Sale System
Before you can request certificates, you must generate a set-up code for the POS
system.
To finish activating the secure mTLS connection, request certificates for the POS
system by sending a request to the PAX terminal through the POS system.
- On the Generate Code screen, tap theDetailsarrow. The Details section expands to show the HTTP and WSS (WebSocket) addresses and the port number.
- Record the HTTP and WSS addresses and port number shown in the Details section. You will use this information to request a certificate through the POS system, using the HTTPS or WSS address.
- To request the certificates, send an API request through the POS system to the HTTP or WSS address and port number, along with the POS connection code shown on the terminal and a unique POS ID.
- After the certificates are retrieved by the POS system and the sync between your POS system and the PAX terminal is complete, thePOS Activation Successfulmessage appears. TapClose. The next set-up screen appears.
Required Fields for Requesting Certificates for the Point-of-Sale System
- posId
- Set this field to a unique, user-defined ID for the POS system.
- setupCode
- Set this field to the POS connection code shown on the Generate POS Connection Code screen in the Acceptance Devices app.
REST Example: Requesting Certificates for the Point-of-Sale System
Request
{ "posId" : "123", "setupCode" : "8QW1YS1D" }
Response to a Successful Request
The response includes the private key and certificates required in order to establish
the secure Mutual Transport Layer Security (mTLS) connection between the PAX
terminal and the POS system. For security reasons, this example does not show actual
private key and certificate response data.
-----BEGIN RSA PRIVATE KEY----- Your RSA private key response data appears here. -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- Your certificate response data appears here. -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Your certificate response data appears here. -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Your certificate response data appears here. -----END CERTIFICATE-----
Implementing Hostname Validation
When the app is operating in Local mode, you have the option to include hostname
validation in your client. When the terminal is activated, a certificate is generated on
the terminal and a Subject Alternative Name (SAN) is added. On the terminal, the SAN can
be viewed as the Domain Name System (DNS) name for the Acceptance Devices app
server.
The SAN is generated in this format: {terminal serial number}.cybs.seclib.io.
To perform hostname validation or to connect to the terminal by using a SAN instead of an
IP address, you can add the terminal IP address and SAN to your hosts file.
Processing a Sale
This section describes how to process a sale transaction when the app is in Local mode.
This type of transaction combines an authorization and a capture into a single
transaction.
Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing an Sale
- type
- Set this field toPaymentRequest.
- merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-). Avoid using formatting that resembles a telephone number (XXX-XXX-XXXX) or a Social Security number (XXX-XX-XXXX).
- amountDetails.amount
- Set this field to the transaction amount.
- amountDetails.currency
- Set this field to the currency code.
REST Example: Processing a Sale
Request
{ "type" : "PaymentRequest", "merchantReferenceCode" : "058ed6c3430e436dab91b782f4113fd2", "amountDetails" : { "amount" : "1.00", "currency" : "GBP" } }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the
current status of the transaction. You can choose to display these updates on your
point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type" : "PaymentResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "1541387b383d456aabb81cdf558b4e8e", "merchantReferenceCode" : "058ed6c3430e436dab91b782f4113fd2", "submitTimeUtc" : "2023-12-01T20:24:47+0000", "captured" : true, "amountDetails" : { "currency" : "GBP", "amount" : "1.00", "capturedAmount" : "1.00", "refundableAmount" : "1.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "476173XXXXXX0119", "countryCode" : "840" } }, "additionalInformation" : { "instrumentId" : "7030000000022690119", "requestId" : "7014622903166318504010" }, "linkedOperations" : [ ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£1.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938238\nMerchant ID: **37599\nTerminal ID: ****0063\n\n1541387b383d456aabb81cdf558b4e8e\n21:24:51: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938238" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "1541387b383d456aabb81cdf558b4e8e" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:24:51" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£1.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938238\nMerchant ID: **37599\nTerminal ID: ****0063\n\n1541387b383d456aabb81cdf558b4e8e\n21:24:51: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938238" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "1541387b383d456aabb81cdf558b4e8e" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:24:51" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Refund
This section describes how to process a refund when the app is in Local Mode mode. This
type of refund includes a reference to the original transaction for a full or partial
transaction amount. Stand-alone credits are also supported in this Acceptance Devices
solution. For more information, see Processing a Stand-Alone Credit.
Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing a Refund
- type
- Set this field toLinkedRefundRequest.
- transactionId
- Set this field to theidfield value from the original transaction.
Optional Fields for Processing a Refund
Use the optional amount and currency fields to process a partial refund. Otherwise,
the full amount will be refunded.
- amountDetails.amount
- Set this field to the transaction amount.
- amountDetails.currency
- Set this field to the currency code.
REST Example: Processing a Refund
Request
{ "type": "LinkedRefundRequest", "transactionId": "8fe5fa21d0814424bcec4997c9dc89c4", "amountDetails": { "amount": "1.00", "currency": "GBP" } }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the current status of the transaction. You can choose to display these updates on your point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type" : "LinkedRefundResponse", "message" : "Refund approved", "transactionDetails" : { "id" : "8fe5fa21d0814424bcec4997c9dc89c4", "merchantReferenceCode" : "e94e3aa304514140ae1700ba0959c7c5", "submitTimeUtc" : "2023-12-01T20:57:30+0000", "captured" : true, "amountDetails" : { "currency" : "GBP", "amount" : "1.00", "capturedAmount" : "0.00", "refundableAmount" : "0.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "476173XXXXXX0119", "countryCode" : "840" } }, "additionalInformation" : { "instrumentId" : "7030000000022690119", "requestId" : "7014642534986108604008" }, "linkedOperations" : [ { "id" : "b383db1aecab46d89f1dbec8b0a9aa90", "type" : "REFUND", "amount" : "1.00", "status" : "APPROVED", "submitTimeUtc" : "2023-12-01T20:57:48+0000" } ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nVoid\n-£1.00\n\n\nReversal accepted.\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Keyed\n\nAuthorization: -\nMerchant ID: **37599\nTerminal ID: ****0063\n\nb383db1aecab46d89f1dbec8b0a9aa90\n21:57:50: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "-" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Void" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "b383db1aecab46d89f1dbec8b0a9aa90" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "-£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:57:50" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Reversal accepted." } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nVoid\n-£1.00\n\n\nReversal accepted.\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Keyed\n\nAuthorization: -\nMerchant ID: **37599\nTerminal ID: ****0063\n\nb383db1aecab46d89f1dbec8b0a9aa90\n21:57:50: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "-" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Void" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "b383db1aecab46d89f1dbec8b0a9aa90" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "-£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:57:50" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Reversal accepted." } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Stand-Alone Credit
This section describes how to process a stand-alone credit when the app is in Local mode.
This type of transaction is used to process a credit without reference to the original
transaction. The customer is required to present their card for this type of
transaction.
WARNING
When processing a stand-alone credit, there is no limit on the
credit amount because there is no reference to the original transaction amount. The
recommendation is to use a refund transaction whenever possible. For more information,
see Processing a Refund.
Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing a Stand-Alone Credit
- type
- Set this field toStandaloneRefundRequest.
- merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-). Avoid using formatting that resembles a telephone number (XXX-XXX-XXXX) or a Social Security number (XXX-XX-XXXX).
- amountDetails.amount
- Set this field to the transaction amount.
- amountDetails.currency
- Set this field to the currency code.
REST Example: Processing a Stand-Alone Credit
Request
{ "type": "StandaloneRefundRequest", "merchantReferenceCode": "2490c8ec0e2f4b509526815714313e33", "amountDetails": { "amount": "1.00", "currency": "GBP" } }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the current status of the transaction. You can choose to display these updates on your point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type" : "StandaloneRefundResponse", "message" : "Refund approved", "transactionDetails" : { "id" : "3043e0b61fad4c5483db3d498309460f", "merchantReferenceCode" : "2490c8ec0e2f4b509526815714313e33", "submitTimeUtc" : "2023-12-01T21:04:19+0000", "amountDetails" : { "amount" : "1.00", "currency" : "GBP" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "AMERICAN_EXPRESS", "maskedPan" : "374245XXXXX0001" } }, "additionalInformation" : { "requestId" : "7014646720206287504012" }, "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nRefund\n-£1.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks AMEX\nAccount: *** **** **** 0001\nEntry Mode: Chip\nAID: A0000000250100\n\nTransaction: -\nAuthorization: -\nMerchant ID: *****67890\nTerminal ID: ****0026\n\n3043e0b61fad4c5483db3d498309460f\n10:04:19 PM: 12/1/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks AMEX" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "*** **** **** 0001" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000250100" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Chip" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER" : { "label" : "Transaction", "value" : "-" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "-" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "*****67890" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0026" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Refund" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "3043e0b61fad4c5483db3d498309460f" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "-£1.00" }, "DATE" : { "label" : "Date", "value" : "12/1/2023" }, "TIME" : { "label" : "Time", "value" : "10:04:19 PM" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nRefund\n-£1.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks AMEX\nAccount: *** **** **** 0001\nEntry Mode: Chip\nAID: A0000000250100\n\nTransaction: -\nAuthorization: -\nMerchant ID: *****67890\nTerminal ID: ****0026\n\n3043e0b61fad4c5483db3d498309460f\n10:04:19 PM: 12/1/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks AMEX" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "*** **** **** 0001" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000250100" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Chip" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER" : { "label" : "Transaction", "value" : "-" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "-" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "*****67890" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0026" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Refund" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "3043e0b61fad4c5483db3d498309460f" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "-£1.00" }, "DATE" : { "label" : "Date", "value" : "12/1/2023" }, "TIME" : { "label" : "Time", "value" : "10:04:19 PM" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Requesting a Check Transaction Status
This section describes how to request a check transaction status when the app is in Local
mode. This transaction is used to obtain response data for a transaction that was lost
or timed out.
Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Requesting a Check Transaction Status
- type
- Set this field toTransactionLookupRequest.
- idType
- Set this field toTRANSACTION_IDorMERCHANT_REFERENCE_CODE.
- id
- Set this field to theidormerchantReferenceCodefield value from the original transaction.
REST Example: Requesting a Check Transaction Status
Request
{ "type": "TransactionLookupRequest", "idType": "TRANSACTION_ID", "id": "1541387b383d456aabb81cdf558b4e8e" }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the current status of the transaction. You can choose to display these updates on your point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type" : "TransactionLookupResponse", "transactionDetails" : { "id" : "1541387b383d456aabb81cdf558b4e8e", "merchantReferenceCode" : "058ed6c3430e436dab91b782f4113fd2", "submitTimeUtc" : "2023-12-01T20:24:47+0000", "captured" : true, "amountDetails" : { "currency" : "GBP", "amount" : "1.00", "capturedAmount" : "1.00", "refundableAmount" : "1.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "476173XXXXXX0119", "countryCode" : "840" } }, "additionalInformation" : { "instrumentId" : "7030000000022690119", "requestId" : "7014622903166318504010" }, "linkedOperations" : [ ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£1.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938238\nMerchant ID: **37599\nTerminal ID: ****0063\n\n1541387b383d456aabb81cdf558b4e8e\n21:24:51: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938238" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "1541387b383d456aabb81cdf558b4e8e" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:24:51" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£1.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938238\nMerchant ID: **37599\nTerminal ID: ****0063\n\n1541387b383d456aabb81cdf558b4e8e\n21:24:51: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938238" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "1541387b383d456aabb81cdf558b4e8e" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:24:51" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Cancel Transaction
This section describes how to process a cancel transaction request in Local
mode. This request is sent to interrupt an in-process transaction.
Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing a Cancel Transaction
- type
- Set this field toCancelRequest.
REST Example: Processing a Cancel Transaction
Request
{ "type": "CancelRequest" }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the current status of the transaction. You can choose to display these updates on your point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type" : "PaymentResponse", "message" : "Payment aborted", "transactionDetails" : { "id" : "b6522aeb9d8d49b386f7c67852581145", "merchantReferenceCode" : "50c86aaa02ed4c0bb4b4b596379713f7", "submitTimeUtc" : "2023-12-01T20:30:05+0000", "captured" : false, "amountDetails" : { "currency" : "GBP", "amount" : "1.00", "capturedAmount" : "0.00", "refundableAmount" : "0.00" } }, "processingDetails" : { "status" : "ABORTED", "verificationMethod" : "UNKNOWN", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "00", "expirationYear" : "00", "type" : "UNKNOWN", "maskedPan" : "" } }, "linkedOperations" : [ ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£1.00\n\n\nCanceled transaction.\n\n\nEntry Mode: Contactless\nAID: NULL\n\n\nb6522aeb9d8d49b386f7c67852581145\n21:30:05: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "NULL" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "b6522aeb9d8d49b386f7c67852581145" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:30:05" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Canceled transaction." } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£1.00\n\n\nCanceled transaction.\n\n\nEntry Mode: Contactless\nAID: NULL\n\n\nb6522aeb9d8d49b386f7c67852581145\n21:30:05: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "NULL" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "b6522aeb9d8d49b386f7c67852581145" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:30:05" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Canceled transaction." } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Sale with On-Reader Tipping
This section describes how to process a sale with on-reader tipping in Local
mode. At the start of each transaction, the terminal prompts the customer to add a tip
by showing suggested tip amounts. The customer selects or enters a tip amount on the
terminal before presenting their payment card.
Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing a Sale with On-Reader Tipping
- type
- Set this field toPaymentRequest.
- merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-). Avoid using formatting that resembles a telephone number (XXX-XXX-XXXX) or a Social Security number (XXX-XX-XXXX).
- amountDetails.amount
- Set this field to the transaction amount.
- amountDetails.currency
- Set this field to the currency code.
- askForTip
- Set this field toON_DEVICE.
REST Example: Processing a Sale with On-Reader Tipping
Request
{ "type" : "PaymentRequest", "merchantReferenceCode" : "adf0fa5ca70d462ba5fc0249436b656c", "amountDetails" : { "amount" : "5.00", "currency" : "GBP" }, "askForTip" : "ON_DEVICE" }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the current status of the transaction. You can choose to display these updates on your point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type" : "PaymentResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "55678c8b152046f7b1d77fd2286ce392", "merchantReferenceCode" : "adf0fa5ca70d462ba5fc0249436b656c", "submitTimeUtc" : "2023-12-01T21:01:23+0000", "captured" : true, "amountDetails" : { "currency" : "GBP", "amount" : "6.00", "capturedAmount" : "6.00", "refundableAmount" : "6.00", "includedTipAmount" : "1.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "476173XXXXXX0119", "countryCode" : "840" } }, "additionalInformation" : { "instrumentId" : "7030000000022690119", "requestId" : "7014644863036208304012" }, "linkedOperations" : [ ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\nPurchase Amount: £5.00\nTip Amount: £1.00\nTotal Amount: £6.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938252\nMerchant ID: **37599\nTerminal ID: ****0063\n\n55678c8b152046f7b1d77fd2286ce392\n22:01:27: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938252" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "55678c8b152046f7b1d77fd2286ce392" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£6.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "22:01:27" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\nPurchase Amount: £5.00\nTip Amount: £1.00\nTotal Amount: £6.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938252\nMerchant ID: **37599\nTerminal ID: ****0063\n\n55678c8b152046f7b1d77fd2286ce392\n22:01:27: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938252" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "55678c8b152046f7b1d77fd2286ce392" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£6.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "22:01:27" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Sale with On-Receipt Tipping
This section describes how to process a sale with on-receipt tipping when the app is in
Local mode. After the original transaction is pre-authorized, the customer writes the
tip or total amount on the printed receipt. A follow-on tip adjust request must be sent
within 24 hours in order to capture the transaction. For more information, see Processing a Tip Adjust.
WARNING
By using this feature, you assume the risk of the
overcapture being declined and increased chargebacks. Use this feature only when required.
The recommendation is to process a sale with on-reader tipping whenever possible. For
more information, see Processing a Sale with On-Reader Tipping.
Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing a Sale with On-Receipt Tipping
- type
- Set this field toPaymentRequest.
- merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-). Avoid using formatting that resembles a telephone number (XXX-XXX-XXXX) or a Social Security number (XXX-XX-XXXX).
- amountDetails.amount
- Set this field to the transaction amount.
- amountDetails.currency
- Set this field to the currency code.
- capture
- Set this field tofalse.
- askForTip
- Set this field toON_RECEIPT.
REST Example: Processing a Sale with On-Receipt Tipping
Request
{ "type" : "PaymentRequest", "merchantReferenceCode" : "1ce594be142142f4913cca805830a176", "amountDetails" : { "amount" : "20.00", "currency" : "USD" }, "capture" : false, "askForTip" : "ON_RECEIPT" }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the
current status of the transaction. You can choose to display these updates on your
point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type" : "PaymentResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "c6174c80b81f4413a4b9f2065c5431c7", "merchantReferenceCode" : "1ce594be142142f4913cca805830a176", "submitTimeUtc" : "2024-03-20T09:19:41+0000", "captured" : false, "amountDetails" : { "currency" : "USD", "amount" : "20.00", "capturedAmount" : "20.00", "refundableAmount" : "20.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "476173XXXXXX0119", "countryCode" : "840" } }, "additionalInformation" : { "instrumentId" : "7030000000022690119", "requestId" : "7109263864326505004007" }, "linkedOperations" : [ ], "tipAdjustStatus" : "ADJUSTABLE", "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\n55555 New York\nUnited States\n1234567\n\nSale\n$20.00\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 002000\nMerchant ID: **37599\nTerminal ID: ****0063\n\n\nc6174c80b81f4413a4b9f2065c5431c7\n\n\n\n10:19:46: 20/03/2024\n\n\n\nTIP:\n___________________\n\nTOTAL:\n___________________\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "55555" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "New York" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United States" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "002000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "c6174c80b81f4413a4b9f2065c5431c7" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "$20.00" }, "DATE" : { "label" : "Date", "value" : "20/03/2024" }, "TIME" : { "label" : "Time", "value" : "10:19:46" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false, "tipLineRequired" : true, "totalLineRequired" : true } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\n55555 New York\nUnited States\n1234567\n\nSale\n$20.00\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 002000\nMerchant ID: **37599\nTerminal ID: ****0063\n\n\nc6174c80b81f4413a4b9f2065c5431c7\n\n\n\n10:19:46: 20/03/2024\n\n\n\nTIP:\n___________________\n\nTOTAL:\n___________________\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "55555" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "New York" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United States" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "002000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "c6174c80b81f4413a4b9f2065c5431c7" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "$20.00" }, "DATE" : { "label" : "Date", "value" : "20/03/2024" }, "TIME" : { "label" : "Time", "value" : "10:19:46" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false, "tipLineRequired" : true, "totalLineRequired" : true } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Tip Adjust
This section describes how to process a tip adjust when the app is in Local Mode mode.
This follow-on transaction is required when processing an on-receipt tipping
transaction. The tip adjust request must be sent within 24 hours in order to capture the
transaction.
After the original transaction is pre-authorized, the customer writes the tip or total
amount on the printed receipt. A follow-on tip adjust request is then sent to capture
the additional tip amount. This transaction is also referred to as an
overcapture
. For more information, see Processing a Sale with On-Receipt Tipping.Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing a Tip Adjust
- type
- Set this field toTipAdjustRequest.
- transactionId
- Set this field to theidfield value from the original transaction.
- amountDetails.amount
- Set this field to the transaction amount.
- amountDetails.currency
- Set this field to the currency code.
REST Example: Processing a Tip Adjust
Request
{ "type": "TipAdjustRequest", "transactionId": "c6174c80b81f4413a4b9f2065c5431c7", "amountDetails": { "amount": "4.00", "currency": "USD" } }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the
current status of the transaction. You can choose to display these updates on your
point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type" : "TipAdjustResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "c6174c80b81f4413a4b9f2065c5431c7", "merchantReferenceCode" : "1ce594be142142f4913cca805830a176", "submitTimeUtc" : "2024-03-20T09:19:41+0000", "captured" : true, "amountDetails" : { "currency" : "USD", "amount" : "24.00", "capturedAmount" : "24.00", "refundableAmount" : "24.00", "includedTipAmount" : "4.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "476173XXXXXX0119", "countryCode" : "840" } }, "additionalInformation" : { "instrumentId" : "7030000000022690119", "requestId" : "7109265975966653104007" }, "linkedOperations" : [ ], "tipAdjustStatus" : "ADJUSTED", "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\n55555 New York\nUnited States\n1234567\n\nCapture\nPurchase Amount: $20.00\nTip Amount: $4.00\nTotal Amount: $24.00\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 002000\nMerchant ID: **37599\nTerminal ID: ****7478\n\n\nc6174c80b81f4413a4b9f2065c5431c7\n\n10:23:17: 20/03/2024\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "55555" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "New York" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United States" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "002000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****7478" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Capture" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "c6174c80b81f4413a4b9f2065c5431c7" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "$24.00" }, "DATE" : { "label" : "Date", "value" : "20/03/2024" }, "TIME" : { "label" : "Time", "value" : "10:23:17" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false, "tipLineRequired" : false, "totalLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\n55555 New York\nUnited States\n1234567\n\nCapture\nPurchase Amount: $20.00\nTip Amount: $4.00\nTotal Amount: $24.00\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 002000\nMerchant ID: **37599\nTerminal ID: ****7478\n\n\nc6174c80b81f4413a4b9f2065c5431c7\n\n10:23:17: 20/03/2024\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "55555" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "New York" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United States" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "002000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****7478" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Capture" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "c6174c80b81f4413a4b9f2065c5431c7" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "$24.00" }, "DATE" : { "label" : "Date", "value" : "20/03/2024" }, "TIME" : { "label" : "Time", "value" : "10:23:17" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false, "tipLineRequired" : false, "totalLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Token Refund
This section describes how to process a token refund when the app is in Local
mode. A token refund transaction enables you to process a stand-alone credit against a
tokenized card. In order to process a credit through a token, you must have the
Token Management Service
product enabled and an existing (saved) token from a tokenized
transaction. For more information, see .Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing a Token Refund
- type
- Set this field toTokenRefundRequest.
- instrumentId
- Set this field to the Instrument Identifier token.
- merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-). Avoid using formatting that resembles a telephone number (XXX-XXX-XXXX) or a Social Security number (XXX-XX-XXXX).
- amountDetails.amount
- Set this field to the transaction amount.
- amountDetails.currency
- Set this field to the currency code.
REST Example: Processing a Token Refund
Request
{ "type": "TokenRefundRequest", "instrumentId": "7030000000022690119", "merchantReferenceCode": "30ed45dc7b3f4fb9905413940ac30363", "amountDetails": { "amount": "1.00", "currency": "GBP" } }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the current status of the transaction. You can choose to display these updates on your point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type" : "TokenRefundResponse", "message" : "Refund approved", "transactionDetails" : { "id" : "596b797178fe45e39ce3a8b8fdf432d6", "merchantReferenceCode" : "30ed45dc7b3f4fb9905413940ac30363", "submitTimeUtc" : "2023-12-01T21:02:50+0000", "amountDetails" : { "amount" : "1.00", "currency" : "GBP" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "MANUAL", "card" : { "expirationMonth" : "00", "expirationYear" : "00", "type" : "VISA", "maskedPan" : "703000XXXXXXXXX0119" } }, "additionalInformation" : { "requestId" : "7014645711206245404009" }, "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nRefund\n-£1.00\n\n\nPlease retain receipt!\n\n\nCard: VISA\nAccount: *** **** **** **** 0119\nEntry Mode: Keyed\n\nTransaction: -\nAuthorization: -\nMerchant ID: **37599\nTerminal ID: *************L_ID\n\n596b797178fe45e39ce3a8b8fdf432d6\n10:02:50 PM: 12/1/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "*** **** **** **** 0119" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER" : { "label" : "Transaction", "value" : "-" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "-" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "*************L_ID" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Refund" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "596b797178fe45e39ce3a8b8fdf432d6" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "-£1.00" }, "DATE" : { "label" : "Date", "value" : "12/1/2023" }, "TIME" : { "label" : "Time", "value" : "10:02:50 PM" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nRefund\n-£1.00\n\n\nPlease retain receipt!\n\n\nCard: VISA\nAccount: *** **** **** **** 0119\nEntry Mode: Keyed\n\nTransaction: -\nAuthorization: -\nMerchant ID: **37599\nTerminal ID: *************L_ID\n\n596b797178fe45e39ce3a8b8fdf432d6\n10:02:50 PM: 12/1/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "*** **** **** **** 0119" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER" : { "label" : "Transaction", "value" : "-" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "-" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "*************L_ID" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Refund" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "596b797178fe45e39ce3a8b8fdf432d6" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "-£1.00" }, "DATE" : { "label" : "Date", "value" : "12/1/2023" }, "TIME" : { "label" : "Time", "value" : "10:02:50 PM" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Pre-Authorization
This section describes how to process a pre-authorization for an initial amount in Local
mode. A pre-authorization transaction places a temporary hold on the customer's payment
card. The transaction amount can be captured at a later time.
Most authorizations expire in 5 to 7 days. The issuing bank sets the length of time
before expiration. When an authorization expires with the issuing bank, your bank or
processor might require you to re-submit an authorization request and include a request
for capture in the same message. For more information, see Processing a Capture.
Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing a Pre-Authorization
- type
- Set this field toPaymentRequest.
- merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-). Avoid using formatting that resembles a telephone number (XXX-XXX-XXXX) or a Social Security number (XXX-XX-XXXX).
- amountDetails.amount
- Set this field to the transaction amount.
- amountDetails.currency
- Set this field to the currency code.
- capture
- Set this field tofalse.
REST Example: Processing a Pre-Authorization
Request
{ "type" : "PaymentRequest", "merchantReferenceCode" : "47bd9ed54f3f4bfabb9d3ee94cfa3008", "amountDetails" : { "amount" : "1.00", "currency" : "GBP" }, "capture" : false }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the current status of the transaction. You can choose to display these updates on your point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type" : "PaymentResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "e43069fbf85543659e478edd8d50f244", "merchantReferenceCode" : "47bd9ed54f3f4bfabb9d3ee94cfa3008", "submitTimeUtc" : "2023-12-01T20:38:14+0000", "captured" : false, "amountDetails" : { "currency" : "GBP", "amount" : "1.00", "capturedAmount" : "0.00", "refundableAmount" : "1.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "476173XXXXXX0119", "countryCode" : "840" } }, "additionalInformation" : { "instrumentId" : "7030000000022690119", "requestId" : "7014630972006630604008" }, "linkedOperations" : [ ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nAuth only\n£1.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938242\nMerchant ID: **37599\nTerminal ID: ****0063\n\ne43069fbf85543659e478edd8d50f244\n21:38:18: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938242" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Auth only" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "e43069fbf85543659e478edd8d50f244" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:38:18" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nAuth only\n£1.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938242\nMerchant ID: **37599\nTerminal ID: ****0063\n\ne43069fbf85543659e478edd8d50f244\n21:38:18: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938242" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Auth only" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "e43069fbf85543659e478edd8d50f244" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:38:18" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing an Incremental Authorization
This section describes how to process an incremental authorization in Local
mode. This type of request can be made on a pre-authorization transaction to increase
the authorized amount before it is captured.
Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing an Incremental Authorization
- type
- Set this field toIncrementalAuthorizationRequest.
- transactionId
- Set this field to theidfield value from the original transaction.
- amountDetails.amount
- Set this field to the transaction amount.
- amountDetails.currency
- Set this field to the currency code.
REST Example: Processing an Incremental Authorization
Request
{ "type": "IncrementalAuthorizationRequest", "transactionId": "e43069fbf85543659e478edd8d50f244", "amountDetails": { "amount": "2.00", "currency": "GBP" } }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the current status of the transaction. You can choose to display these updates on your point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type" : "IncrementalAuthorizationResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "6da4aff381e8483ebc65ebf4fbb27ec8", "merchantReferenceCode" : "47bd9ed54f3f4bfabb9d3ee94cfa3008", "submitTimeUtc" : "2023-12-01T20:39:43+0000", "captured" : false, "amountDetails" : { "currency" : "GBP", "amount" : "2.00", "capturedAmount" : "0.00", "refundableAmount" : "0.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "MANUAL", "card" : { "expirationMonth" : "00", "expirationYear" : "00", "type" : "VISA", "maskedPan" : "476173XXXXXX0119" } }, "additionalInformation" : { "requestId" : "7014631843806649604009" }, "linkedOperations" : [ ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nTop-up\n£2.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Keyed\nVerification: None\n\nAuthorization: 938243\nMerchant ID: **37599\nTerminal ID: ****0063\n\n6da4aff381e8483ebc65ebf4fbb27ec8\n21:39:45: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938243" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Top-up" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "6da4aff381e8483ebc65ebf4fbb27ec8" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£2.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:39:45" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nTop-up\n£2.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Keyed\nVerification: None\n\nAuthorization: 938243\nMerchant ID: **37599\nTerminal ID: ****0063\n\n6da4aff381e8483ebc65ebf4fbb27ec8\n21:39:45: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938243" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Top-up" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "6da4aff381e8483ebc65ebf4fbb27ec8" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£2.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:39:45" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Capture
This section describes how to capture a pre-authorized transaction in Local
mode. The capture request references the approved pre-authorization request.
Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing a Capture
- type
- Set this field toCaptureRequest.
- transactionId
- Set this field to theidfield value from the original transaction.
Optional Fields for Processing a Capture
Use the optional amount and currency fields to process a partial capture. Otherwise,
the full amount will be captured.
- amountDetails.amount
- Set this field to the transaction amount.
- amountDetails.currency
- Set this field to the currency code.
REST Example: Processing a Capture
Request
{ "type": "CaptureRequest", "transactionId": "cb6475bafbb94d03b0f984629c63c294", "amountDetails": { "amount": "3.00", "currency": "GBP" } }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the current status of the transaction. You can choose to display these updates on your point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type" : "CaptureResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "cb6475bafbb94d03b0f984629c63c294", "merchantReferenceCode" : "dd02499055544be18ba7fa0397909d65", "submitTimeUtc" : "2023-12-01T20:43:03+0000", "captured" : true, "amountDetails" : { "currency" : "GBP", "amount" : "3.00", "capturedAmount" : "3.00", "refundableAmount" : "3.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "476173XXXXXX0119", "countryCode" : "840" } }, "additionalInformation" : { "instrumentId" : "7030000000022690119", "requestId" : "7014633860196734504012" }, "linkedOperations" : [ ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£3.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938244\nMerchant ID: **37599\nTerminal ID: ****0063\n\ncb6475bafbb94d03b0f984629c63c294\n21:43:07: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938244" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "cb6475bafbb94d03b0f984629c63c294" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£3.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:43:07" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£3.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938244\nMerchant ID: **37599\nTerminal ID: ****0063\n\ncb6475bafbb94d03b0f984629c63c294\n21:43:07: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938244" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "cb6475bafbb94d03b0f984629c63c294" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£3.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:43:07" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Mail Order or Telephone Order Sale
This section describes how to process a mail order or telephone order (MOTO) sale in
Local mode. The payment card is not physically tapped, inserted, or swiped in the
terminal for a MOTO transaction.
Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing a Mail Order or Telephone Order Sale
- type
- Set this field toPaymentRequest.
- merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-). Avoid using formatting that resembles a telephone number (XXX-XXX-XXXX) or a Social Security number (XXX-XX-XXXX).
- amountDetails.amount
- Set this field to the transaction amount.
- amountDetails.currency
- Set this field to the currency code.
- paymentMode
- Set this field toMOTO.
REST Example: Processing a Mail Order or Telephone Order Sale
Request
{ "type" : "PaymentRequest", "merchantReferenceCode" : "a7fbcdc92425456fa0db29c8670a3150", "amountDetails" : { "amount" : "1.00", "currency" : "GBP" }, "paymentMode": "MOTO" }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the current status of the transaction. You can choose to display these updates on your point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type" : "PaymentResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "4348c35f258c4f8d8c89b9898e3f1b63", "merchantReferenceCode" : "a7fbcdc92425456fa0db29c8670a3150", "submitTimeUtc" : "2023-12-01T20:51:09+0000", "captured" : true, "amountDetails" : { "currency" : "GBP", "amount" : "1.00", "capturedAmount" : "1.00", "refundableAmount" : "1.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "MANUAL", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "411111******1111" } }, "additionalInformation" : { "instrumentId" : "7038380000019631111", "requestId" : "7014638853776978504011" }, "linkedOperations" : [ ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£1.00\n\n\nCVV MATCH ONLY\n\n\nCard: VISA\nAccount: **** **** **** 1111\nEntry Mode: Keyed\nVerification: Cardholder Not Present\n\nAuthorization: 938246\nMerchant ID: **37599\nTerminal ID: ****0063\n\n4348c35f258c4f8d8c89b9898e3f1b63\n21:51:27: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 1111" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "Cardholder Not Present" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938246" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "4348c35f258c4f8d8c89b9898e3f1b63" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:51:27" }, "STATUS_TEXT" : { "label" : "Information", "value" : "CVV MATCH ONLY" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£1.00\n\n\nPlease retain receipt!\n\n\nCard: VISA\nAccount: **** **** **** 1111\nEntry Mode: Keyed\nVerification: Cardholder Not Present\n\nAuthorization: 938246\nMerchant ID: **37599\nTerminal ID: ****0063\n\n4348c35f258c4f8d8c89b9898e3f1b63\n21:51:27: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 1111" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "Cardholder Not Present" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938246" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "4348c35f258c4f8d8c89b9898e3f1b63" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:51:27" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Mail Order or Telephone Order Pre-Authorization
This section describes how to process a mail order or telephone order (MOTO)
pre-authorization request for an initial amount when the app is in Local mode. The
payment card is not physically tapped, inserted, or swiped in the terminal for a MOTO
transaction.
A MOTO pre-authorization request places a temporary hold on the customer's payment card,
which can be captured at a later time. Most authorizations expire in 5 to 7 days. The
issuing bank sets the length of time before expiration. When an authorization expires
with the issuing bank, your bank or processor might require you to re-submit an
authorization request and include a request for capture in the same message.
Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing a Mail Order or Telephone Order Pre-Authorization
- type
- Set this field toPaymentRequest.
- merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-). Avoid using formatting that resembles a telephone number (XXX-XXX-XXXX) or a Social Security number (XXX-XX-XXXX).
- amountDetails.amount
- Set this field to the transaction amount.
- amountDetails.currency
- Set this field to the currency code.
- paymentMode
- Set this field toMOTO.
- capture
- Set this field tofalse.
REST Example: Processing a Mail Order or Telephone Order Pre-Authorization
Request
{ "serialNumber": "1850000000", "request": { "type" : "PaymentRequest", "merchantReferenceCode" : "a7fbcdc92425456fa0db29c8670a3150", "amountDetails" : { "amount" : "1.00", "currency" : "GBP" }, "paymentMode": "MOTO", "capture": false } }
Response to a Successful Request
{ "type" : "PaymentResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "27b9e29419f049e8bc6ba6bd4843c020", "merchantReferenceCode" : "c9d718aae5064276a2bd7bd16229ab61", "submitTimeUtc" : "2023-12-01T20:52:10+0000", "captured" : false, "amountDetails" : { "currency" : "GBP", "amount" : "1.00", "capturedAmount" : "0.00", "refundableAmount" : "1.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "MANUAL", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "411111******1111" } }, "additionalInformation" : { "requestId" : "7014639470806954604009" }, "linkedOperations" : [ ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nAuth only\n£1.00\n\n\nCVV MATCH ONLY\n\n\nCard: VISA\nAccount: **** **** **** 1111\nEntry Mode: Keyed\nVerification: Cardholder Not Present\n\nAuthorization: 938247\nMerchant ID: **37599\nTerminal ID: ****0063\n\n27b9e29419f049e8bc6ba6bd4843c020\n21:52:29: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 1111" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "Cardholder Not Present" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938247" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Auth only" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "27b9e29419f049e8bc6ba6bd4843c020" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:52:29" }, "STATUS_TEXT" : { "label" : "Information", "value" : "CVV MATCH ONLY" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nAuth only\n£1.00\n\n\nPlease retain receipt!\n\n\nCard: VISA\nAccount: **** **** **** 1111\nEntry Mode: Keyed\nVerification: Cardholder Not Present\n\nAuthorization: 938247\nMerchant ID: **37599\nTerminal ID: ****0063\n\n27b9e29419f049e8bc6ba6bd4843c020\n21:52:29: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 1111" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "Cardholder Not Present" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938247" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Auth only" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "27b9e29419f049e8bc6ba6bd4843c020" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:52:29" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Mail Order or Telephone Order Account Verification
This section describes how to process a mail order or telephone order (MOTO) account
verification when the app is in Local mode. The MOTO account verification request
submits a zero-amount authorization request to validate the payment card. The payment
card is not physically tapped, inserted, or swiped in a terminal for a MOTO
transaction.
Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing a Mail Order or Telephone Order Account Verification
- type
- Set this field toAccountVerificationRequest.
- merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-). Avoid using formatting that resembles a telephone number (XXX-XXX-XXXX) or a Social Security number (XXX-XX-XXXX).
- amountDetails.currency
- Set this field to the currency code.
- paymentMode
- Set this field toMOTO.
REST Example: Processing a Mail Order or Telephone Order Account Verification
Request
{ "type" : "AccountVerificationRequest", "merchantReferenceCode" : "85429ed03e7c43809f2fbe828d0148f0", "amountDetails" : { "currency" : "GBP" }, "paymentMode" : "MOTO" }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the current status of the transaction. You can choose to display these updates on your point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type" : "AccountVerificationResponse", "message" : "Verification successful", "transactionDetails" : { "id" : "1177b92d5cfc4ea895c2a8de7e6ede9d", "merchantReferenceCode" : "85429ed03e7c43809f2fbe828d0148f0", "submitTimeUtc" : "2023-12-01T20:54:00+0000", "amountDetails" : { "currency" : "GBP" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "MANUAL", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "411111******1111" } }, "additionalInformation" : { "instrumentId" : "7038380000019631111", "requestId" : "7014640563196022404008" }, "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nAccount Verification\n£0.00\n\n\nCVV MATCH ONLY\n\n\nCard: VISA\nAccount: **** **** **** 1111\nEntry Mode: Keyed\nVerification: Cardholder Not Present\n\nAuthorization: 938248\nMerchant ID: **37599\nTerminal ID: ****0063\n\n1177b92d5cfc4ea895c2a8de7e6ede9d\n21:54:17: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 1111" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "Cardholder Not Present" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938248" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Account Verification" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "1177b92d5cfc4ea895c2a8de7e6ede9d" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£0.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:54:17" }, "STATUS_TEXT" : { "label" : "Information", "value" : "CVV MATCH ONLY" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nAccount Verification\n£0.00\n\n\nAccount Valid.\n\n\nCard: VISA\nAccount: **** **** **** 1111\nEntry Mode: Keyed\nVerification: Cardholder Not Present\n\nAuthorization: 938248\nMerchant ID: **37599\nTerminal ID: ****0063\n\n1177b92d5cfc4ea895c2a8de7e6ede9d\n21:54:17: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 1111" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "Cardholder Not Present" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938248" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Account Verification" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "1177b92d5cfc4ea895c2a8de7e6ede9d" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£0.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:54:17" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Account Valid." } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing an Account Verification
This section describes how to process an account verification when the app is in Local
mode. The account verification transaction submits a zero-amount authorization request
to validate the payment card.
Endpoints
The endpoint is the same for the test and production
environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing an Account Verification
- type
- Set this field toAccountVerificationRequest.
- merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-). Avoid using formatting that resembles a telephone number (XXX-XXX-XXXX) or a Social Security number (XXX-XX-XXXX).
- amountDetails.currency
- Set this field to the currency code.
REST Example: Processing an Account Verification
Request
{ "type": "AccountVerificationRequest", "merchantReferenceCode": "ec119c3b377542b09132867d236dc834", "amountDetails": { "currency": "GBP" } }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the current status of the transaction. You can choose to display these updates on your point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type" : "AccountVerificationResponse", "message" : "Verification successful", "transactionDetails" : { "id" : "2dd6beb00d8d4bb8bf1a4718917a3003", "merchantReferenceCode" : "ec119c3b377542b09132867d236dc834", "submitTimeUtc" : "2023-12-01T20:27:02+0000", "amountDetails" : { "currency" : "GBP" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "476173XXXXXX0119", "countryCode" : "840" } }, "additionalInformation" : { "instrumentId" : "7030000000022690119", "requestId" : "7014624258386432804007" }, "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nAccount Verification\n£0.00\n\n\nAccount Valid.\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938239\nMerchant ID: **37599\nTerminal ID: ****0063\n\n2dd6beb00d8d4bb8bf1a4718917a3003\n21:27:07: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938239" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Account Verification" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "2dd6beb00d8d4bb8bf1a4718917a3003" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£0.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:27:07" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Account Valid." } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nAccount Verification\n£0.00\n\n\nAccount Valid.\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938239\nMerchant ID: **37599\nTerminal ID: ****0063\n\n2dd6beb00d8d4bb8bf1a4718917a3003\n21:27:07: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938239" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Account Verification" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "2dd6beb00d8d4bb8bf1a4718917a3003" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£0.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:27:07" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Account Valid." } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing an Offline Transaction
This section describes how to enable and disable Offline mode when the app is in Local
mode. When internet connectivity is not available, you can use this mode to process
offline sale and refund transactions.
Offline mode is a feature that you can enable and customize in the
Business Center
. The default setting is Disabled
. For more information, see Customizing the Acceptance Devices App.WARNING
By using this feature, you assume the risk of failed transactions,
increased fraud, and increased chargebacks. Process offline transactions only if
required, such as when your internet connection is unavailable. The recommendation is to
process online sale transactions instead. For more information, see Processing a Sale.
When internet connectivity is available, you must submit the offline transactions batch
for authorization while in Offline mode.
Enabling or Disabling Offline Mode
IMPORTANT
The recommendation is to resume operating in online mode as soon
as internet connectivity is available. In order to do so, you must first disable
Offline mode.
Follow these steps to enable or disable Offline mode:
- In the Acceptance Devices app, tapSettings.
- Enter your Acceptance Devices app passcode.
- TapOffline Mode.
- Toggle Enable Offline Mode toONorOFF.
- Tap the back navigation arrow to return to the home screen.
Processing an Offline Sale
This section describes how to process an offline sale when the app is in Local
mode. This type of transaction combines an authorization and a capture into a single
transaction.
Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing an Offline Sale
- type
- Set this field toPaymentRequest.
- merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-). Avoid using formatting that resembles a telephone number (XXX-XXX-XXXX) or a Social Security number (XXX-XX-XXXX).
- amountDetails.amount
- Set this field to the transaction amount.
- amountDetails.currency
- Set this field to the currency code.
REST Example: Processing an Offline Sale
Request
{ "type" : "PaymentRequest", "merchantReferenceCode" : "058ed6c3430e436dab91b782f4113fd2", "amountDetails" : { "amount" : "1.00", "currency" : "GBP" } }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the
current status of the transaction. You can choose to display these updates on your
point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type" : "PaymentResponse", "message" : "Payment accepted", "transactionDetails" : { "id" : "1541387b383d456aabb81cdf558b4e8e", "merchantReferenceCode" : "058ed6c3430e436dab91b782f4113fd2", "submitTimeUtc" : "2023-12-01T20:24:47+0000", "captured" : true, "amountDetails" : { "currency" : "GBP", "amount" : "1.00", "capturedAmount" : "1.00", "refundableAmount" : "1.00" } }, "processingDetails" : { "status" : "ACCEPTED", "verificationMethod" : "NONE", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "476173XXXXXX0119", "countryCode" : "840" } }, "additionalInformation" : { "instrumentId" : "7030000000022690119", "requestId" : "7014622903166318504010" }, "linkedOperations" : [ ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£1.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938238\nMerchant ID: **37599\nTerminal ID: ****0063\n\n1541387b383d456aabb81cdf558b4e8e\n21:24:51: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938238" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "1541387b383d456aabb81cdf558b4e8e" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:24:51" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£1.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938238\nMerchant ID: **37599\nTerminal ID: ****0063\n\n1541387b383d456aabb81cdf558b4e8e\n21:24:51: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938238" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "1541387b383d456aabb81cdf558b4e8e" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:24:51" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Processing an Offline Refund
Follow these steps to process an offline refund with Offline mode enabled:
- In the Acceptance Devices app, tapSettings.
- Enter your Acceptance Devices app passcode.
- TapOffline Mode.
- Tap the transaction you want to refund.
- TapRefund.
- Enter the transaction amount.
- TapRefundto start the transaction.
Submitting an Offline Transactions Batch for Authorization
IMPORTANT
The recommendation is to submit the batch for authorization as
soon as internet connectivity is available. To submit a batch, Offline mode must be
enabled.
Follow these steps to submit an offline transactions batch for authorization:
- In the Acceptance Devices app, tapSettings.
- Enter your Acceptance Devices app passcode.
- TapOffline Mode.
- TapSubmit Offline Batch.
Processing a Cashback
This section describes how to process a cashback transaction when the app is in Local
mode. This type of transaction enables customers to request that a specified amount of
cash to be given to them as part of the transaction. A cashback transaction can be
processed with or without a purchase.
Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing a Cashback
- type
- Set this field toPaymentRequest.
- merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-). Avoid using formatting that resembles a telephone number (XXX-XXX-XXXX) or a Social Security number (XXX-XX-XXXX).
- amountDetails.amount
- Set this field to the transaction amount.
- amountDetails.currency
- Set this field to the currency code.
- amountDetails.cashbackAmount
- Set this field to the cashback amount.
REST Example: Processing a Cashback
Request
{ "type" : "PaymentRequest", "merchantReferenceCode" : "bd74d30930e349548fd9d125f88291bc", "amountDetails" : { "amount" : "20.00", "currency" : "GBP", "cashbackAmount" : "5.00" } }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the
current status of the transaction. You can choose to display these updates on your
point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type" : "PaymentResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "218b28d38bf3424ab4ade95b9be1c75b", "merchantReferenceCode" : "bd74d30930e349548fd9d125f88291bc", "submitTimeUtc" : "2024-03-20T08:55:37+0000", "captured" : true, "amountDetails" : { "currency" : "GBP", "amount" : "20.00", "capturedAmount" : "25.00", "refundableAmount" : "20.00", "cashbackAmount" : "5.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "PIN", "entryMode" : "ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "MASTERCARD", "maskedPan" : "541333XXXXXX0011", "countryCode" : "276" } }, "additionalInformation" : { "instrumentId" : "7030000000232230011", "requestId" : "7109249459396751504008" }, "linkedOperations" : [ ], "tipAdjustStatus" : "NOT_ADJUSTABLE", "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nCashback\n£25.00\nPurchase Amount: £20.00\nCashback: £5.00\nPlease retain receipt!\n\nCard: Payworks MASTER\nAccount: **** **** **** 0011\nEntry Mode: Chip\nAID: A0000000041010\nCard Number: 0\nVerification: PIN\n\nAuthorization: 002500\nMerchant ID: **37599\nTerminal ID: ****0063\n\n\n218b28d38bf3424ab4ade95b9be1c75b\n\n09:55:46: 20/03/2024\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks MASTER" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0011" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000041010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Chip" }, "PAYMENT_DETAILS_ACCOUNT_SEQUENCE_NUMBER" : { "label" : "Card Number", "value" : "0" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "PIN" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "002500" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Cashback" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "218b28d38bf3424ab4ade95b9be1c75b" }, "DATE" : { "label" : "Date", "value" : "20/03/2024" }, "TIME" : { "label" : "Time", "value" : "09:55:46" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false, "tipLineRequired" : false, "totalLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nCashback\n£25.00\nPurchase Amount: £20.00\nCashback: £5.00\nPlease retain receipt!\n\nCard: Payworks MASTER\nAccount: **** **** **** 0011\nEntry Mode: Chip\nAID: A0000000041010\nCard Number: 0\nVerification: PIN\n\nAuthorization: 002500\nMerchant ID: **37599\nTerminal ID: ****0063\n\n\n218b28d38bf3424ab4ade95b9be1c75b\n\n09:55:46: 20/03/2024\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks MASTER" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0011" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000041010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Chip" }, "PAYMENT_DETAILS_ACCOUNT_SEQUENCE_NUMBER" : { "label" : "Card Number", "value" : "0" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "PIN" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "002500" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Cashback" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "218b28d38bf3424ab4ade95b9be1c75b" }, "DATE" : { "label" : "Date", "value" : "20/03/2024" }, "TIME" : { "label" : "Time", "value" : "09:55:46" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false, "tipLineRequired" : false, "totalLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Sale with Installment Details
This section describes how to process a sale transaction with installment details when
the app is in Local mode. This type of transaction can be used to include the required
installment details as part of the sale transaction.
This transaction is available only in the Latin American and Caribbean (LAC) region.
Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing a Sale with Installment Details
- type
- Set this field toPaymentRequest.
- merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-). Avoid using formatting that resembles a telephone number (XXX-XXX-XXXX) or a Social Security number (XXX-XX-XXXX).
- amountDetails.amount
- Set this field to the transaction amount.
- amountDetails.currency
- Set this field to the currency code.
Optional Fields for Processing a Sale with Installment Details
Use one or more of the optional
installmentDetails
fields to
provide additional installment details.- installmentDetails.numberOfInstallments
- Set this field to the number of installments.
- installmentDetails.planType
- Set this field toMERCHANT_FUNDEDorISSUER_FUNDED.
- installmentDetails.interestPlan
- Set this field totrueorfalse.
- installmentDetails.governmentPlan
- Set this field totrueorfalse.
REST Example: Processing a Sale with Installment Details
Request
{ "type" : "PaymentRequest", "merchantReferenceCode" : "058ed6c3430e436dab91b782f4113fd2", "amountDetails" : { "amount" : "20.00", "currency" : "USD" }, "installmentDetails": { "numberOfInstallments": 5, "planType": "MERCHANT_FUNDED", "interestPlan": true, "governmentPlan": true } }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the
current status of the transaction. You can choose to display these updates on your
point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type": "PaymentResponse", "message": "Payment approved", "transactionDetails": { "id": "8ccb150a88bd4c6f9a00a687f39ca97d", "merchantReferenceCode": "058ed6c3430e436dab91b782f4113fd2", "submitTimeUtc": "2024-09-20T08:15:12+0000", "captured": true, "amountDetails": { "amount": "20.00", "currency": "USD", "capturedAmount": "20.00", "refundableAmount": "20.00" } }, "processingDetails": { "status": "APPROVED", "verificationMethod": "NONE", "entryMode": "NFC_ICC", "card": { "expirationMonth": "12", "expirationYear": "2025", "type": "VISA", "maskedPan": "476173XXXXXX0119", "countryCode": "840" } }, "additionalInformation": { "requestId": "7268201146336069504011" }, "linkedOperations": [], "receipts": { "merchantReceipt": { "preformattedReceipt": "Merchant Receipt\nTest\nSample Street 123\n34351 New York\nUnited States\n12345678\n\nPayment\nUSD$20.00\n\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: No Verification\n\nTransaction: 546712\nAuthorization: 831000\nMerchant ID: ************st051\nTerminal ID: ****7069\n\n\n8ccb150a88bd4c6f9a00a687f39ca97d\n\n4:15:12 AM: 9/20/2024\n\n\n", "receiptData": { "signatureLineRequired": false, "lines": { "MERCHANT_DETAILS_PUBLIC_NAME": { "label": "Name", "value": "Test" }, "MERCHANT_DETAILS_ADDRESS": { "label": "Address", "value": "Sample Street 123" }, "MERCHANT_DETAILS_ZIP": { "label": "Zip", "value": "34351" }, "MERCHANT_DETAILS_CITY": { "label": "City", "value": "New York" }, "MERCHANT_DETAILS_COUNTRY": { "label": "Country", "value": "United States" }, "MERCHANT_DETAILS_CONTACT": { "label": "Contact", "value": "12345678" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION": { "label": "Additional Information", "value": "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL": { "label": "Card", "value": "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT": { "label": "Account", "value": "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID": { "label": "AID", "value": "A0000000031010" }, "PAYMENT_DETAILS_SOURCE": { "label": "Entry Mode", "value": "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION": { "label": "Verification", "value": "No Verification" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER": { "label": "Transaction", "value": "546712" }, "CLEARING_DETAILS_AUTHORIZATION_CODE": { "label": "Authorization", "value": "831000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER": { "label": "Merchant ID", "value": "************st051" }, "CLEARING_DETAILS_TERMINAL_ID": { "label": "Terminal ID", "value": "****7069" }, "RECEIPT_TYPE": { "label": "Receipt Type", "value": "Merchant Receipt" }, "TRANSACTION_TYPE": { "label": "Type", "value": "Payment" }, "SUBJECT": { "label": "Description", "value": "" }, "IDENTIFIER": { "label": "PWID", "value": "8ccb150a88bd4c6f9a00a687f39ca97d" }, "AMOUNT_AND_CURRENCY": { "label": "Amount", "value": "USD$20.00" }, "DATE": { "label": "Date", "value": "9/20/2024" }, "TIME": { "label": "Time", "value": "4:15:12 AM" }, "STATUS_TEXT": { "label": "Information", "value": "Please retain receipt!" } }, "tipLineRequired": false, "totalLineRequired": false } }, "customerReceipt": { "preformattedReceipt": "Cardholder Receipt\nTest\nSample Street 123\n34351 New York\nUnited States\n12345678\n\nPayment\nUSD$20.00\n\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: No Verification\n\nTransaction: 546712\nAuthorization: 831000\nMerchant ID: ************st051\nTerminal ID: ****7069\n\n\n8ccb150a88bd4c6f9a00a687f39ca97d\n\n4:15:12 AM: 9/20/2024\n\n\n", "receiptData": { "signatureLineRequired": false, "lines": { "MERCHANT_DETAILS_PUBLIC_NAME": { "label": "Name", "value": "Test" }, "MERCHANT_DETAILS_ADDRESS": { "label": "Address", "value": "Sample Street 123" }, "MERCHANT_DETAILS_ZIP": { "label": "Zip", "value": "34351" }, "MERCHANT_DETAILS_CITY": { "label": "City", "value": "New York" }, "MERCHANT_DETAILS_COUNTRY": { "label": "Country", "value": "United States" }, "MERCHANT_DETAILS_CONTACT": { "label": "Contact", "value": "12345678" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION": { "label": "Additional Information", "value": "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL": { "label": "Card", "value": "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT": { "label": "Account", "value": "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID": { "label": "AID", "value": "A0000000031010" }, "PAYMENT_DETAILS_SOURCE": { "label": "Entry Mode", "value": "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION": { "label": "Verification", "value": "No Verification" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER": { "label": "Transaction", "value": "546712" }, "CLEARING_DETAILS_AUTHORIZATION_CODE": { "label": "Authorization", "value": "831000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER": { "label": "Merchant ID", "value": "************st051" }, "CLEARING_DETAILS_TERMINAL_ID": { "label": "Terminal ID", "value": "****7069" }, "RECEIPT_TYPE": { "label": "Receipt Type", "value": "Cardholder Receipt" }, "TRANSACTION_TYPE": { "label": "Type", "value": "Payment" }, "SUBJECT": { "label": "Description", "value": "" }, "IDENTIFIER": { "label": "PWID", "value": "8ccb150a88bd4c6f9a00a687f39ca97d" }, "AMOUNT_AND_CURRENCY": { "label": "Amount", "value": "USD$20.00" }, "DATE": { "label": "Date", "value": "9/20/2024" }, "TIME": { "label": "Time", "value": "4:15:12 AM" }, "STATUS_TEXT": { "label": "Information", "value": "Please retain receipt!" } }, "tipLineRequired": false, "totalLineRequired": false } } }, "installmentDetails": { "numberOfInstallments": 5, "planType": "MERCHANT_FUNDED", "interestPlan": true, "governmentPlan": true } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Sale with Payment Facilitator Details
This section describes how to process a sale transaction with payment facilitator details
when the app is in Local mode. This type of transaction can be used to include the
required payment facilitator details as part of the sale transaction.
Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing a Sale with Payment Facilitator Details
- type
- Set this field toPaymentRequest.
- merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-). Avoid using formatting that resembles a telephone number (XXX-XXX-XXXX) or a Social Security number (XXX-XX-XXXX).
- amountDetails.amount
- Set this field to the transaction amount.
- amountDetails.currency
- Set this field to the currency code.
Optional Fields for Processing a Sale with Payment Facilitator Details
Use one or more of the optional
merchantDetails
fields to provide
additional payment facilitator details.- merchantDetails.salesOrganizationId
- Set this field to the sales organization identifier.
- merchantDetails.subMerchantId
- Set this field to the sub-merchant identifier.
- merchantDetails.descriptorName
- Set this field to the descriptor name.
REST Example: Processing a Sale with Payment Facilitator Details
Request
{ "type" : "PaymentRequest", "merchantReferenceCode" : "058ed6c3430e436dab91b782f4113fd2", "amountDetails" : { "amount" : "1.00", "currency" : "USD" }, "merchantDetails": { "salesOrganizationId": "12345", "subMerchantId": "SM67890", "descriptorName": "ExampleMerchant" } }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the
current status of the transaction. You can choose to display these updates on your
point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type": "PaymentResponse", "message": "Payment approved", "transactionDetails": { "id": "940d49ee94444764acb1c898e2254954", "merchantReferenceCode": "058ed6c3430e436dab91b782f4113fd2", "submitTimeUtc": "2024-09-20T07:53:36+0000", "captured": true, "amountDetails": { "amount": "1.00", "currency": "USD", "capturedAmount": "1.00", "refundableAmount": "1.00" } }, "processingDetails": { "status": "APPROVED", "verificationMethod": "NONE", "entryMode": "NFC_ICC", "card": { "expirationMonth": "12", "expirationYear": "2025", "type": "VISA", "maskedPan": "476173XXXXXX0119", "countryCode": "840" } }, "additionalInformation": { "requestId": "7268188188226629104009" }, "linkedOperations": [], "receipts": { "merchantReceipt": { "preformattedReceipt": "Merchant Receipt\nTest\nSample Street 123\n34351 New York\nUnited States\n12345678\n\nPayment\nUSD$1.00\n\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: No Verification\n\nTransaction: 545814\nAuthorization: 831000\nMerchant ID: ************st051\nTerminal ID: ****7069\n\n\n940d49ee94444764acb1c898e2254954\n\n3:53:36 AM: 9/20/2024\n\n\n", "receiptData": { "signatureLineRequired": false, "lines": { "MERCHANT_DETAILS_PUBLIC_NAME": { "label": "Name", "value": "Test" }, "MERCHANT_DETAILS_ADDRESS": { "label": "Address", "value": "Sample Street 123" }, "MERCHANT_DETAILS_ZIP": { "label": "Zip", "value": "34351" }, "MERCHANT_DETAILS_CITY": { "label": "City", "value": "New York" }, "MERCHANT_DETAILS_COUNTRY": { "label": "Country", "value": "United States" }, "MERCHANT_DETAILS_CONTACT": { "label": "Contact", "value": "12345678" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION": { "label": "Additional Information", "value": "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL": { "label": "Card", "value": "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT": { "label": "Account", "value": "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID": { "label": "AID", "value": "A0000000031010" }, "PAYMENT_DETAILS_SOURCE": { "label": "Entry Mode", "value": "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION": { "label": "Verification", "value": "No Verification" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER": { "label": "Transaction", "value": "545814" }, "CLEARING_DETAILS_AUTHORIZATION_CODE": { "label": "Authorization", "value": "831000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER": { "label": "Merchant ID", "value": "************st051" }, "CLEARING_DETAILS_TERMINAL_ID": { "label": "Terminal ID", "value": "****7069" }, "RECEIPT_TYPE": { "label": "Receipt Type", "value": "Merchant Receipt" }, "TRANSACTION_TYPE": { "label": "Type", "value": "Payment" }, "SUBJECT": { "label": "Description", "value": "" }, "IDENTIFIER": { "label": "PWID", "value": "940d49ee94444764acb1c898e2254954" }, "AMOUNT_AND_CURRENCY": { "label": "Amount", "value": "USD$1.00" }, "DATE": { "label": "Date", "value": "9/20/2024" }, "TIME": { "label": "Time", "value": "3:53:36 AM" }, "STATUS_TEXT": { "label": "Information", "value": "Please retain receipt!" } }, "tipLineRequired": false, "totalLineRequired": false } }, "customerReceipt": { "preformattedReceipt": "Cardholder Receipt\nTest\nSample Street 123\n34351 New York\nUnited States\n12345678\n\nPayment\nUSD$1.00\n\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: No Verification\n\nTransaction: 545814\nAuthorization: 831000\nMerchant ID: ************st051\nTerminal ID: ****7069\n\n\n940d49ee94444764acb1c898e2254954\n\n3:53:36 AM: 9/20/2024\n\n\n", "receiptData": { "signatureLineRequired": false, "lines": { "MERCHANT_DETAILS_PUBLIC_NAME": { "label": "Name", "value": "Test" }, "MERCHANT_DETAILS_ADDRESS": { "label": "Address", "value": "Sample Street 123" }, "MERCHANT_DETAILS_ZIP": { "label": "Zip", "value": "34351" }, "MERCHANT_DETAILS_CITY": { "label": "City", "value": "New York" }, "MERCHANT_DETAILS_COUNTRY": { "label": "Country", "value": "United States" }, "MERCHANT_DETAILS_CONTACT": { "label": "Contact", "value": "12345678" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION": { "label": "Additional Information", "value": "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL": { "label": "Card", "value": "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT": { "label": "Account", "value": "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID": { "label": "AID", "value": "A0000000031010" }, "PAYMENT_DETAILS_SOURCE": { "label": "Entry Mode", "value": "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION": { "label": "Verification", "value": "No Verification" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER": { "label": "Transaction", "value": "545814" }, "CLEARING_DETAILS_AUTHORIZATION_CODE": { "label": "Authorization", "value": "831000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER": { "label": "Merchant ID", "value": "************st051" }, "CLEARING_DETAILS_TERMINAL_ID": { "label": "Terminal ID", "value": "****7069" }, "RECEIPT_TYPE": { "label": "Receipt Type", "value": "Cardholder Receipt" }, "TRANSACTION_TYPE": { "label": "Type", "value": "Payment" }, "SUBJECT": { "label": "Description", "value": "" }, "IDENTIFIER": { "label": "PWID", "value": "940d49ee94444764acb1c898e2254954" }, "AMOUNT_AND_CURRENCY": { "label": "Amount", "value": "USD$1.00" }, "DATE": { "label": "Date", "value": "9/20/2024" }, "TIME": { "label": "Time", "value": "3:53:36 AM" }, "STATUS_TEXT": { "label": "Information", "value": "Please retain receipt!" } }, "tipLineRequired": false, "totalLineRequired": false } } }, "merchantDetails": { "salesOrganizationId": "12345", "subMerchantId": "SM67890", "descriptorName": "ExampleMerchant" } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Sale with Tax Details
This section describes how to process a sale transaction with tax details when the app is
in Local mode. This type of transaction can be used to include the required tax details
as part of the sale transaction.
Endpoints
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Processing a Sale with Tax Details
- type
- Set this field toPaymentRequest.
- merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-). Avoid using formatting that resembles a telephone number (XXX-XXX-XXXX) or a Social Security number (XXX-XX-XXXX).
- amountDetails.amount
- Set this field to the transaction amount.
- amountDetails.currency
- Set this field to the currency code.
Optional Fields for Processing a Sale with Tax Details
Use one or more of the optional
taxDetails
fields to provide
additional tax details.- taxDetails.taxId
- Set this field to the merchant tax identifier.
- taxDetails.salesSlipNumber
- Set this field to the sales slip number.
- taxDetails.includedTaxAmount
- Set this field to the tax amount.
- taxDetails.includedLocalTaxAmount
- Set this field to the local tax amount.
- taxDetails.includedNationalTaxAmount
- Set this field to the national tax amount.
REST Example: Processing a Sale with Tax Details
Request
{ "type" : "PaymentRequest", "merchantReferenceCode" : "058ed6c3430e436dab91b782f4113fd2", "amountDetails" : { "amount" : "20.00", "currency" : "USD" }, "taxDetails": { "taxId": "TaxID1234", "salesSlipNumber": 12345678, "includedTaxAmount": "5.00", "includedLocalTaxAmount": "1.00", "includedNationalTaxAmount": "2.00" } }
Mid-Transaction Status Updates
During the transaction, you might receive one or more update responses indicating the
current status of the transaction. You can choose to display these updates on your
point-of-sale (POS) system.
{ "type": "TransactionStatusResponse", "message": "Status update to display.", "canBeAborted": true/false }
Response to a Successful Request
{ "type": "PaymentResponse", "message": "Payment approved", "transactionDetails": { "id": "4bebd72cf0ff4a9ea212baca0c6d9faf", "merchantReferenceCode": "058ed6c3430e436dab91b782f4113fd2", "submitTimeUtc": "2024-09-20T07:15:25+0000", "captured": true, "amountDetails": { "amount": "20.00", "currency": "USD", "capturedAmount": "20.00", "refundableAmount": "20.00" } }, "processingDetails": { "status": "APPROVED", "verificationMethod": "NONE", "entryMode": "NFC_ICC", "card": { "expirationMonth": "12", "expirationYear": "2025", "type": "VISA", "maskedPan": "476173XXXXXX0119", "countryCode": "840" } }, "additionalInformation": { "requestId": "7268165283576248404007" }, "linkedOperations": [], "receipts": { "merchantReceipt": { "preformattedReceipt": "Merchant Receipt\nTest\nSample Street 123\n34351 New York\nUnited States\n12345678\n\nPayment\nUSD$20.00\n\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: No Verification\n\nTransaction: 129702\nAuthorization: 831000\nMerchant ID: ************st051\nTerminal ID: ****7069\n\n\n4bebd72cf0ff4a9ea212baca0c6d9faf\n\n3:15:25 AM: 9/20/2024\n\n\n", "receiptData": { "signatureLineRequired": false, "lines": { "MERCHANT_DETAILS_PUBLIC_NAME": { "label": "Name", "value": "Test" }, "MERCHANT_DETAILS_ADDRESS": { "label": "Address", "value": "Sample Street 123" }, "MERCHANT_DETAILS_ZIP": { "label": "Zip", "value": "34351" }, "MERCHANT_DETAILS_CITY": { "label": "City", "value": "New York" }, "MERCHANT_DETAILS_COUNTRY": { "label": "Country", "value": "United States" }, "MERCHANT_DETAILS_CONTACT": { "label": "Contact", "value": "12345678" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION": { "label": "Additional Information", "value": "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL": { "label": "Card", "value": "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT": { "label": "Account", "value": "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID": { "label": "AID", "value": "A0000000031010" }, "PAYMENT_DETAILS_SOURCE": { "label": "Entry Mode", "value": "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION": { "label": "Verification", "value": "No Verification" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER": { "label": "Transaction", "value": "129702" }, "CLEARING_DETAILS_AUTHORIZATION_CODE": { "label": "Authorization", "value": "831000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER": { "label": "Merchant ID", "value": "************st051" }, "CLEARING_DETAILS_TERMINAL_ID": { "label": "Terminal ID", "value": "****7069" }, "RECEIPT_TYPE": { "label": "Receipt Type", "value": "Merchant Receipt" }, "TRANSACTION_TYPE": { "label": "Type", "value": "Payment" }, "SUBJECT": { "label": "Description", "value": "" }, "IDENTIFIER": { "label": "PWID", "value": "4bebd72cf0ff4a9ea212baca0c6d9faf" }, "AMOUNT_AND_CURRENCY": { "label": "Amount", "value": "USD$20.00" }, "DATE": { "label": "Date", "value": "9/20/2024" }, "TIME": { "label": "Time", "value": "3:15:25 AM" }, "STATUS_TEXT": { "label": "Information", "value": "Please retain receipt!" } }, "tipLineRequired": false, "totalLineRequired": false } }, "customerReceipt": { "preformattedReceipt": "Cardholder Receipt\nTest\nSample Street 123\n34351 New York\nUnited States\n12345678\n\nPayment\nUSD$20.00\n\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: No Verification\n\nTransaction: 129702\nAuthorization: 831000\nMerchant ID: ************st051\nTerminal ID: ****7069\n\n\n4bebd72cf0ff4a9ea212baca0c6d9faf\n\n3:15:25 AM: 9/20/2024\n\n\n", "receiptData": { "signatureLineRequired": false, "lines": { "MERCHANT_DETAILS_PUBLIC_NAME": { "label": "Name", "value": "Test" }, "MERCHANT_DETAILS_ADDRESS": { "label": "Address", "value": "Sample Street 123" }, "MERCHANT_DETAILS_ZIP": { "label": "Zip", "value": "34351" }, "MERCHANT_DETAILS_CITY": { "label": "City", "value": "New York" }, "MERCHANT_DETAILS_COUNTRY": { "label": "Country", "value": "United States" }, "MERCHANT_DETAILS_CONTACT": { "label": "Contact", "value": "12345678" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION": { "label": "Additional Information", "value": "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL": { "label": "Card", "value": "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT": { "label": "Account", "value": "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID": { "label": "AID", "value": "A0000000031010" }, "PAYMENT_DETAILS_SOURCE": { "label": "Entry Mode", "value": "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION": { "label": "Verification", "value": "No Verification" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER": { "label": "Transaction", "value": "129702" }, "CLEARING_DETAILS_AUTHORIZATION_CODE": { "label": "Authorization", "value": "831000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER": { "label": "Merchant ID", "value": "************st051" }, "CLEARING_DETAILS_TERMINAL_ID": { "label": "Terminal ID", "value": "****7069" }, "RECEIPT_TYPE": { "label": "Receipt Type", "value": "Cardholder Receipt" }, "TRANSACTION_TYPE": { "label": "Type", "value": "Payment" }, "SUBJECT": { "label": "Description", "value": "" }, "IDENTIFIER": { "label": "PWID", "value": "4bebd72cf0ff4a9ea212baca0c6d9faf" }, "AMOUNT_AND_CURRENCY": { "label": "Amount", "value": "USD$20.00" }, "DATE": { "label": "Date", "value": "9/20/2024" }, "TIME": { "label": "Time", "value": "3:15:25 AM" }, "STATUS_TEXT": { "label": "Information", "value": "Please retain receipt!" } }, "tipLineRequired": false, "totalLineRequired": false } } }, "taxDetails": { "taxId": "TaxID1234", "salesSlipNumber": 12345678, "includedTaxAmount": "5.00", "includedLocalTaxAmount": "1.00", "includedNationalTaxAmount": "2.00" } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Printing a Customer or Merchant Receipt
This section describes how to print a customer or merchant receipt from a previous
transaction when the app is in Local mode. This feature can only be used with terminals
that have integrated printers.
Endpoint
The endpoint is the same for the test and production environments.
Test:
wss://{terminal IP address:port number}/
Production:
wss://{terminal IP address:port number}/
Required Fields for Printing a Customer or Merchant Receipt
- type
- Set this field toPrintReceiptRequest.
- transactionId
- Set this field to the ID field value from the original transaction.
- receiptType
- Set this field toCUSTOMERorMERCHANT.
REST Example: Printing a Customer or Merchant Receipt
Request
{ "type": "PrintReceiptRequest", "transactionId": "8fe5fa21d0814424bcec4997c9dc89c4", "receiptType": "CUSTOMER" }
Mid-Operation Status Updates
During the operation, you might receive one or more update responses indicating the
current status of the operation. You can choose to display these updates on your
point-of-sale (POS) system.
{ "type": "OperationStatusResponse", "message": "Status update to display." }
Response to a Successful Request
{ "type": "PrintReceiptResponse", "message": "Receipt printed successfully." }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Cloud Mode Payment Services
This section describes how to process payment services featured in the Acceptance Devices
app when operated in Cloud mode. In this mode, the point-of-sale (POS) system
communicates over the cloud with the Acceptance Devices app on the terminal.
For information about other modes available in the Acceptance Devices app, see:
Communication Protocol Used in Cloud Mode
When operating the solution in Cloud mode, the communication protocol used between the
Acceptance Devices app and the point-of-sale (POS) system is a single HTTPS request to
the backend.
The transaction response can be sent either synchronously or asynchronously:
- Synchronously
- The POS system keeps the connection open until the transaction is completed and the response is provided with the full transaction details. The backend timeout setting is 180 seconds.
- Asynchronously
- The POS system receives a response with an interaction identifier after the transaction is started. The interaction identifier can then be used to check the transaction events. After the transaction is completed, the interaction identifier can be used to get the transaction identifier. The transaction identifier can then be used to get the full transaction and receipt details. For more information, see Receiving Transaction Responses Asynchronously.
Generating a Bearer Token for Authentication
This section describes how to generate a bearer token for authentication. A unique bearer token is required to authenticate each payment transaction request when the app is in Cloud mode.
Generating a Bearer Token for Authentication
You must generate a new bearer token before sending each transaction request.
Follow these steps to generate a bearer token:
- Create a P12 certificate for the transacting merchant ID (MID).
- Construct a message using a JSON web Token (JWT) by following the steps shown in .
- Set thedigestfield (message body) in the JWT as blank.
- Use the JWT as the bearer token to authenticate the payment transaction request.
Processing a Sale
This section describes how to process a sale transaction when the app is in Cloud mode.
This transaction combines an authorization and a capture into a single transaction.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Processing a Sale
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toPaymentRequest.
- request.merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-).
- request.amountDetails.amount
- Set this field to the transaction amount.
- request.amountDetails.currency
- Set this field to the currency code.
REST Example: Processing a Sale
Request
{ "serialNumber": "1850000000", "request": { "type": "PaymentRequest", "merchantReferenceCode": "058ed6c3430e436dab91b782f4113fd2", "amountDetails": { "amount": "1.00", "currency": "GBP" } } }
Response to a Successful Request
{ "type" : "PaymentResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "1541387b383d456aabb81cdf558b4e8e", "merchantReferenceCode" : "058ed6c3430e436dab91b782f4113fd2", "submitTimeUtc" : "2023-12-01T20:24:47+0000", "captured" : true, "amountDetails" : { "currency" : "GBP", "amount" : "1.00", "capturedAmount" : "1.00", "refundableAmount" : "1.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "476173XXXXXX0119", "countryCode" : "840" } }, "additionalInformation" : { "instrumentId" : "7030000000022690119", "requestId" : "7014622903166318504010" }, "linkedOperations" : [ ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£1.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938238\nMerchant ID: **37599\nTerminal ID: ****0063\n\n1541387b383d456aabb81cdf558b4e8e\n21:24:51: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938238" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "1541387b383d456aabb81cdf558b4e8e" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:24:51" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£1.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938238\nMerchant ID: **37599\nTerminal ID: ****0063\n\n1541387b383d456aabb81cdf558b4e8e\n21:24:51: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938238" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "1541387b383d456aabb81cdf558b4e8e" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:24:51" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Refund
This section describes how to process a refund when the app is in Cloud mode. This type
of refund includes a reference to the original transaction for a full or partial
transaction amount. Stand-alone credits are also supported in this Acceptance Devices
solution. For more information, see Processing a Stand-Alone Credit.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Processing a Refund
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toLinkedRefundRequest.
- request.transactionId
- Set this field to theidfield value from the original transaction.
Optional Fields for Processing a Refund
Use the optional amount and currency fields to process a partial refund. Otherwise,
the full amount will be refunded.
- request.amountDetails.amount
- Set this field to the transaction amount.
- request.amountDetails.currency
- Set this field to the currency code.
REST Example: Processing a Refund
Request
{ "serialNumber": "1850000000", "request": { "type": "LinkedRefundRequest", "transactionId": "8fe5fa21d0814424bcec4997c9dc89c4", "amountDetails": { "amount": "1.00", "currency": "GBP" } } }
Response to a Successful Request
{ "type" : "LinkedRefundResponse", "message" : "Refund approved", "transactionDetails" : { "id" : "8fe5fa21d0814424bcec4997c9dc89c4", "merchantReferenceCode" : "e94e3aa304514140ae1700ba0959c7c5", "submitTimeUtc" : "2023-12-01T20:57:30+0000", "captured" : true, "amountDetails" : { "currency" : "GBP", "amount" : "1.00", "capturedAmount" : "0.00", "refundableAmount" : "0.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "476173XXXXXX0119", "countryCode" : "840" } }, "additionalInformation" : { "instrumentId" : "7030000000022690119", "requestId" : "7014642534986108604008" }, "linkedOperations" : [ { "id" : "b383db1aecab46d89f1dbec8b0a9aa90", "type" : "REFUND", "amount" : "1.00", "status" : "APPROVED", "submitTimeUtc" : "2023-12-01T20:57:48+0000" } ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nVoid\n-£1.00\n\n\nReversal accepted.\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Keyed\n\nAuthorization: -\nMerchant ID: **37599\nTerminal ID: ****0063\n\nb383db1aecab46d89f1dbec8b0a9aa90\n21:57:50: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "-" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Void" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "b383db1aecab46d89f1dbec8b0a9aa90" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "-£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:57:50" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Reversal accepted." } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nVoid\n-£1.00\n\n\nReversal accepted.\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Keyed\n\nAuthorization: -\nMerchant ID: **37599\nTerminal ID: ****0063\n\nb383db1aecab46d89f1dbec8b0a9aa90\n21:57:50: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "-" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Void" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "b383db1aecab46d89f1dbec8b0a9aa90" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "-£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:57:50" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Reversal accepted." } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Stand-Alone Credit
This section describes how to process a stand-alone credit in Cloud mode. This type of
transaction is used to process a credit without reference to the original transaction.
The customer is required to present their card for this type of transaction.
WARNING
When processing a stand-alone credit, there is no limit on the
credit amount because there is no reference to the original transaction amount. The
recommendation is to use a refund transaction whenever possible. For more information,
see Processing a Refund.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Processing a Stand-Alone Credit
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toStandaloneRefundRequest.
- request.merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-).
- request.amountDetails.amount
- Set this field to the transaction amount.
- request.amountDetails.currency
- Set this field to the currency code.
REST Example: Processing a Stand-Alone Credit
Request
{ "serialNumber": "1850000000", "request": { "type": "StandaloneRefundRequest", "merchantReferenceCode": "2490c8ec0e2f4b509526815714313e33", "amountDetails": { "amount": "1.00", "currency": "GBP" } } }
Response to a Successful Request
{ "type" : "StandaloneRefundResponse", "message" : "Refund approved", "transactionDetails" : { "id" : "3043e0b61fad4c5483db3d498309460f", "merchantReferenceCode" : "2490c8ec0e2f4b509526815714313e33", "submitTimeUtc" : "2023-12-01T21:04:19+0000", "amountDetails" : { "amount" : "1.00", "currency" : "GBP" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "AMERICAN_EXPRESS", "maskedPan" : "374245XXXXX0001" } }, "additionalInformation" : { "requestId" : "7014646720206287504012" }, "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nRefund\n-£1.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks AMEX\nAccount: *** **** **** 0001\nEntry Mode: Chip\nAID: A0000000250100\n\nTransaction: -\nAuthorization: -\nMerchant ID: *****67890\nTerminal ID: ****0026\n\n3043e0b61fad4c5483db3d498309460f\n10:04:19 PM: 12/1/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks AMEX" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "*** **** **** 0001" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000250100" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Chip" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER" : { "label" : "Transaction", "value" : "-" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "-" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "*****67890" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0026" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Refund" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "3043e0b61fad4c5483db3d498309460f" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "-£1.00" }, "DATE" : { "label" : "Date", "value" : "12/1/2023" }, "TIME" : { "label" : "Time", "value" : "10:04:19 PM" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nRefund\n-£1.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks AMEX\nAccount: *** **** **** 0001\nEntry Mode: Chip\nAID: A0000000250100\n\nTransaction: -\nAuthorization: -\nMerchant ID: *****67890\nTerminal ID: ****0026\n\n3043e0b61fad4c5483db3d498309460f\n10:04:19 PM: 12/1/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks AMEX" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "*** **** **** 0001" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000250100" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Chip" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER" : { "label" : "Transaction", "value" : "-" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "-" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "*****67890" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0026" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Refund" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "3043e0b61fad4c5483db3d498309460f" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "-£1.00" }, "DATE" : { "label" : "Date", "value" : "12/1/2023" }, "TIME" : { "label" : "Time", "value" : "10:04:19 PM" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Requesting a Check Transaction Status
This section describes how to request a check transaction status in Cloud mode. This
transaction is used to obtain response data for a transaction that was lost or timed
out.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Requesting a Check Transaction Status
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toTransactionLookupRequest.
- request.idType
- Set this field toTRANSACTION_IDorMERCHANT_REFERENCE_CODE.
- request.id
- Set this field to theidormerchantReferenceCodefield value from the original transaction.
REST Example: Requesting a Check Transaction Status
Request
{ "serialNumber": "1850000000", "request": { "type": "TransactionLookupRequest", "idType": "TRANSACTION_ID", "id": "1541387b383d456aabb81cdf558b4e8e" } }
Response to a Successful Request
{ "type" : "TransactionLookupResponse", "transactionDetails" : { "id" : "1541387b383d456aabb81cdf558b4e8e", "merchantReferenceCode" : "058ed6c3430e436dab91b782f4113fd2", "submitTimeUtc" : "2023-12-01T20:24:47+0000", "captured" : true, "amountDetails" : { "currency" : "GBP", "amount" : "1.00", "capturedAmount" : "1.00", "refundableAmount" : "1.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "476173XXXXXX0119", "countryCode" : "840" } }, "additionalInformation" : { "instrumentId" : "7030000000022690119", "requestId" : "7014622903166318504010" }, "linkedOperations" : [ ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£1.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938238\nMerchant ID: **37599\nTerminal ID: ****0063\n\n1541387b383d456aabb81cdf558b4e8e\n21:24:51: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938238" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "1541387b383d456aabb81cdf558b4e8e" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:24:51" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£1.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938238\nMerchant ID: **37599\nTerminal ID: ****0063\n\n1541387b383d456aabb81cdf558b4e8e\n21:24:51: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938238" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "1541387b383d456aabb81cdf558b4e8e" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:24:51" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Cancel Transaction
This section describes how to process a cancel transaction request in Cloud mode. This
request is sent to interrupt an in-process transaction.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Processing a Cancel Transaction
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toCancelRequest.
REST Example: Processing a Cancel Transaction
Request
{ "serialNumber": "1850000000", "request": { "type": "CancelRequest" } }
Response to a Successful Request
{ "type" : "PaymentResponse", "message" : "Payment aborted", "transactionDetails" : { "id" : "b6522aeb9d8d49b386f7c67852581145", "merchantReferenceCode" : "50c86aaa02ed4c0bb4b4b596379713f7", "submitTimeUtc" : "2023-12-01T20:30:05+0000", "captured" : false, "amountDetails" : { "currency" : "GBP", "amount" : "1.00", "capturedAmount" : "0.00", "refundableAmount" : "0.00" } }, "processingDetails" : { "status" : "ABORTED", "verificationMethod" : "UNKNOWN", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "00", "expirationYear" : "00", "type" : "UNKNOWN", "maskedPan" : "" } }, "linkedOperations" : [ ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£1.00\n\n\nCanceled transaction.\n\n\nEntry Mode: Contactless\nAID: NULL\n\n\nb6522aeb9d8d49b386f7c67852581145\n21:30:05: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "NULL" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "b6522aeb9d8d49b386f7c67852581145" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:30:05" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Canceled transaction." } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£1.00\n\n\nCanceled transaction.\n\n\nEntry Mode: Contactless\nAID: NULL\n\n\nb6522aeb9d8d49b386f7c67852581145\n21:30:05: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "NULL" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "b6522aeb9d8d49b386f7c67852581145" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:30:05" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Canceled transaction." } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Sale with On-Reader Tipping
This section describes how to process a sale with on-reader tipping in Cloud mode. At the
start of each transaction, the terminal prompts the customer to add a tip by showing
suggested tip amounts. The customer selects or enters a tip amount on the terminal
before presenting their payment card.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Processing a Sale with On-Reader Tipping
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toPaymentRequest.
- request.merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-).
- request.amountDetails.amount
- Set this field to the transaction amount.
- request.amountDetails.currency
- Set this field to the currency code.
- request.askForTip
- Set this field toON_DEVICE.
REST Example: Processing a Sale with On-Reader Tipping
Request
{ "serialNumber": "1850000000", "request": { "type" : "PaymentRequest", "merchantReferenceCode" : "adf0fa5ca70d462ba5fc0249436b656c", "amountDetails" : { "amount" : "5.00", "currency" : "GBP" }, "askForTip" : "ON_DEVICE" } }
Response to a Successful Request
{ "type" : "PaymentResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "55678c8b152046f7b1d77fd2286ce392", "merchantReferenceCode" : "adf0fa5ca70d462ba5fc0249436b656c", "submitTimeUtc" : "2023-12-01T21:01:23+0000", "captured" : true, "amountDetails" : { "currency" : "GBP", "amount" : "6.00", "capturedAmount" : "6.00", "refundableAmount" : "6.00", "includedTipAmount" : "1.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "476173XXXXXX0119", "countryCode" : "840" } }, "additionalInformation" : { "instrumentId" : "7030000000022690119", "requestId" : "7014644863036208304012" }, "linkedOperations" : [ ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\nPurchase Amount: £5.00\nTip Amount: £1.00\nTotal Amount: £6.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938252\nMerchant ID: **37599\nTerminal ID: ****0063\n\n55678c8b152046f7b1d77fd2286ce392\n22:01:27: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938252" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "55678c8b152046f7b1d77fd2286ce392" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£6.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "22:01:27" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\nPurchase Amount: £5.00\nTip Amount: £1.00\nTotal Amount: £6.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938252\nMerchant ID: **37599\nTerminal ID: ****0063\n\n55678c8b152046f7b1d77fd2286ce392\n22:01:27: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938252" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "55678c8b152046f7b1d77fd2286ce392" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£6.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "22:01:27" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Sale with On-Receipt Tipping
This section describes how to process a sale with on-receipt tipping when the app is in
Cloud mode. After the original transaction is pre-authorized, the customer writes the
tip or total amount on the printed receipt. A follow-on tip adjust request must be sent
within 24 hours in order to capture the transaction. For more information, see Processing a Tip Adjust.
WARNING
By using this feature, you assume the risk of the
overcapture being declined and increased chargebacks. Use this feature only when required.
The recommendation is to process a sale with on-reader tipping whenever possible. For
more information, see Processing a Sale with On-Reader Tipping.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Processing a Sale with On-Receipt Tipping
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toPaymentRequest.
- request.merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-).
- request.amountDetails.amount
- Set this field to the transaction amount.
- request.amountDetails.currency
- Set this field to the currency code.
- request.capture
- Set this field tofalse.
- request.askForTip
- Set this field toON_RECEIPT.
REST Example: Processing a Sale with On-Receipt Tipping
Request
{ "serialNumber": "1850000000", "request": { "type" : "PaymentRequest", "merchantReferenceCode" : "1ce594be142142f4913cca805830a176", "amountDetails" : { "amount" : "20.00", "currency" : "USD" }, "capture" : false, "askForTip" : "ON_RECEIPT" } }
Response to a Successful Request
{ "type" : "PaymentResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "c6174c80b81f4413a4b9f2065c5431c7", "merchantReferenceCode" : "1ce594be142142f4913cca805830a176", "submitTimeUtc" : "2024-03-20T09:19:41+0000", "captured" : false, "amountDetails" : { "currency" : "USD", "amount" : "20.00", "capturedAmount" : "20.00", "refundableAmount" : "20.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "476173XXXXXX0119", "countryCode" : "840" } }, "additionalInformation" : { "instrumentId" : "7030000000022690119", "requestId" : "7109263864326505004007" }, "linkedOperations" : [ ], "tipAdjustStatus" : "ADJUSTABLE", "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\n55555 New York\nUnited States\n1234567\n\nSale\n$20.00\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 002000\nMerchant ID: **37599\nTerminal ID: ****0063\n\n\nc6174c80b81f4413a4b9f2065c5431c7\n\n\n\n10:19:46: 20/03/2024\n\n\n\nTIP:\n___________________\n\nTOTAL:\n___________________\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "55555" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "New York" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United States" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "002000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "c6174c80b81f4413a4b9f2065c5431c7" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "$20.00" }, "DATE" : { "label" : "Date", "value" : "20/03/2024" }, "TIME" : { "label" : "Time", "value" : "10:19:46" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false, "tipLineRequired" : true, "totalLineRequired" : true } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\n55555 New York\nUnited States\n1234567\n\nSale\n$20.00\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 002000\nMerchant ID: **37599\nTerminal ID: ****0063\n\n\nc6174c80b81f4413a4b9f2065c5431c7\n\n\n\n10:19:46: 20/03/2024\n\n\n\nTIP:\n___________________\n\nTOTAL:\n___________________\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "55555" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "New York" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United States" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "002000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "c6174c80b81f4413a4b9f2065c5431c7" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "$20.00" }, "DATE" : { "label" : "Date", "value" : "20/03/2024" }, "TIME" : { "label" : "Time", "value" : "10:19:46" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false, "tipLineRequired" : true, "totalLineRequired" : true } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Tip Adjust
This section describes how to process a tip adjust when the app is in Cloud mode. This
follow-on transaction is required when processing an on-receipt tipping transaction. The
tip adjust request must be sent within 24 hours in order to capture the transaction.
After the original transaction is pre-authorized, the customer writes the tip or total
amount on the printed receipt. A follow-on tip adjust request is then sent to capture
the additional tip amount. This transaction is also referred to as an
overcapture
. For more information, see Processing a Sale with On-Receipt Tipping.Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Required Fields for Processing a Tip Adjust
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toTipAdjustRequest.
- request.transactionId
- Set this field to theidfield value from the original transaction.
- request.amountDetails.amount
- Set this field to the transaction amount.
- request.amountDetails.currency
- Set this field to the currency code.
REST Example: Processing a Tip Adjust
Endpoints
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Request
{ "serialNumber": "1850000000", "request": { "type" : "TipAdjustRequest", "transactionId" : "c6174c80b81f4413a4b9f2065c5431c7", "amountDetails" : { "amount" : "4.00", "currency" : "USD" } } }
Response to a Successful Request
{ "type" : "TipAdjustResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "c6174c80b81f4413a4b9f2065c5431c7", "merchantReferenceCode" : "1ce594be142142f4913cca805830a176", "submitTimeUtc" : "2024-03-20T09:19:41+0000", "captured" : true, "amountDetails" : { "currency" : "USD", "amount" : "24.00", "capturedAmount" : "24.00", "refundableAmount" : "24.00", "includedTipAmount" : "4.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "476173XXXXXX0119", "countryCode" : "840" } }, "additionalInformation" : { "instrumentId" : "7030000000022690119", "requestId" : "7109265975966653104007" }, "linkedOperations" : [ ], "tipAdjustStatus" : "ADJUSTED", "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\n55555 New York\nUnited States\n1234567\n\nCapture\nPurchase Amount: $20.00\nTip Amount: $4.00\nTotal Amount: $24.00\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 002000\nMerchant ID: **37599\nTerminal ID: ****7478\n\n\nc6174c80b81f4413a4b9f2065c5431c7\n\n10:23:17: 20/03/2024\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "55555" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "New York" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United States" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "002000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****7478" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Capture" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "c6174c80b81f4413a4b9f2065c5431c7" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "$24.00" }, "DATE" : { "label" : "Date", "value" : "20/03/2024" }, "TIME" : { "label" : "Time", "value" : "10:23:17" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false, "tipLineRequired" : false, "totalLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\n55555 New York\nUnited States\n1234567\n\nCapture\nPurchase Amount: $20.00\nTip Amount: $4.00\nTotal Amount: $24.00\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 002000\nMerchant ID: **37599\nTerminal ID: ****7478\n\n\nc6174c80b81f4413a4b9f2065c5431c7\n\n10:23:17: 20/03/2024\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "55555" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "New York" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United States" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "002000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****7478" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Capture" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "c6174c80b81f4413a4b9f2065c5431c7" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "$24.00" }, "DATE" : { "label" : "Date", "value" : "20/03/2024" }, "TIME" : { "label" : "Time", "value" : "10:23:17" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false, "tipLineRequired" : false, "totalLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Token Refund
This section describes how to process a token refund in Cloud mode. A token refund
transaction enables you to process a stand-alone credit against a tokenized card. In
order to process a credit through a token, you must have the
Token Management Service
product enabled and an existing (saved) token from a tokenized transaction. For more
information, see .Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Processing a Token Refund
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toTokenRefundRequest.
- request.instrumentId
- Set this field to the Instrument Identifier token.
- request.merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-).
- request.amountDetails.amount
- Set this field to the transaction amount.
- request.amountDetails.currency
- Set this field to the currency code.
REST Example: Processing a Token Refund
Request
{ "serialNumber": "1850000000", "request": { "type": "TokenRefundRequest", "instrumentId": "7030000000022690119", "merchantReferenceCode": "30ed45dc7b3f4fb9905413940ac30363", "amountDetails": { "amount": "1.00", "currency": "GBP" } } }
Response to a Successful Request
{ "type" : "TokenRefundResponse", "message" : "Refund approved", "transactionDetails" : { "id" : "596b797178fe45e39ce3a8b8fdf432d6", "merchantReferenceCode" : "30ed45dc7b3f4fb9905413940ac30363", "submitTimeUtc" : "2023-12-01T21:02:50+0000", "amountDetails" : { "amount" : "1.00", "currency" : "GBP" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "MANUAL", "card" : { "expirationMonth" : "00", "expirationYear" : "00", "type" : "VISA", "maskedPan" : "703000XXXXXXXXX0119" } }, "additionalInformation" : { "requestId" : "7014645711206245404009" }, "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nRefund\n-£1.00\n\n\nPlease retain receipt!\n\n\nCard: VISA\nAccount: *** **** **** **** 0119\nEntry Mode: Keyed\n\nTransaction: -\nAuthorization: -\nMerchant ID: **37599\nTerminal ID: *************L_ID\n\n596b797178fe45e39ce3a8b8fdf432d6\n10:02:50 PM: 12/1/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "*** **** **** **** 0119" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER" : { "label" : "Transaction", "value" : "-" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "-" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "*************L_ID" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Refund" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "596b797178fe45e39ce3a8b8fdf432d6" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "-£1.00" }, "DATE" : { "label" : "Date", "value" : "12/1/2023" }, "TIME" : { "label" : "Time", "value" : "10:02:50 PM" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nRefund\n-£1.00\n\n\nPlease retain receipt!\n\n\nCard: VISA\nAccount: *** **** **** **** 0119\nEntry Mode: Keyed\n\nTransaction: -\nAuthorization: -\nMerchant ID: **37599\nTerminal ID: *************L_ID\n\n596b797178fe45e39ce3a8b8fdf432d6\n10:02:50 PM: 12/1/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "*** **** **** **** 0119" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER" : { "label" : "Transaction", "value" : "-" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "-" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "*************L_ID" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Refund" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "596b797178fe45e39ce3a8b8fdf432d6" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "-£1.00" }, "DATE" : { "label" : "Date", "value" : "12/1/2023" }, "TIME" : { "label" : "Time", "value" : "10:02:50 PM" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Pre-Authorization
This section describes how to process a pre-authorization for an initial amount in Cloud
mode. A pre-authorization transaction places a temporary hold on the customer's payment
card. The transaction amount can be captured at a later time.
Most authorizations expire in 5 to 7 days. The issuing bank sets the length of time
before expiration. When an authorization expires with the issuing bank, your bank or
processor might require you to re-submit an authorization request and include a request
for capture in the same message.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Processing a Pre-Authorization
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toPaymentRequest.
- request.merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-).
- request.amountDetails.amount
- Set this field to the transaction amount.
- request.amountDetails.currency
- Set this field to the currency code.
- request.capture
- Set this field tofalse.
REST Example: Processing a Pre-Authorization
Request
{ "serialNumber": "1850000000", "request": { "type" : "PaymentRequest", "merchantReferenceCode" : "47bd9ed54f3f4bfabb9d3ee94cfa3008", "amountDetails" : { "amount" : "1.00", "currency" : "GBP" }, "capture" : false } }ß
Response to a Successful Request
{ "type" : "PaymentResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "e43069fbf85543659e478edd8d50f244", "merchantReferenceCode" : "47bd9ed54f3f4bfabb9d3ee94cfa3008", "submitTimeUtc" : "2023-12-01T20:38:14+0000", "captured" : false, "amountDetails" : { "currency" : "GBP", "amount" : "1.00", "capturedAmount" : "0.00", "refundableAmount" : "1.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "476173XXXXXX0119", "countryCode" : "840" } }, "additionalInformation" : { "instrumentId" : "7030000000022690119", "requestId" : "7014630972006630604008" }, "linkedOperations" : [ ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nAuth only\n£1.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938242\nMerchant ID: **37599\nTerminal ID: ****0063\n\ne43069fbf85543659e478edd8d50f244\n21:38:18: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938242" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Auth only" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "e43069fbf85543659e478edd8d50f244" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:38:18" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nAuth only\n£1.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938242\nMerchant ID: **37599\nTerminal ID: ****0063\n\ne43069fbf85543659e478edd8d50f244\n21:38:18: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938242" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Auth only" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "e43069fbf85543659e478edd8d50f244" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:38:18" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing an Incremental Authorization
This section describes how to process an incremental authorization in Cloud mode. This
type of request can be made on a pre-authorization transaction to increase the
authorized amount before it is captured.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Processing an Incremental Authorization
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toIncrementalAuthorizationRequest.
- request.transactionId
- Set this field to theidfield value from the original transaction.
- request.amountDetails.amount
- Set this field to the transaction amount.
- request.amountDetails.currency
- Set this field to the currency code.
REST Example: Processing an Incremental Authorization
Request
{ "serialNumber": "1850000000", "request": { "type": "IncrementalAuthorizationRequest", "transactionId": "e43069fbf85543659e478edd8d50f244", "amountDetails": { "amount": "2.00", "currency": "GBP" } } }
Response to a Successful Request
{ "type" : "IncrementalAuthorizationResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "6da4aff381e8483ebc65ebf4fbb27ec8", "merchantReferenceCode" : "47bd9ed54f3f4bfabb9d3ee94cfa3008", "submitTimeUtc" : "2023-12-01T20:39:43+0000", "captured" : false, "amountDetails" : { "currency" : "GBP", "amount" : "2.00", "capturedAmount" : "0.00", "refundableAmount" : "0.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "MANUAL", "card" : { "expirationMonth" : "00", "expirationYear" : "00", "type" : "VISA", "maskedPan" : "476173XXXXXX0119" } }, "additionalInformation" : { "requestId" : "7014631843806649604009" }, "linkedOperations" : [ ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nTop-up\n£2.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Keyed\nVerification: None\n\nAuthorization: 938243\nMerchant ID: **37599\nTerminal ID: ****0063\n\n6da4aff381e8483ebc65ebf4fbb27ec8\n21:39:45: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938243" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Top-up" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "6da4aff381e8483ebc65ebf4fbb27ec8" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£2.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:39:45" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nTop-up\n£2.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Keyed\nVerification: None\n\nAuthorization: 938243\nMerchant ID: **37599\nTerminal ID: ****0063\n\n6da4aff381e8483ebc65ebf4fbb27ec8\n21:39:45: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938243" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Top-up" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "6da4aff381e8483ebc65ebf4fbb27ec8" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£2.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:39:45" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Capture
This section describes how to capture a pre-authorized transaction in Cloud mode. The
capture request references the approved pre-authorization request.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Processing a Capture
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toCaptureRequest.
- request.transactionId
- Set this field to theidfield value from the original transaction.
Optional Fields for Processing a Capture
Use the optional amount and currency fields to process a partial capture. Otherwise,
the full amount will be captured.
- request.amountDetails.amount
- Set this field to the transaction amount.
- request.amountDetails.currency
- Set this field to the currency code.
REST Example: Processing a Capture
Request
{ "serialNumber": "1850000000", "request": { "type": "CaptureRequest", "transactionId": "cb6475bafbb94d03b0f984629c63c294", "amountDetails": { "amount": "3.00", "currency": "GBP" } } }
Response to a Successful Request
{ "type" : "CaptureResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "cb6475bafbb94d03b0f984629c63c294", "merchantReferenceCode" : "dd02499055544be18ba7fa0397909d65", "submitTimeUtc" : "2023-12-01T20:43:03+0000", "captured" : true, "amountDetails" : { "currency" : "GBP", "amount" : "3.00", "capturedAmount" : "3.00", "refundableAmount" : "3.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "476173XXXXXX0119", "countryCode" : "840" } }, "additionalInformation" : { "instrumentId" : "7030000000022690119", "requestId" : "7014633860196734504012" }, "linkedOperations" : [ ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£3.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938244\nMerchant ID: **37599\nTerminal ID: ****0063\n\ncb6475bafbb94d03b0f984629c63c294\n21:43:07: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938244" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "cb6475bafbb94d03b0f984629c63c294" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£3.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:43:07" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£3.00\n\n\nPlease retain receipt!\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938244\nMerchant ID: **37599\nTerminal ID: ****0063\n\ncb6475bafbb94d03b0f984629c63c294\n21:43:07: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938244" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "cb6475bafbb94d03b0f984629c63c294" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£3.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:43:07" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Mail Order or Telephone Order Sale
This section describes how to process a mail order or telephone order (MOTO) sale in
Cloud mode. The payment card is not physically tapped, inserted, or swiped in the
terminal for a MOTO transaction.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Processing a Mail Order or Telephone Order Sale
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toPaymentRequest.
- request.merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-).
- request.amountDetails.amount
- Set this field to the transaction amount.
- request.amountDetails.currency
- Set this field to the currency code.
- request.paymentMode
- Set this field toMOTO.
REST Example: Processing a Mail Order or Telephone Order Sale
Request
{ "serialNumber": "1850000000", "request": { "type" : "PaymentRequest", "merchantReferenceCode" : "a7fbcdc92425456fa0db29c8670a3150", "amountDetails" : { "amount" : "1.00", "currency" : "GBP" }, "paymentMode": "MOTO" } }
Response to a Successful Request
{ "type" : "PaymentResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "4348c35f258c4f8d8c89b9898e3f1b63", "merchantReferenceCode" : "a7fbcdc92425456fa0db29c8670a3150", "submitTimeUtc" : "2023-12-01T20:51:09+0000", "captured" : true, "amountDetails" : { "currency" : "GBP", "amount" : "1.00", "capturedAmount" : "1.00", "refundableAmount" : "1.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "MANUAL", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "411111******1111" } }, "additionalInformation" : { "instrumentId" : "7038380000019631111", "requestId" : "7014638853776978504011" }, "linkedOperations" : [ ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£1.00\n\n\nCVV MATCH ONLY\n\n\nCard: VISA\nAccount: **** **** **** 1111\nEntry Mode: Keyed\nVerification: Cardholder Not Present\n\nAuthorization: 938246\nMerchant ID: **37599\nTerminal ID: ****0063\n\n4348c35f258c4f8d8c89b9898e3f1b63\n21:51:27: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 1111" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "Cardholder Not Present" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938246" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "4348c35f258c4f8d8c89b9898e3f1b63" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:51:27" }, "STATUS_TEXT" : { "label" : "Information", "value" : "CVV MATCH ONLY" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nSale\n£1.00\n\n\nPlease retain receipt!\n\n\nCard: VISA\nAccount: **** **** **** 1111\nEntry Mode: Keyed\nVerification: Cardholder Not Present\n\nAuthorization: 938246\nMerchant ID: **37599\nTerminal ID: ****0063\n\n4348c35f258c4f8d8c89b9898e3f1b63\n21:51:27: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 1111" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "Cardholder Not Present" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938246" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Sale" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "4348c35f258c4f8d8c89b9898e3f1b63" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:51:27" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Mail Order or Telephone Order Pre-Authorization
This section describes how to process a mail order or telephone order (MOTO)
pre-authorization request for an initial amount in Cloud mode. The payment card is not
physically tapped, inserted, or swiped in the terminal for a MOTO transaction.
A MOTO pre-authorization request places a temporary hold on the customer's payment card,
which can be captured at a later time. Most authorizations expire in 5 to 7 days. The
issuing bank sets the length of time before expiration. When an authorization expires
with the issuing bank, your bank or processor might require you to re-submit an
authorization request and include a request for capture in the same message.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Processing a Mail Order or Telephone Order Pre-Authorization
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toPaymentRequest.
- request.merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-).
- request.amountDetails.amount
- Set this field to the transaction amount.
- request.amountDetails.currency
- Set this field to the currency code.
- request.paymentMode
- Set this field toMOTO.
- request.capture
- Set this field tofalse.
REST Example: Processing a Mail Order or Telephone Order Pre-Authorization
Request
{ "type" : "PaymentRequest", "merchantReferenceCode" : "c9d718aae5064276a2bd7bd16229ab61", "amountDetails" : { "amount" : "1.00", "currency" : "GBP" }, "paymentMode": "MOTO", "capture": false }
Response to a Successful Request
{ "type" : "PaymentResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "27b9e29419f049e8bc6ba6bd4843c020", "merchantReferenceCode" : "c9d718aae5064276a2bd7bd16229ab61", "submitTimeUtc" : "2023-12-01T20:52:10+0000", "captured" : false, "amountDetails" : { "currency" : "GBP", "amount" : "1.00", "capturedAmount" : "0.00", "refundableAmount" : "1.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "MANUAL", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "411111******1111" } }, "additionalInformation" : { "requestId" : "7014639470806954604009" }, "linkedOperations" : [ ], "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nAuth only\n£1.00\n\n\nCVV MATCH ONLY\n\n\nCard: VISA\nAccount: **** **** **** 1111\nEntry Mode: Keyed\nVerification: Cardholder Not Present\n\nAuthorization: 938247\nMerchant ID: **37599\nTerminal ID: ****0063\n\n27b9e29419f049e8bc6ba6bd4843c020\n21:52:29: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 1111" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "Cardholder Not Present" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938247" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Auth only" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "27b9e29419f049e8bc6ba6bd4843c020" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:52:29" }, "STATUS_TEXT" : { "label" : "Information", "value" : "CVV MATCH ONLY" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nAuth only\n£1.00\n\n\nPlease retain receipt!\n\n\nCard: VISA\nAccount: **** **** **** 1111\nEntry Mode: Keyed\nVerification: Cardholder Not Present\n\nAuthorization: 938247\nMerchant ID: **37599\nTerminal ID: ****0063\n\n27b9e29419f049e8bc6ba6bd4843c020\n21:52:29: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 1111" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "Cardholder Not Present" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938247" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Auth only" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "27b9e29419f049e8bc6ba6bd4843c020" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£1.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:52:29" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Mail Order or Telephone Order Account Verification
This section describes how to process a mail order or telephone order (MOTO) account
verification in Cloud mode. The MOTO account verification request submits a zero-amount
authorization request to validate the payment card. The payment card is not physically
tapped, inserted, or swiped in a terminal for a MOTO transaction.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Processing a Mail Order or Telephone Order Account Verification
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toAccountVerificationRequest.
- request.merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-).
- request.amountDetails.currency
- Set this field to the currency code.
- request.paymentMode
- Set this field toMOTO.
REST Example: Processing a Mail Order or Telephone Order Account Verification
Request
{ "serialNumber": "1850000000", "request": { "type" : "AccountVerificationRequest", "merchantReferenceCode" : "85429ed03e7c43809f2fbe828d0148f0", "amountDetails" : { "currency" : "GBP" }, "paymentMode" : "MOTO" } }
Response to a Successful Request
{ "type" : "AccountVerificationResponse", "message" : "Verification successful", "transactionDetails" : { "id" : "1177b92d5cfc4ea895c2a8de7e6ede9d", "merchantReferenceCode" : "85429ed03e7c43809f2fbe828d0148f0", "submitTimeUtc" : "2023-12-01T20:54:00+0000", "amountDetails" : { "currency" : "GBP" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "MANUAL", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "411111******1111" } }, "additionalInformation" : { "instrumentId" : "7038380000019631111", "requestId" : "7014640563196022404008" }, "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nAccount Verification\n£0.00\n\n\nCVV MATCH ONLY\n\n\nCard: VISA\nAccount: **** **** **** 1111\nEntry Mode: Keyed\nVerification: Cardholder Not Present\n\nAuthorization: 938248\nMerchant ID: **37599\nTerminal ID: ****0063\n\n1177b92d5cfc4ea895c2a8de7e6ede9d\n21:54:17: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 1111" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "Cardholder Not Present" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938248" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Account Verification" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "1177b92d5cfc4ea895c2a8de7e6ede9d" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£0.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:54:17" }, "STATUS_TEXT" : { "label" : "Information", "value" : "CVV MATCH ONLY" } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nAccount Verification\n£0.00\n\n\nAccount Valid.\n\n\nCard: VISA\nAccount: **** **** **** 1111\nEntry Mode: Keyed\nVerification: Cardholder Not Present\n\nAuthorization: 938248\nMerchant ID: **37599\nTerminal ID: ****0063\n\n1177b92d5cfc4ea895c2a8de7e6ede9d\n21:54:17: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 1111" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Keyed" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "Cardholder Not Present" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938248" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Account Verification" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "1177b92d5cfc4ea895c2a8de7e6ede9d" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£0.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:54:17" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Account Valid." } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing an Account Verification
This section describes how to process an account verification in Cloud mode. The account
verification transaction submits a zero-amount authorization request to validate the
payment card.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Processing an Account Verification
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toAccountVerificationRequest.
- request.merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-).
- request.amountDetails.currency
- Set this field to the currency code.
REST Example: Processing an Account Verification
Request
{ "serialNumber": "1850000000", "request": { "type": "AccountVerificationRequest", "merchantReferenceCode": "ec119c3b377542b09132867d236dc834", "amountDetails": { "currency": "GBP" } } }
Response to a Successful Request
{ "type" : "AccountVerificationResponse", "message" : "Verification successful", "transactionDetails" : { "id" : "2dd6beb00d8d4bb8bf1a4718917a3003", "merchantReferenceCode" : "ec119c3b377542b09132867d236dc834", "submitTimeUtc" : "2023-12-01T20:27:02+0000", "amountDetails" : { "currency" : "GBP" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "NONE", "entryMode" : "NFC_ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "VISA", "maskedPan" : "476173XXXXXX0119", "countryCode" : "840" } }, "additionalInformation" : { "instrumentId" : "7030000000022690119", "requestId" : "7014624258386432804007" }, "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nAccount Verification\n£0.00\n\n\nAccount Valid.\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938239\nMerchant ID: **37599\nTerminal ID: ****0063\n\n2dd6beb00d8d4bb8bf1a4718917a3003\n21:27:07: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938239" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Account Verification" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "2dd6beb00d8d4bb8bf1a4718917a3003" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£0.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:27:07" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Account Valid." } }, "signatureLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nAccount Verification\n£0.00\n\n\nAccount Valid.\n\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: None\n\nAuthorization: 938239\nMerchant ID: **37599\nTerminal ID: ****0063\n\n2dd6beb00d8d4bb8bf1a4718917a3003\n21:27:07: 01/12/2023\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000031010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "None" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "938239" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Account Verification" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "2dd6beb00d8d4bb8bf1a4718917a3003" }, "AMOUNT_AND_CURRENCY" : { "label" : "Amount", "value" : "£0.00" }, "DATE" : { "label" : "Date", "value" : "01/12/2023" }, "TIME" : { "label" : "Time", "value" : "21:27:07" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Account Valid." } }, "signatureLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Cashback
This section describes how to process a cashback transaction in Cloud mode. This type of
transaction enables a customer to request that a specified amount of cash be given to
them as part of the transaction. A cashback transaction can be processed with or without
a purchase.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Processing a Cashback
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toPaymentRequest.
- request.merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-).
- request.amountDetails.amount
- Set this field to the transaction amount.
- request.amountDetails.currency
- Set this field to the currency code.
- request.amountDetails.cashbackAmount
- Set this field to the cashback amount.
REST Example: Processing a Cashback
Request
{ "serialNumber": "1850000000", "request": { "type": "PaymentRequest", "merchantReferenceCode": "bd74d30930e349548fd9d125f88291bc", "amountDetails": { "amount": "20.00", "currency": "GBP", "cashbackAmount": "5.00" } } }
Response to a Successful Request
{ "type" : "PaymentResponse", "message" : "Payment approved", "transactionDetails" : { "id" : "218b28d38bf3424ab4ade95b9be1c75b", "merchantReferenceCode" : "bd74d30930e349548fd9d125f88291bc", "submitTimeUtc" : "2024-03-20T08:55:37+0000", "captured" : true, "amountDetails" : { "currency" : "GBP", "amount" : "20.00", "capturedAmount" : "25.00", "refundableAmount" : "20.00", "cashbackAmount" : "5.00" } }, "processingDetails" : { "status" : "APPROVED", "verificationMethod" : "PIN", "entryMode" : "ICC", "card" : { "expirationMonth" : "12", "expirationYear" : "2025", "type" : "MASTERCARD", "maskedPan" : "541333XXXXXX0011", "countryCode" : "276" } }, "additionalInformation" : { "instrumentId" : "7030000000232230011", "requestId" : "7109249459396751504008" }, "linkedOperations" : [ ], "tipAdjustStatus" : "NOT_ADJUSTABLE", "receipts" : { "merchantReceipt" : { "preformattedReceipt" : "Merchant Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nCashback\n£25.00\nPurchase Amount: £20.00\nCashback: £5.00\nPlease retain receipt!\n\nCard: Payworks MASTER\nAccount: **** **** **** 0011\nEntry Mode: Chip\nAID: A0000000041010\nCard Number: 0\nVerification: PIN\n\nAuthorization: 002500\nMerchant ID: **37599\nTerminal ID: ****0063\n\n\n218b28d38bf3424ab4ade95b9be1c75b\n\n09:55:46: 20/03/2024\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks MASTER" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0011" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000041010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Chip" }, "PAYMENT_DETAILS_ACCOUNT_SEQUENCE_NUMBER" : { "label" : "Card Number", "value" : "0" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "PIN" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "002500" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Merchant Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Cashback" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "218b28d38bf3424ab4ade95b9be1c75b" }, "DATE" : { "label" : "Date", "value" : "20/03/2024" }, "TIME" : { "label" : "Time", "value" : "09:55:46" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false, "tipLineRequired" : false, "totalLineRequired" : false } }, "customerReceipt" : { "preformattedReceipt" : "Cardholder Receipt\nCP Test\nSample Street\nUB3 2EA London\nUnited Kingdom\n1234567\n\nCashback\n£25.00\nPurchase Amount: £20.00\nCashback: £5.00\nPlease retain receipt!\n\nCard: Payworks MASTER\nAccount: **** **** **** 0011\nEntry Mode: Chip\nAID: A0000000041010\nCard Number: 0\nVerification: PIN\n\nAuthorization: 002500\nMerchant ID: **37599\nTerminal ID: ****0063\n\n\n218b28d38bf3424ab4ade95b9be1c75b\n\n09:55:46: 20/03/2024\n\n\n", "receiptData" : { "lines" : { "MERCHANT_DETAILS_PUBLIC_NAME" : { "label" : "Name", "value" : "CP Test" }, "MERCHANT_DETAILS_ADDRESS" : { "label" : "Address", "value" : "Sample Street" }, "MERCHANT_DETAILS_ZIP" : { "label" : "Zip", "value" : "UB3 2EA" }, "MERCHANT_DETAILS_CITY" : { "label" : "City", "value" : "London" }, "MERCHANT_DETAILS_COUNTRY" : { "label" : "Country", "value" : "United Kingdom" }, "MERCHANT_DETAILS_CONTACT" : { "label" : "Contact", "value" : "1234567" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION" : { "label" : "Additional Information", "value" : "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL" : { "label" : "Card", "value" : "Payworks MASTER" }, "PAYMENT_DETAILS_MASKED_ACCOUNT" : { "label" : "Account", "value" : "**** **** **** 0011" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID" : { "label" : "AID", "value" : "A0000000041010" }, "PAYMENT_DETAILS_SOURCE" : { "label" : "Entry Mode", "value" : "Chip" }, "PAYMENT_DETAILS_ACCOUNT_SEQUENCE_NUMBER" : { "label" : "Card Number", "value" : "0" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION" : { "label" : "Verification", "value" : "PIN" }, "CLEARING_DETAILS_AUTHORIZATION_CODE" : { "label" : "Authorization", "value" : "002500" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER" : { "label" : "Merchant ID", "value" : "**37599" }, "CLEARING_DETAILS_TERMINAL_ID" : { "label" : "Terminal ID", "value" : "****0063" }, "RECEIPT_TYPE" : { "label" : "Receipt Type", "value" : "Cardholder Receipt" }, "TRANSACTION_TYPE" : { "label" : "Type", "value" : "Cashback" }, "SUBJECT" : { "label" : "Description", "value" : "" }, "IDENTIFIER" : { "label" : "PWID", "value" : "218b28d38bf3424ab4ade95b9be1c75b" }, "DATE" : { "label" : "Date", "value" : "20/03/2024" }, "TIME" : { "label" : "Time", "value" : "09:55:46" }, "STATUS_TEXT" : { "label" : "Information", "value" : "Please retain receipt!" } }, "signatureLineRequired" : false, "tipLineRequired" : false, "totalLineRequired" : false } } } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Sale with Installment Details
This section describes how to process a sale transaction with installment details when
the app is in Cloud mode. This type of transaction can be used to include the required
installment details as part of the sale transaction.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
This transaction is available only in the Latin America and Caribbean (LAC) region.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Processing a Sale with Installment Details
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toPaymentRequest.
- request.merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-).
- request.amountDetails.amount
- Set this field to the transaction amount.
- request.amountDetails.currency
- Set this field to the currency code.
Optional Fields for Processing a Sale with Installment Details
Use one or more of the optional
installmentDetails
fields to
provide additional installment details.- request.installmentDetails.numberOfInstallments
- Set this field to the number of installments.
- request.installmentDetails.planType
- Set this field toMERCHANT_FUNDEDorISSUER_FUNDED.
- request.installmentDetails.interestPlan
- Set this field totrueorfalse.
- request.installmentDetails.governmentPlan
- Set this field totrueorfalse.
REST Example: Processing a Sale with Installment Details
Request
{ "serialNumber": "1850000000", "request": { "type": "PaymentRequest", "merchantReferenceCode": "058ed6c3430e436dab91b782f4113fd2", "amountDetails": { "amount": "20.00", "currency": "USD" }, "installmentDetails": { "numberOfInstallments": 5, "planType": "MERCHANT_FUNDED", "interestPlan": true, "governmentPlan": true } } }
Response to a Successful Request
{ "type": "PaymentResponse", "message": "Payment approved", "transactionDetails": { "id": "8ccb150a88bd4c6f9a00a687f39ca97d", "merchantReferenceCode": "058ed6c3430e436dab91b782f4113fd2", "submitTimeUtc": "2024-09-20T08:15:12+0000", "captured": true, "amountDetails": { "amount": "20.00", "currency": "USD", "capturedAmount": "20.00", "refundableAmount": "20.00" } }, "processingDetails": { "status": "APPROVED", "verificationMethod": "NONE", "entryMode": "NFC_ICC", "card": { "expirationMonth": "12", "expirationYear": "2025", "type": "VISA", "maskedPan": "476173XXXXXX0119", "countryCode": "840" } }, "additionalInformation": { "requestId": "7268201146336069504011" }, "linkedOperations": [], "receipts": { "merchantReceipt": { "preformattedReceipt": "Merchant Receipt\nTest\nSample Street 123\n34351 New York\nUnited States\n12345678\n\nPayment\nUSD$20.00\n\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: No Verification\n\nTransaction: 546712\nAuthorization: 831000\nMerchant ID: ************st051\nTerminal ID: ****7069\n\n\n8ccb150a88bd4c6f9a00a687f39ca97d\n\n4:15:12 AM: 9/20/2024\n\n\n", "receiptData": { "signatureLineRequired": false, "lines": { "MERCHANT_DETAILS_PUBLIC_NAME": { "label": "Name", "value": "Test" }, "MERCHANT_DETAILS_ADDRESS": { "label": "Address", "value": "Sample Street 123" }, "MERCHANT_DETAILS_ZIP": { "label": "Zip", "value": "34351" }, "MERCHANT_DETAILS_CITY": { "label": "City", "value": "New York" }, "MERCHANT_DETAILS_COUNTRY": { "label": "Country", "value": "United States" }, "MERCHANT_DETAILS_CONTACT": { "label": "Contact", "value": "12345678" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION": { "label": "Additional Information", "value": "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL": { "label": "Card", "value": "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT": { "label": "Account", "value": "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID": { "label": "AID", "value": "A0000000031010" }, "PAYMENT_DETAILS_SOURCE": { "label": "Entry Mode", "value": "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION": { "label": "Verification", "value": "No Verification" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER": { "label": "Transaction", "value": "546712" }, "CLEARING_DETAILS_AUTHORIZATION_CODE": { "label": "Authorization", "value": "831000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER": { "label": "Merchant ID", "value": "************st051" }, "CLEARING_DETAILS_TERMINAL_ID": { "label": "Terminal ID", "value": "****7069" }, "RECEIPT_TYPE": { "label": "Receipt Type", "value": "Merchant Receipt" }, "TRANSACTION_TYPE": { "label": "Type", "value": "Payment" }, "SUBJECT": { "label": "Description", "value": "" }, "IDENTIFIER": { "label": "PWID", "value": "8ccb150a88bd4c6f9a00a687f39ca97d" }, "AMOUNT_AND_CURRENCY": { "label": "Amount", "value": "USD$20.00" }, "DATE": { "label": "Date", "value": "9/20/2024" }, "TIME": { "label": "Time", "value": "4:15:12 AM" }, "STATUS_TEXT": { "label": "Information", "value": "Please retain receipt!" } }, "tipLineRequired": false, "totalLineRequired": false } }, "customerReceipt": { "preformattedReceipt": "Cardholder Receipt\nTest\nSample Street 123\n34351 New York\nUnited States\n12345678\n\nPayment\nUSD$20.00\n\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: No Verification\n\nTransaction: 546712\nAuthorization: 831000\nMerchant ID: ************st051\nTerminal ID: ****7069\n\n\n8ccb150a88bd4c6f9a00a687f39ca97d\n\n4:15:12 AM: 9/20/2024\n\n\n", "receiptData": { "signatureLineRequired": false, "lines": { "MERCHANT_DETAILS_PUBLIC_NAME": { "label": "Name", "value": "Test" }, "MERCHANT_DETAILS_ADDRESS": { "label": "Address", "value": "Sample Street 123" }, "MERCHANT_DETAILS_ZIP": { "label": "Zip", "value": "34351" }, "MERCHANT_DETAILS_CITY": { "label": "City", "value": "New York" }, "MERCHANT_DETAILS_COUNTRY": { "label": "Country", "value": "United States" }, "MERCHANT_DETAILS_CONTACT": { "label": "Contact", "value": "12345678" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION": { "label": "Additional Information", "value": "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL": { "label": "Card", "value": "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT": { "label": "Account", "value": "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID": { "label": "AID", "value": "A0000000031010" }, "PAYMENT_DETAILS_SOURCE": { "label": "Entry Mode", "value": "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION": { "label": "Verification", "value": "No Verification" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER": { "label": "Transaction", "value": "546712" }, "CLEARING_DETAILS_AUTHORIZATION_CODE": { "label": "Authorization", "value": "831000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER": { "label": "Merchant ID", "value": "************st051" }, "CLEARING_DETAILS_TERMINAL_ID": { "label": "Terminal ID", "value": "****7069" }, "RECEIPT_TYPE": { "label": "Receipt Type", "value": "Cardholder Receipt" }, "TRANSACTION_TYPE": { "label": "Type", "value": "Payment" }, "SUBJECT": { "label": "Description", "value": "" }, "IDENTIFIER": { "label": "PWID", "value": "8ccb150a88bd4c6f9a00a687f39ca97d" }, "AMOUNT_AND_CURRENCY": { "label": "Amount", "value": "USD$20.00" }, "DATE": { "label": "Date", "value": "9/20/2024" }, "TIME": { "label": "Time", "value": "4:15:12 AM" }, "STATUS_TEXT": { "label": "Information", "value": "Please retain receipt!" } }, "tipLineRequired": false, "totalLineRequired": false } } }, "installmentDetails": { "numberOfInstallments": 5, "planType": "MERCHANT_FUNDED", "interestPlan": true, "governmentPlan": true } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Sale with Payment Facilitator Details
This section describes how to process a sale transaction with payment facilitator details
when the app is in Cloud mode. This type of transaction can be used to include the
required payment facilitator details as part of the sale transaction.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Processing a Sale with Payment Facilitator Details
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toPaymentRequest.
- request.merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-).
- request.amountDetails.amount
- Set this field to the transaction amount.
- request.amountDetails.currency
- Set this field to the currency code.
Optional Fields for Processing a Sale with Payment Facilitator Details
Use one or more of the optional
merchantDetails
fields to provide
the required payment facilitator details.- request.merchantDetails.salesOrganizationId
- Set this field to the sales organization identifier.
- request.merchantDetails.subMerchantId
- Set this field to the sub-merchant identifier.
- request.merchantDetails.descriptorName
- Set this field to the descriptor name.
REST Example: Processing a Sale with Payment Facilitator Details
Request
{ "serialNumber": "1850000000", "request": { "type": "PaymentRequest", "merchantReferenceCode": "058ed6c3430e436dab91b782f4113fd2", "amountDetails": { "amount": "1.00", "currency": "USD" }, "merchantDetails": { "salesOrganizationId": "12345", "subMerchantId": "SM67890", "descriptorName": "ExampleMerchant" } } }
Response to a Successful Request
{ "type": "PaymentResponse", "message": "Payment approved", "transactionDetails": { "id": "940d49ee94444764acb1c898e2254954", "merchantReferenceCode": "058ed6c3430e436dab91b782f4113fd2", "submitTimeUtc": "2024-09-20T07:53:36+0000", "captured": true, "amountDetails": { "amount": "1.00", "currency": "USD", "capturedAmount": "1.00", "refundableAmount": "1.00" } }, "processingDetails": { "status": "APPROVED", "verificationMethod": "NONE", "entryMode": "NFC_ICC", "card": { "expirationMonth": "12", "expirationYear": "2025", "type": "VISA", "maskedPan": "476173XXXXXX0119", "countryCode": "840" } }, "additionalInformation": { "requestId": "7268188188226629104009" }, "linkedOperations": [], "receipts": { "merchantReceipt": { "preformattedReceipt": "Merchant Receipt\nTest\nSample Street 123\n34351 New York\nUnited States\n12345678\n\nPayment\nUSD$1.00\n\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: No Verification\n\nTransaction: 545814\nAuthorization: 831000\nMerchant ID: ************st051\nTerminal ID: ****7069\n\n\n940d49ee94444764acb1c898e2254954\n\n3:53:36 AM: 9/20/2024\n\n\n", "receiptData": { "signatureLineRequired": false, "lines": { "MERCHANT_DETAILS_PUBLIC_NAME": { "label": "Name", "value": "Test" }, "MERCHANT_DETAILS_ADDRESS": { "label": "Address", "value": "Sample Street 123" }, "MERCHANT_DETAILS_ZIP": { "label": "Zip", "value": "34351" }, "MERCHANT_DETAILS_CITY": { "label": "City", "value": "New York" }, "MERCHANT_DETAILS_COUNTRY": { "label": "Country", "value": "United States" }, "MERCHANT_DETAILS_CONTACT": { "label": "Contact", "value": "12345678" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION": { "label": "Additional Information", "value": "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL": { "label": "Card", "value": "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT": { "label": "Account", "value": "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID": { "label": "AID", "value": "A0000000031010" }, "PAYMENT_DETAILS_SOURCE": { "label": "Entry Mode", "value": "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION": { "label": "Verification", "value": "No Verification" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER": { "label": "Transaction", "value": "545814" }, "CLEARING_DETAILS_AUTHORIZATION_CODE": { "label": "Authorization", "value": "831000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER": { "label": "Merchant ID", "value": "************st051" }, "CLEARING_DETAILS_TERMINAL_ID": { "label": "Terminal ID", "value": "****7069" }, "RECEIPT_TYPE": { "label": "Receipt Type", "value": "Merchant Receipt" }, "TRANSACTION_TYPE": { "label": "Type", "value": "Payment" }, "SUBJECT": { "label": "Description", "value": "" }, "IDENTIFIER": { "label": "PWID", "value": "940d49ee94444764acb1c898e2254954" }, "AMOUNT_AND_CURRENCY": { "label": "Amount", "value": "USD$1.00" }, "DATE": { "label": "Date", "value": "9/20/2024" }, "TIME": { "label": "Time", "value": "3:53:36 AM" }, "STATUS_TEXT": { "label": "Information", "value": "Please retain receipt!" } }, "tipLineRequired": false, "totalLineRequired": false } }, "customerReceipt": { "preformattedReceipt": "Cardholder Receipt\nTest\nSample Street 123\n34351 New York\nUnited States\n12345678\n\nPayment\nUSD$1.00\n\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: No Verification\n\nTransaction: 545814\nAuthorization: 831000\nMerchant ID: ************st051\nTerminal ID: ****7069\n\n\n940d49ee94444764acb1c898e2254954\n\n3:53:36 AM: 9/20/2024\n\n\n", "receiptData": { "signatureLineRequired": false, "lines": { "MERCHANT_DETAILS_PUBLIC_NAME": { "label": "Name", "value": "Test" }, "MERCHANT_DETAILS_ADDRESS": { "label": "Address", "value": "Sample Street 123" }, "MERCHANT_DETAILS_ZIP": { "label": "Zip", "value": "34351" }, "MERCHANT_DETAILS_CITY": { "label": "City", "value": "New York" }, "MERCHANT_DETAILS_COUNTRY": { "label": "Country", "value": "United States" }, "MERCHANT_DETAILS_CONTACT": { "label": "Contact", "value": "12345678" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION": { "label": "Additional Information", "value": "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL": { "label": "Card", "value": "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT": { "label": "Account", "value": "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID": { "label": "AID", "value": "A0000000031010" }, "PAYMENT_DETAILS_SOURCE": { "label": "Entry Mode", "value": "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION": { "label": "Verification", "value": "No Verification" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER": { "label": "Transaction", "value": "545814" }, "CLEARING_DETAILS_AUTHORIZATION_CODE": { "label": "Authorization", "value": "831000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER": { "label": "Merchant ID", "value": "************st051" }, "CLEARING_DETAILS_TERMINAL_ID": { "label": "Terminal ID", "value": "****7069" }, "RECEIPT_TYPE": { "label": "Receipt Type", "value": "Cardholder Receipt" }, "TRANSACTION_TYPE": { "label": "Type", "value": "Payment" }, "SUBJECT": { "label": "Description", "value": "" }, "IDENTIFIER": { "label": "PWID", "value": "940d49ee94444764acb1c898e2254954" }, "AMOUNT_AND_CURRENCY": { "label": "Amount", "value": "USD$1.00" }, "DATE": { "label": "Date", "value": "9/20/2024" }, "TIME": { "label": "Time", "value": "3:53:36 AM" }, "STATUS_TEXT": { "label": "Information", "value": "Please retain receipt!" } }, "tipLineRequired": false, "totalLineRequired": false } } }, "merchantDetails": { "salesOrganizationId": "12345", "subMerchantId": "SM67890", "descriptorName": "ExampleMerchant" } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Sale with Tax Details
This section describes how to process a sale transaction with tax details when the app is
in Cloud mode. This type of transaction can be used to include the required tax details
as part of the sale transaction.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Processing a Sale with Tax Details
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toPaymentRequest.
- request.merchantReferenceCode
- Set this field to a unique, user-defined reference code. The code can consist of up to 50 alphanumeric characters, underscores (_), and dashes (-).
- request.amountDetails.amount
- Set this field to the transaction amount.
- request.amountDetails.currency
- Set this field to the currency code.
Optional Fields for Processing a Sale with Tax Details
Use one or more of the optional
taxDetails
fields to provide the
required tax details.- request.taxDetails.taxId
- Set this field to the merchant tax identifier.
- request.taxDetails.salesSlipNumber
- Set this field to the sales slip number.
- request.taxDetails.includedTaxAmount
- Set this field to the tax amount.
- request.taxDetails.includedLocalTaxAmount
- Set this field to the local tax amount.
- request.taxDetails.includedNationalTaxAmount
- Set this field to the national tax amount.
REST Example: Processing a Sale with Tax Details
Request
{ "serialNumber": "1850000000", "request": { "type": "PaymentRequest", "merchantReferenceCode": "058ed6c3430e436dab91b782f4113fd2", "amountDetails": { "amount": "20.00", "currency": "USD" }, "taxDetails": { "taxId": "TaxID1234", "salesSlipNumber": 12345678, "includedTaxAmount": "5.00", "includedLocalTaxAmount": "1.00", "includedNationalTaxAmount": "2.00" } } }
Response to a Successful Request
{ "type": "PaymentResponse", "message": "Payment approved", "transactionDetails": { "id": "4bebd72cf0ff4a9ea212baca0c6d9faf", "merchantReferenceCode": "058ed6c3430e436dab91b782f4113fd2", "submitTimeUtc": "2024-09-20T07:15:25+0000", "captured": true, "amountDetails": { "amount": "20.00", "currency": "USD", "capturedAmount": "20.00", "refundableAmount": "20.00" } }, "processingDetails": { "status": "APPROVED", "verificationMethod": "NONE", "entryMode": "NFC_ICC", "card": { "expirationMonth": "12", "expirationYear": "2025", "type": "VISA", "maskedPan": "476173XXXXXX0119", "countryCode": "840" } }, "additionalInformation": { "requestId": "7268165283576248404007" }, "linkedOperations": [], "receipts": { "merchantReceipt": { "preformattedReceipt": "Merchant Receipt\nTest\nSample Street 123\n34351 New York\nUnited States\n12345678\n\nPayment\nUSD$20.00\n\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: No Verification\n\nTransaction: 129702\nAuthorization: 831000\nMerchant ID: ************st051\nTerminal ID: ****7069\n\n\n4bebd72cf0ff4a9ea212baca0c6d9faf\n\n3:15:25 AM: 9/20/2024\n\n\n", "receiptData": { "signatureLineRequired": false, "lines": { "MERCHANT_DETAILS_PUBLIC_NAME": { "label": "Name", "value": "Test" }, "MERCHANT_DETAILS_ADDRESS": { "label": "Address", "value": "Sample Street 123" }, "MERCHANT_DETAILS_ZIP": { "label": "Zip", "value": "34351" }, "MERCHANT_DETAILS_CITY": { "label": "City", "value": "New York" }, "MERCHANT_DETAILS_COUNTRY": { "label": "Country", "value": "United States" }, "MERCHANT_DETAILS_CONTACT": { "label": "Contact", "value": "12345678" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION": { "label": "Additional Information", "value": "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL": { "label": "Card", "value": "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT": { "label": "Account", "value": "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID": { "label": "AID", "value": "A0000000031010" }, "PAYMENT_DETAILS_SOURCE": { "label": "Entry Mode", "value": "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION": { "label": "Verification", "value": "No Verification" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER": { "label": "Transaction", "value": "129702" }, "CLEARING_DETAILS_AUTHORIZATION_CODE": { "label": "Authorization", "value": "831000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER": { "label": "Merchant ID", "value": "************st051" }, "CLEARING_DETAILS_TERMINAL_ID": { "label": "Terminal ID", "value": "****7069" }, "RECEIPT_TYPE": { "label": "Receipt Type", "value": "Merchant Receipt" }, "TRANSACTION_TYPE": { "label": "Type", "value": "Payment" }, "SUBJECT": { "label": "Description", "value": "" }, "IDENTIFIER": { "label": "PWID", "value": "4bebd72cf0ff4a9ea212baca0c6d9faf" }, "AMOUNT_AND_CURRENCY": { "label": "Amount", "value": "USD$20.00" }, "DATE": { "label": "Date", "value": "9/20/2024" }, "TIME": { "label": "Time", "value": "3:15:25 AM" }, "STATUS_TEXT": { "label": "Information", "value": "Please retain receipt!" } }, "tipLineRequired": false, "totalLineRequired": false } }, "customerReceipt": { "preformattedReceipt": "Cardholder Receipt\nTest\nSample Street 123\n34351 New York\nUnited States\n12345678\n\nPayment\nUSD$20.00\n\nPlease retain receipt!\n\nCard: Payworks VISA\nAccount: **** **** **** 0119\nEntry Mode: Contactless\nAID: A0000000031010\nVerification: No Verification\n\nTransaction: 129702\nAuthorization: 831000\nMerchant ID: ************st051\nTerminal ID: ****7069\n\n\n4bebd72cf0ff4a9ea212baca0c6d9faf\n\n3:15:25 AM: 9/20/2024\n\n\n", "receiptData": { "signatureLineRequired": false, "lines": { "MERCHANT_DETAILS_PUBLIC_NAME": { "label": "Name", "value": "Test" }, "MERCHANT_DETAILS_ADDRESS": { "label": "Address", "value": "Sample Street 123" }, "MERCHANT_DETAILS_ZIP": { "label": "Zip", "value": "34351" }, "MERCHANT_DETAILS_CITY": { "label": "City", "value": "New York" }, "MERCHANT_DETAILS_COUNTRY": { "label": "Country", "value": "United States" }, "MERCHANT_DETAILS_CONTACT": { "label": "Contact", "value": "12345678" }, "MERCHANT_DETAILS_ADDITIONAL_INFORMATION": { "label": "Additional Information", "value": "" }, "PAYMENT_DETAILS_SCHEME_OR_LABEL": { "label": "Card", "value": "Payworks VISA" }, "PAYMENT_DETAILS_MASKED_ACCOUNT": { "label": "Account", "value": "**** **** **** 0119" }, "PAYMENT_DETAILS_EMV_APPLICATION_ID": { "label": "AID", "value": "A0000000031010" }, "PAYMENT_DETAILS_SOURCE": { "label": "Entry Mode", "value": "Contactless" }, "PAYMENT_DETAILS_CUSTOMER_VERIFICATION": { "label": "Verification", "value": "No Verification" }, "CLEARING_DETAILS_TRANSACTION_IDENTIFIER": { "label": "Transaction", "value": "129702" }, "CLEARING_DETAILS_AUTHORIZATION_CODE": { "label": "Authorization", "value": "831000" }, "CLEARING_DETAILS_MERCHANT_IDENTIFIER": { "label": "Merchant ID", "value": "************st051" }, "CLEARING_DETAILS_TERMINAL_ID": { "label": "Terminal ID", "value": "****7069" }, "RECEIPT_TYPE": { "label": "Receipt Type", "value": "Cardholder Receipt" }, "TRANSACTION_TYPE": { "label": "Type", "value": "Payment" }, "SUBJECT": { "label": "Description", "value": "" }, "IDENTIFIER": { "label": "PWID", "value": "4bebd72cf0ff4a9ea212baca0c6d9faf" }, "AMOUNT_AND_CURRENCY": { "label": "Amount", "value": "USD$20.00" }, "DATE": { "label": "Date", "value": "9/20/2024" }, "TIME": { "label": "Time", "value": "3:15:25 AM" }, "STATUS_TEXT": { "label": "Information", "value": "Please retain receipt!" } }, "tipLineRequired": false, "totalLineRequired": false } } }, "taxDetails": { "taxId": "TaxID1234", "salesSlipNumber": 12345678, "includedTaxAmount": "5.00", "includedLocalTaxAmount": "1.00", "includedNationalTaxAmount": "2.00" } }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Printing a Customer or Merchant Receipt
This section describes how to print a customer or merchant receipt from a previous transaction when the app is in Cloud mode. This feature can be used only with terminals that have integrated printers.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST https://terminalstest.cybersource.com/v1/cloud/transactions
Production:
POST https://terminals.cybersource.com/v1/cloud/transactions
Required Fields for Printing a Customer or Merchant Receipt
- serialNumber
- Set this field to the serial number of the terminal.
- request.type
- Set this field toPrintReceiptRequest.
- request.transactionId
- Set this field to the ID field value from the original transaction.
- request.receiptType
- Set this field toCUSTOMERorMERCHANT.
REST Example: Printing a Customer or Merchant Receipt
Request
{ "serialNumber": "1850000000", "request": { "type": "PrintReceiptRequest", "transactionId": "8fe5fa21d0814424bcec4997c9dc89c4", "receiptType": "CUSTOMER" } }
Response to a Successful Request
{ "type": "PrintReceiptResponse", "message": "Receipt printed successfully." }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Receiving Transaction Responses Asynchronously
This section describes how to receive transaction responses asynchronously when the app
is in Cloud mode. There is a follow-on service for this type of request. For more
information, see Processing a Check Transaction Events.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
Test:
POST
https://terminalstest.cybersource.com/v1/cloud/transactions/async
Production:
POST
https://terminals.cybersource.com/v1/cloud/transactions/async
Receiving Transaction Responses Asynchronously
Asynchronous endpoints can be used to receive transaction responses for most types of
transaction requests when the app is in Cloud mode.
Follow these steps to receive transaction responses asynchronously:
- Use the asynchronous endpoints shown in the example to process a transaction and receive an interaction identifier. The example shows how to process a sale asynchronously.
- After the transaction is completed, use the interaction identifier returned in the response to check the transaction events and to get a transaction identifier.
- Use the transaction identifier to process a Check Transaction Status request. The response will contain full transaction and receipt details. For more information, see Requesting a Check Transaction Status.
REST Example: Processing a Sale Asynchronously
Request
{ "serialNumber": "1850000000", "request": { "type": "PaymentRequest", "merchantReferenceCode": "058ed6c3430e436dab91b782f4113fd2", "amountDetails": { "amount": "1.00", "currency": "GBP" } } }
Response to a Successful Request
{ "interactionId": "0c292d7f-6bf9-460c-afc3-d75c189f2f99" }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Processing a Check Transaction Events
This section describes how to process a Check Transaction Events request when the app is
in Cloud mode. This type of request is a follow-on service for receiving transaction
responses asynchronously. For more information, see Receiving Transaction Responses Asynchronously.
Generate a bearer token before sending each request. For more information, see Generating a Bearer Token for Authentication.
Endpoints
The GET request must include the interaction identifier
(
interactionId
).Test:
GET
https://terminalstest.cybersource.com/v1/cloud/interactions/{interactionId}/events
Production:
GET
https://terminals.cybersource.com/v1/cloud/interactions/{interactionId}/events
Required Fields for Processing a Check Transaction Events
The body of the API request is empty. The GET request must include the information
required to return the response. If you want to receive only the latest transaction
event, set a query parameter of
limit=1
.REST Example: Processing a Check Transaction Events
Request
The body of the request is empty. The GET request includes the information required to return the response.
{ }
Response to a Successful Request
{ "interactionId": "0c292d7f-6bf9-460c-afc3-d75c189f2f99", "transactionEvents": [ { "type": "PaymentResponse", "message": "Payment approved", "transactionId": "c9f966ef0e0e4a9186c0cfb75c90841a", "createdAt": "2024-05-28 13:11:30:939" }, { "type": "TransactionStatusResponse", "message": "Payment approved", "createdAt": "2024-05-28 13:11:30:556" }, { "type": "TransactionStatusResponse", "message": "Processing payment...", "createdAt": "2024-05-28 13:11:28:928" }, { "type": "TransactionStatusResponse", "message": "1.00 GBP - Present card", "createdAt": "2024-05-28 13:11:28:093" }, { "type": "TransactionStatusResponse", "message": "1.00 GBP - Present card", "createdAt": "2024-05-28 13:11:27:439" }, { "type": "TransactionStatusResponse", "message": "1.00 GBP - Present card", "createdAt": "2024-05-28 13:11:27:217" }, { "type": "TransactionStatusResponse", "message": "Registering transaction", "createdAt": "2024-05-28 13:11:27:022" }, { "type": "TransactionStatusResponse", "message": "Registering transaction", "createdAt": "2024-05-28 13:11:26:485" }, { "type": "TransactionStatusResponse", "message": "Connecting to card reader", "createdAt": "2024-05-28 13:11:24:649" }, { "type": "AcknowledgementResponse", "createdAt": "2024-05-28 13:11:23:823" } ] }
Response to an Unsuccessful Request
If the request is unsuccessful, you receive an error response with details.
{ "type": "ErrorResponse", "message": "Error message to display.", "developerDescription": "Detailed description of error." }
Standalone Mode Payment Services
This section describes how to process payment services featured in the Acceptance Devices
app when operated in Standalone mode.
These are some benefits of using Standalone mode:
- Start transactions directly from the terminal.
- Quickest way to start accepting transactions.
- Does not require integration with a point-of-sale (POS) system.
- Can be used as a back-up option for accepting payments when your POS system is unavailable to operate in Local or Cloud semi-integrated modes.
IMPORTANT
When the Acceptance Devices app is operating in Standalone mode, the
terminal does not communicate with your POS system to share transaction details. You are
responsible for managing transaction reconciliation with your systems and
records.
For information about other modes available in the Acceptance Devices app, see:
Enabling Standalone Mode in the Acceptance Devices App
Follow these steps to enable Standalone mode in the Acceptance Devices
app:
- In the Acceptance Devices app, tapSettings.
- Enter your Acceptance Devices app passcode.
- TapStandalone Mode.
- Toggle Enable Standalone Mode toON.
- Choose the currency in which you want to process transactions. TapSave.
- If you want to enable custom merchant reference codes, toggle Custom Transaction Reference toON.
- Tap the back navigation arrow to return to the home screen. You can now process transactions in Standalone mode.
Processing a Sale
This section describes how to process a sale transaction when the app is in
Standalone mode. This type of transaction combines an authorization and a capture
into a single transaction.
Follow these steps to process a sale transaction:
- In the Acceptance Devices app, tapSale.
- Enter the transaction amount.
- TapSubmitto start the transaction.
Processing a Refund
This section describes how to process a refund when the app is in Standalone mode.
This type of refund includes a reference to the original transaction for a full or
partial transaction amount.
Stand-alone credits are also supported in this Acceptance Devices solution. For more
information, see Processing a Stand-Alone Credit.
Follow these steps to process a refund:
- In the Acceptance Devices app, tapSettings.
- Enter your Acceptance Devices app passcode.
- TapTransaction History.
- Tap the transaction you want to refund.
- Enter the transaction amount.
- TapRefundto start the transaction.
Processing a Stand-Alone Credit
This section describes how to process a stand-alone credit when the app is in
Standalone mode. This type of transaction is used to process a credit without
reference to the original transaction. The customer is required to present their
card for this type of transaction.
WARNING
When processing a stand-alone credit, there is no limit on the credit amount
because there is no reference to the original transaction amount. The
recommendation is to use a refund transaction whenever possible. For more
information, see Processing a Refund.
Follow these steps to process a stand-alone credit:
- In the Acceptance Devices app, tapOther Transactions.
- TapRefund.
- Enter your Acceptance Devices app passcode.
- Enter the transaction amount.
- TapSubmitto start the transaction.
Processing a Sale with On-Reader Tipping
This section describes how to process a sale with on-reader tipping in Standalone
mode. At the start of each transaction, the terminal prompts the customer to add a
tip by showing suggested tip amounts. The customer selects or enters a tip amount on
the terminal before presenting their payment card.
Follow these steps to process a sale with on-reader tipping:
- In the Acceptance Devices app, tapSettings.
- Enter your Acceptance Devices app passcode.
- TapStandalone Mode.
- Toggle Ask for Tip toON.
- Tap the back navigation arrow to return to the home screen.
- TapSale.
- Enter the transaction amount.
- TapSubmitto start the transaction.
Processing a Pre-Authorization
This section describes how to process a pre-authorization for an initial amount in
Standalone mode. A pre-authorization transaction places a temporary hold on the
customer's payment card. The transaction amount can be captured at a later time.
Most authorizations expire in 5 to 7 days. The issuing bank sets the length of time
before expiration. When an authorization expires with the issuing bank, your bank or
processor might require you to re-submit an authorization request and include a
request for capture in the same message. For more information, see Processing a Capture.
Follow these steps to process a pre-authorization:
- In the Acceptance Devices app, tapOther Transactions.
- TapPre-Authorization.
- Enter the transaction amount.
- TapSubmitto start the transaction.
Processing a Capture
This section describes how to capture a pre-authorized transaction in Standalone
mode. The capture request references the approved pre-authorization request.
Follow these steps to process a capture:
- In the Acceptance Devices app, tapSettings.
- Enter your Acceptance Devices app passcode.
- TapTransaction History.
- Tap the transaction you want to capture.
- TapCapture.
- Enter the transaction amount.
- TapCaptureto start the transaction.
Processing a Mail Order or Telephone Order Sale
This section describes how to process a mail order or telephone order (MOTO) sale in
Standalone mode. The payment card is not physically tapped, inserted, or swiped in
the terminal for a MOTO transaction.
Follow these steps to process a MOTO sale:
- In the Acceptance Devices app, tapOther Transactions.
- TapMOTO.
- Enter the transaction amount.
- TapSubmitto start the transaction.
Processing an Account Verification
This section describes how to process an account verification when the app is in
Standalone mode. The account verification transaction submits a zero-amount
authorization request to validate the payment card.
Follow these steps to process an account verification:
- In the Acceptance Devices app, tapOther Transactions.
- TapAccount Verificationto start the transaction.
Processing an Offline Transaction
This section describes how to enable and disable Offline mode when the app is in
Standalone mode. When internet connectivity is not available, you can use this mode to
process offline sale and refund transactions.
Offline mode is a feature that you can enable and customize in the
Business Center
. The default setting is Disabled
. For more information, see Customizing the Acceptance Devices App.WARNING
By using this feature, you assume the risk of failed transactions,
increased fraud, and increased chargebacks. Process offline transactions only if
required, such as when your internet connection is unavailable. The recommendation is to
process online sale transactions instead. For more information, see Processing a Sale.
When internet connectivity is available, you must submit the offline transactions batch
for authorization while in Offline mode.
Enabling or Disabling Offline Mode
IMPORTANT
The recommendation is to resume operating in online mode as soon
as internet connectivity is available. In order to do so, you must first disable
Offline mode.
Follow these steps to enable or disable Offline mode:
- In the Acceptance Devices app, tapSettings.
- Enter your Acceptance Devices app passcode.
- TapOffline Mode.
- Toggle Enable Offline Mode toONorOFF.
- Tap the back navigation arrow to return to the home screen.
Processing an Offline Sale
Follow these steps to process an offline sale with Offline mode enabled:
- In the Acceptance Devices app, tapSale.
- Enter the transaction amount.
- TapSubmitto start the transaction.
Processing an Offline Refund
Follow these steps to process an offline refund with Offline mode enabled:
- In the Acceptance Devices app, tapSettings.
- Enter your Acceptance Devices app passcode.
- TapOffline Mode.
- Tap the transaction you want to refund.
- TapRefund.
- Enter the transaction amount.
- TapRefundto start the transaction.
Submitting an Offline Transactions Batch for Authorization
IMPORTANT
The recommendation is to submit the batch as soon as internet
connectivity is available. Offline mode must be enabled before you can submit a
batch for authorization.
Follow these steps to submit an offline transactions batch for authorization with
Offline mode enabled:
- In the Acceptance Devices app, tapSettings.
- Enter your Acceptance Devices app passcode.
- TapOffline Mode.
- TapSubmit Offline Batch.
Processing a Sale with Installment Details
This section describes how to process a sale transaction with installment details
when the app is in Standalone mode. This type of transaction can be used to include
the required installment details as part of the sale transaction.
This transaction is available only in the Latin American and Caribbean (LAC)
region.
Follow these steps to process a sale transaction with installment details:
- In the Acceptance Devices app, tapSettings.
- Enter your Acceptance Devices app passcode.
- TapStandalone Mode.
- TapInstallment Details.
- Toggle Enable Installment Details toON.
- Configure the installment details.
- Tap the back navigation arrow to return to the home screen.
- TapSale.
- Enter the transaction amount.
- TapSubmitto start the transaction.
Processing a Sale with Tax Details
This section describes how to process a sale transaction with tax details when the
app is in Standalone mode. This type of transaction can be used to include the
required tax details as part of the sale transaction.
Follow these steps to process a sale transaction with tax details:
- In the Acceptance Devices app, tapSettings.
- Enter your Acceptance Devices app passcode.
- TapStandalone Mode.
- TapTax Details.
- Toggle Enable Tax Details toON.
- Configure the tax details.
- Tap the back navigation arrow to return to the home screen.
- TapSale
- Enter the transaction amount.
- TapSubmitto start the transaction.
Printing a Customer or Merchant Receipt
This section describes how to print a customer or merchant receipt from a previous
transaction when the app is in Standalone mode. This feature can only be used with
terminals that have integrated printers.
Follow these steps to print a customer or merchant receipt:
- In the Acceptance Devices app, tapSettings.
- Enter your Acceptance Devices app passcode.
- TapTransaction History.
- Tap the transaction for which you want to email the receipt.
- TapPrint Customer ReceiptorPrint Merchant Receipt.
Emailing a Customer Receipt
This section describes how to email a customer receipt from a previous transaction
when the app is in Standalone mode.
Follow these steps to email a customer receipt:
- In the Acceptance Devices app, tapSettings.
- Enter your Acceptance Devices app passcode.
- TapTransaction History.
- Tap the transaction for which you want to email the receipt.
- TapSend Receipt.
Release Notes for PAX Acceptance Devices App
These release notes are organized by release name and version, from newest to oldest.
Each release note includes these details:
- Name of release
- Type of release: app or SDK
- Version number
- Operating system: Android or iOS
- Release date: MM-DD-YYYY format
- General information
- Improvements
- New features
- Fixed issues
- Updated requirements
- Security updates
- Hot fixes
Acceptance Devices App Version 1.15.0 Release Notes
These release notes are for the Acceptance Devices app, version 1.15.0 for Android, which is used in the PAX Acceptance Devices App and Tap to Pay on Android Acceptance Devices App. The release date is 08-21-2025.
New Features
- Added the ability to configure the transaction history to show all transactions from the merchant or show only transactions from the device.
- Added the ability to customize user interface parameters.
Improvements
Updated the SDK version to 2.103.1.
Fixed Issues
Tap to Pay: Fixed the issue that caused the app to occasionally crash after installing
the Tap to Pay Ready app during the activation process.
Acceptance Devices App Version 1.14.0 Release Notes
These release notes are for the Acceptance Devices app, version 1.14.0 for Android, which
is used in the PAX Acceptance Devices App and Tap to Pay on Android Acceptance Devices
App. The release date is 07-07-2025.
New Features
Tap to Pay: The solution is now PCI-MPoC compliant, which requires the Tap to Pay Ready
app to be installed on the Android devices used to process transactions. After upgrading
to this version of the Acceptance Devices app, re-enroll your devices.
Improvements
- Tap to Pay: The process used to select the currency in Standalone mode is now automated and based on the merchant configuration.
- Updated the SDK version to 2.102.0.
Acceptance Devices App Version 1.13.0 Release Notes
These release notes are for the Acceptance Devices app, version 1.13.0 for Android, which
is used in the PAX Acceptance Devices App and Tap to Pay on Android Acceptance Devices
App. The release date is 06-18-2025.
Improvements
- Improved the reconnect mechanism when using the app in Cloud mode.
- Updated the SDK version to 2.101.1.
Acceptance Devices App Version 1.12.0 Release Notes
These release notes are for the Acceptance Devices app, version 1.12.0 for Android, which
is used in the PAX Acceptance Devices App and Tap to Pay on Android Acceptance Devices App. The release date is 05-13-2025.
Improvements
- Updated the UI to use Google Material Design 3.
- Updated the SDK version to 2.100.0.
Archive of Release Notes
This archive of release notes for the PAX Acceptance Devices App and Tap to Pay on Android Acceptance Devices App is organized by release name and version, from newest to
oldest. For more information, see the current release notes.
Each release note includes these details:
- Name of release
- Type of release: app or SDK
- Version number
- Operating system: Android or iOS
- Release date: MM-DD-YYYY format
These are the types of release notes published:
- General information
- Improvements
- New features
- Fixed issues
- Updated requirements
- Security updates
- Hot fixes
Acceptance Devices App Version 1.11.0 Release Notes
These release notes are for the Acceptance Devices app, version 1.11.0 for Android, which
is used in the PAX Acceptance Devices App and Tap to Pay on Android Acceptance Devices App. The release date is 04-14-2025.
Improvements
- Improved the experience when using the app with the Arabic language.
- Tap to Pay: Improved the error messages that can appear during enrollment.
- Updated the SDK version to 2.99.0.
Fixed Issues
Fixed the issue that caused the language not to change correctly when switching to Arabic.
Acceptance Devices App Version 1.10.0 Release Notes
These release notes are for the Acceptance Devices app, version 1.10.0 for Android, which
is used in the PAX Acceptance Devices App and Tap to Pay on Android Acceptance Devices App. The release date is 03-05-2025.
New Features
Added Arabic as a supported language.
Improvements
- Tap to Pay: Improved the device enrollment experience by removing the need to provide an International Mobile Equipment Identity (IMEI) number. After upgrading to Acceptance Devices app version 1.10.0, devices must be re-enrolled.
- Updated the SDK version to 2.98.0.
Acceptance Devices App Version 1.9.0 Release Notes
These release notes are for the Acceptance Devices app, version 1.9.0 for Android, which
is used in the PAX Acceptance Devices App and Tap to Pay on Android Acceptance Devices App. The release date is 02-03-2025.
New Features
Added the ability to print a customer or merchant receipt when using a terminal with an
integrated printer.
Improvements
- Tap to Pay: Added a device requirements screen during the set-up process.
- Improved the validation process when entering an activation code so that it accepts only 8 characters.
- Improved the app behavior when attempting to access transaction history when the internet connection is not available.
- Improved the reconnect mechanism when using the app in Cloud mode.
- The mid-transaction status updates now indicate if the current transaction can be cancelled.
- Updated the SDK version to 2.97.0.
Acceptance Devices App Version 1.8.0 Release Notes
These release notes are for the Acceptance Devices app, version 1.8.0 for Android, which
is used in the PAX Acceptance Devices App and Tap to Pay on Android Acceptance Devices App. The release date is 10-31-2024.
Improvements
Updated the SDK version to 2.95.0.
Fixed Issues
Fixed the issue that caused today's transactions to not appear in the transaction history if the end date was manually set to
Today
.Acceptance Devices App Version 1.7.0 Release Notes
These release notes are for the Acceptance Devices app, version 1.7.0 for Android, which
is used in the PAX Acceptance Devices App and Tap to Pay on Android Acceptance Devices App. The release date is 09-30-2024.
New Features
- Added the ability to provide these details when performing a transaction:
- Payment facilitator details.
- Tax details.
- Installment details for the Latin America and Caribbean (LAC) region.
- Added support for additional languages in the Acceptance Devices app.
- Acceptance Devices app can now be used with Tap to Pay.
Improvements
Updated the SDK version to 2.94.0.
Fixed Issues
- Fixed the issue that caused the Acceptance Devices app to crash when an unsupported character was entered during activation code entry.
- Fixed the issue that caused the Print Receipt button to appear on the Summary screen of devices without a printer.
Acceptance Devices App Version 1.6.0 Release Notes
These release notes are for the Acceptance Devices app, version 1.6.0 for Android, which
is used in the PAX Acceptance Devices App and Tap to Pay on Android Acceptance Devices App. The release date is
07-22-2024.
Improvements
- Acceptance Devices app server now provides the full certificate chain for TLS.
- Transaction summary reports can now show multiple currencies.
- Improved the UI on several screens.
- Improved the WebSocket connection handling.
- Updated the SDK version to 2.92.0.
Acceptance Devices App Version 1.5.0 Release Notes
These release notes are for the Acceptance Devices app, version 1.5.0 for Android, which
is used in the PAX Acceptance Devices App and Tap to Pay on Android Acceptance Devices App. The release date is 06-25-2024.
New Features
- Added the option to set a custom merchant reference code for transactions when the Acceptance Devices app is in Standalone mode.
- Signature capture type can now be set toNONEto skip signature capture.
- Added support for the Oracle Payment Interface.
Improvements
- PAX IM30: Settings button is now hidden.
- Settings menu now has an idle timeout of 2 minutes for the PAX IM30 and 5 minutes for all other supported PAX devices.
- Status notification now indicates when a device is operating in Standalone mode.
- Updated the SDK version to 2.91.0.
Fixed Issues
- Fixed the issue that caused POS Setup to fail when you attempt set up again after canceling.
- Fixed the issue that caused Offline mode not to be shown when the Acceptance Devices app is in Cloud with Standalone mode.
- PAX A35: Fixed the issue that caused some text in the transaction summary report to not display correctly.
Acceptance Devices App Version 1.4.0 Release Notes
These release notes are for the Acceptance Devices app, version 1.4.0 for Android, which
is used in the PAX Acceptance Devices App and Tap to Pay on Android Acceptance Devices App. The release date is 05-29-2024.
New Features
- Added support for PAX IM30 and PAX A920 MAX devices.
- Added support for asynchronous responses for transactions when the Acceptance Devices app is in Cloud mode.
Improvements
Updated the SDK version to 2.90.0.
Fixed Issues
- Fixed the issue that rarely caused the app to crash when an invalid request was attempted.
- Fixed the issue that caused null receipt fields to be shown in the response when processing an offline transaction.
Acceptance Devices App Version 1.3.0 Release Notes
These release notes are for the Acceptance Devices app, version 1.3.0 for Android, which
is used in the PAX Acceptance Devices App and Tap to Pay on Android Acceptance Devices App. The release date is 04-23-2024.
New Features
Acceptance Devices App now supports:
- Offline transactions (also known asdeferred authorizationorstore and forward) in Local and Standalone modes
- On-receipt tipping in Local mode
- Cloud mode
- Transaction summary reports
Improvements
- Added support for TLS v1.3.
- Removed support for TLS v1.0 and TLS v1.1.
- Updated the SDK version to 2.88.0.
Fixed Issues
- Fixed the issue that caused the transaction history not to display transactions when the PAX terminal was set to certain time zones.
- PAX A35 terminal: Fixed the issue that caused the Acceptance Devices app not to auto-start.
Acceptance Devices App Version 1.2.0 Release Notes
These release notes are for the Acceptance Devices app, version 1.2.0 for Android, which
is used in the PAX Acceptance Devices App and Tap to Pay on Android Acceptance Devices App. The release date is 01-31-2024.
Improvements
- Capture API requests now returnCaptureResponsein theTypefield.
- If there is no internet access, the Start Server button is not available in the Acceptance Devices app.
- Improved the responsiveness of the Settings menu.
- Updated the SDK version to 2.86.
Fixed Issues
- Fixed the issue that caused the Acceptance Devices app to crash occasionally when starting a transaction from the background.
- On the Enter Amount screen, fixed the issue that caused the Backspace key to not work properly for some keyboard settings.
- On the PAX A35 terminal, fixed the issue that caused the green and red physical buttons to be ignored on the Passcode screen.
- Fixed the issue that caused authentication to fail after reactivation when operating in Standalone mode.
Acceptance Devices App Version 1.1.0 Release Notes
These release notes are for the Acceptance Devices app, version 1.1.0 for Android, which
is used in the PAX Acceptance Devices App and Tap to Pay on Android Acceptance Devices App. The release date is 12-22-2023.
New Features
- Acceptance Devices protocol:The Acceptance Devices app features the new, streamlined Acceptance Devices protocol. This protocol replaces the ATICA (ISO20022) protocol and is the default integration method for the PAX Acceptance Devices App.
- WebSockets support:The Acceptance Devices app now supports WebSockets, enabling a two-way connection between the point-of-sale (POS) system and the terminal.
- Standalone mode:A new standalone operating mode was added to the Acceptance Devices app. This mode enables merchants to enter transaction amounts directly on the terminal.
- Transaction history:Merchant transaction history is now accessible from the Settings menu in the Acceptance Devices app. This feature includes quick filtering options and linked operations.