| ❗ IMPORTANT NOTICE |
|---|
| 2026-07-09: We're currently experiencing issues with local terminal connections when using a new SAP Machine version above 17.0.16. To be on the safe side: Do NOT update until further notice. |
IMPORTANT CHANGES
With Version 1.1.0 of the plugin the handling of the Adyen certificates was changed. A java keystore is introduced.
With Version 1.1.1 of the plugin SAP CCO FP16 and FP17 is not supported anymore.
With Version 1.3.1 the Adyen SAP CCO Integration requires Java 17!
- Supported Features
- Prerequisites
- Installation and Configuration
- Tap2Pay (Android)
- Cloud Connection
- Tokenization (Card on File)
- Pre-Authorization (Hotels / Car Rentals)
- Signature Capture
- Troubleshooting
- changelog
- Card payments via Adyen terminals in SAP Customer Checkout
- Payments
- Split-Payments
- Referenced and Unreferenced Refunds including threshold definition
- Tipping
- Cash desk closing – autofill card values
- multi-currency handling
- customizable merchant reference
- Dynamic terminal selection for shared POS setups
- Tap2Pay on Android with the Adyen payments app
- Recurring payments, mandate mode, and 0-Euro tokenization
- Pre-Auth with Cross-register flow, auto-capture, auto-cancel, and void protection
- receipt-driven signature, and translation support
- Adyen Test Account
- Adyen Payment terminal
- SAP Customer Checkout
- Adyen API Key (if dynamic terminal choice is used)
Prior to version 1.1.0
Download the Adyen certificates from here, rename them as shown, and place them also in the AP folder.
With version 1.1.0 and later
The plugin now automatically provides certificates with the certificates that were released by Adyen at the day of the plugin release.
The plugin will automatically create a java keystore file in CCOs AP folder.
You can also define a different path to the java keystore containing the Adyen certificates as well as a different password with the two new plugin properties:
- ADYEN_KEY_STORE_FILE_PATH
- ADYEN_KEY_STORE_PASSWORD
Please restart CCO if you changed anything related to the key store.
Certificates usually have a valid to date. In case of the current Adyen certificates it is 2048. In the unlikely event, that these certificates
need to be updated in the keystore, please follow these instructions. You can also use tools like "keystore explorer" if you are unfamiliar with cli commands.
- adyen-live.pem → Entry name: adyen-terminalfleet-live
- adyen-test.pem → Entry name: adyen-terminalfleet-test
- Java Development Kit (JDK)
- The "keytool" command-line utility is included in the JDK.
- Ensure JDK is installed and added to your system path.
- If not installed, refer to official documentations on how to install JDK.
- Existing Java Keystore (adyen-cco-plugin.jks)
- If the file does not exist, it will be created when the Adyen plugin is loaded from CCO.
- Keystore Password
- You must know or be in possession of the keystore password.
- Open Command Prompt (cmd.exe) as Administrator in Windows or the terminal in macOS
- Navigate to the directory containing the keystore and the certificates usually CCOs AP folder
cd path\to\APfolder
- Import or update the adyen-live.pem certificate:
keytool -importcert -trustcacerts -alias adyen-terminalfleet-live -file adyen-live.pem -keystore adyen-cco-plugin.jks -storepass YOUR_KEYSTORE_PASSWORD -noprompt
- Import or update the adyen.test.pem certificate:
keytool -importcert -trustcacerts -alias adyen-terminalfleet-test -file adyen-test.pem -keystore adyen-cco-plugin.jks -storepass YOUR_KEYSTORE_PASSWORD -noprompt
- Verify that both certificates are correctly imported:
keytool -list -keystore adyen-cco-plugin.jks -storepass YOUR_KEYSTORE_PASSWORD
Restart CCO and look for any error messages from the plugin while CCO starts up.
Please log into your Adyen account and create a new store for your merchant account.
A: Add Store reference for example e.g. A25
B: Add Store description
C: Add information which is shown on the shopper receipt
Add address and phone number and add the store. Afterward assign your terminal to your newly created store. To achieve this, go to In-person payments → Terminals. Click on the button "..." of the terminal and choose "Reassign".
Connect your terminal to your local network. Either with LAN or via Wifi. Please consult the manuals for your specific terminal [here](Get started manuals | Adyen Docs).
Note: Usually the terminal has to be in the same network as the CCO instance. If this is not the case or not possible, please talk to your network administrators.
Start your SAP CCO instance, login as User with administrative privileges, and go to the configuration backend. In the tab Accounting open the subtab Credit Card Type.
Add a new credit card which will trigger the payment transaction on the Adyen terminal. The card can be called Adyen but you can name the new card as you like. Set the visibility of all other cards (except the ones not handled by the payment terminal) to Visible = OFF but keep them active. The Adyen card should be visible.
| KEY | VALUES |
|---|---|
| ADYEN_ACTIVATE_DYNAMIC_TERMINAL | true / false If true is selected, the terminal is not linked to a single POS. When by card at the checkout, the cashier is asked which terminal should be used. This can be usefull, if you use CCO on a tablet and the POS has not a fixed location in the store. Note: The API Key has also be provided. |
| ADYEN_ACTIVATE_UNREFERENCED_REFUNDS | true / false Handles refunds only allowed with a referenced payment from an older receipt. This has to be activated by Adyen. Please consult your Adyen contact person. |
| ADYEN_API_KEY | XSA2342FEFASFEF This can be created in your Adyen backend in the section Developers / API credentials. Note: The permission to use the terminal management API has to be activated by Adyen. Please consult your Adyen contact. |
ADYEN_CARD_MAPPING![]() |
mc=3;amex=1;visa=2;visa_applepay=2;maestro=5 The Adyen terminal will respond with an alphanumeric code as represenation for the card being used. The codes can be found here. This alphanumeric code has to be mapped to a specific credit card in CCO. The mapping works with an imaginary wildcard. This means, if you want to map all visa payment methods to CCO card 2 except visa_applepay and visabusiness, the mapping for visa could look like this: visa=2;visa_applepay=3;visabusiness=5 |
| ADYEN_COMPANY_ACCOUNT | samplecompany The ID of your company. Seen in the Adyen Backend. ![]() |
| ADYEN_CREATE_NEW_ABSTRACT_PAYMENT_ITEM | true / false If false is selected, after a failed card payment, the cashier can choose a different payment method for the next try e.g. cash. If true is selected, the plugin will automatically add a new payment item of type card payment to retry the payment on the terminal. |
| ADYEN_EXCLUDE_CARD_IDS | 1;1337;9234 Codes of CCO credit cards, that should not be handled by the Adyen terminal. |
| ADYEN_FALLBACK_CARD | 3 Indicates which credit card should be used, if the terminal responds with a payment method which is not mapped in ADYEN_CARD_MAPPING. |
| ADYEN_FALLBACK_SERIAL_NUMBER | AMS1-00000000000000000 Serial number of the payment terminal which is used when ADYEN_ACTIVATE_DYNAMIC_TERMINAL is set to false. Note: The serial number of the terminal is visible in the Adyen backend. It's not the serial number printed on the device itself! |
| ADYEN_FALLBACK_TERMINAL | https://192.168.13.37 Specifies the IP address of the payment terminal which is used when ADYEN_ACTIVATE_DYNAMIC_TERMINAL is set to false. |
| ADYEN_IS_TEST_ENV | true / false Set this property according to the intended use. |
| ADYEN_KEY_IDENTIFIER ADYEN_KEY_PASSPHRASE ADYEN_KEY_VERSION |
IDENTIFIER PASSPHRASE 1 This parameters can be configured either on store level or on terminal level. E.g. go to In- person payments / Stores / Integrations or In-person payments / Terminals / Integrations Note: For the sake of security please use a generated Identifier and Passphrase and treat them like passwords! Note: When using the ADYEN_DYNAMIC_TERMINAL_CHOICE feature all terminals in one store need to use the same values! Therefore it is recommended to configure this on store level rather than terminal level. |
| ADYEN_MERCHANT_ACCOUNT | SampleMerchant Select your corresponding merchant account Id. ![]() |
| ADYEN_PAYMENT_REFERENCE_PATTERN | ${cco_prefix} You can configure how the merchant reference should look like. You can see this in the Adyen backend transactions / payments in column Merchant reference. This can become handy if you need IDs from CCO for mapping payments in your ERP system. Possible placeholder: cco_prefix - Your CCO prefix receipt_id - Your CCO receipt id transaction_amount - The amount for the payment transaction transaction_currency - The currency for the payment transaction transaction_timestamp - The timestamp of the transaction terminal_serial_number - The serial number of the terminal used terminal_display_label - The configured display label of the terminal Note: The string can be max. 80 characters. Any characters exceeding this will not be transferred. |
| ADYEN_STORE_ID | A15 The ID of the store in which the terminal was boarded. |
| ADYEN_TERMINAL_CONNECTION_TIMEOUT | 10000 Value in milliseconds how long the plugin will wait for a connection. If you experience slow network connections in your store, please adjust this timeout accordingly. |
| ADYEN_TERMINAL_READ_TIMEOUT | 120000 Value in milliseconds how long the terminal will wait for the shoppers card to be presented. Note: The processing time of a payment transaction is included into this timeout. This means the timeout will also occur, if the card was presented at ms 119999 and the processing takes > 1 ms. |
| ADYEN_PRINT_KEY_FILTER | The terminal will send the merchant and customer payment receipt in a key-value structure. By providing unwanted keys spearated with semicolon, you can hide certain info on the print out. Available keys can be found here aid |
| ADYEN_USE_TAP_TO_PAY | Flag to activate the Tap2Pay Feature |
| ADYEN_PAYMENT_APP_INSTALLATION_ID | Don't set this field. It will be automatically set when the payment app is boarded |
| ADYEN_BOARD_PAYMENT_APP_ON_STORE_LEVEL | Set this flag if the Adyen payments app should be boarded on store level. |
| ADYEN_KEY_STORE_FILE_PATH | Will be set automatically with the first startup. Change only if needed! |
| ADYEN_KEY_STORE_PASSWORD | Will be set automatically initially to "changeit". Please consider changing it in a production environment! |
| ADYEN_USE_CLOUD_CONNECTION | Set to true, if you want to use Cloud Connection feature. |
| ADYEN_CLOUD_ENDPOINT | This is the endpoint for Cloud Connection. Communication is synchronous. See the current values for test or live here Adyen Terminal Cloud Connection |
Restart your CCO instance after the config. If any mandatory plugin property is missing, you will get a warning after the next login.
The dynamic terminal choice feature allows the cashier to dynamically select an active Adyen terminal on store level.
In a mobile POS setup, this allows the cashier to work without having to carry a payment terminal, and instead use whichever terminal is currently available nearby.
Or you could share one terminal for multiple CCO instances. Cashiers can select a standard terminal for all upcoming payment transactions until logout or removed manually.
The manual selection or removing can be achieved with the documented quickselection buttons.
To use the dynamic terminal choice feature, the Adyen API key needs to have the following roles. Some may only be activated by Adyen itself.
Please consult your contact person.
- Management API — Stores read
- Management API — Stores read and write
- Management API — Terminal actions read
- Management API — Terminal settings read
- Management API — Terminal settings read and write
- Management API — Terminal actions read
Some restrictions may apply:
- Key identifier, passphrase, and key version must be the same on store level for all terminals
This is only applicable, if you intend to use the ADYEN_DYNAMIC_TERMINAL_CHOICE feature. With these buttons the cashier can choose his "standard" terminal or delete his prior choice even without an open receipt or running payment transaction.
Add a new quickselection button in CCO Manager and add the following string into the Extended JavaScript input field.
"event" : { "eventName" : "ADY_ADD_STANDARD_TERMINAL_CHOICE" }
Add a new quickselection button in CCO Manager and add the following string into the Extended Javascript input field.
"event" : { "eventName" : "ADY_REMOVE_STANDARD_TERMINAL_CHOICE" }
With Version 1.3.0 you can use the Tap2Pay feature on android. Contact Adyen to activate the Tap2Pay functionality for your account.
For further info please consult the official Adyen docs here.
To get SAP Customer Checkout running on android, please contact hokona to obtain their CCO on Android solution.
- Install the Adyen payments (test) app via the Google Play Store
- have a SAP CCO running on android
- have file system access to the android device.
- Ensure Android USB-Debugging is off
- Create an API Key with the role "Adyen Payments App Role" and also create a client key (is created on the same page where the api key is created)

- After the installation of the Adyen payments (test) app please open it once.
- Ensure the following plugin properties have been set correctly
- Company Account
- Merchant Account
- Key Identifier (use the one set at store-level)
- Key Passphrase (same as above)
- Key version (same as above)
- API Key
- Keystore file path
- Keystore password
- Fallback Card
- Card Mapping
- Use Tap To Pay
- Board Payment App on Store level (set to true if payment app should be boarded on store level otherwise it will be boarded on merchant level)
- Add the Quick selection buttons to a specific quick-selection ui, preferably not the one the cashier uses
- reboot CCO
- Make sure no configuration errors occurred after login
- Click on the board app button
- the first app switch will appear
- the first app switch is used to ask the app for its boarding status
- CCO UI will be visible again with a loading indicator
- boarding can take some time...
- When CCO receives the boarding response the loading indicator will disappear and after some seconds the last app switch will occur
- The payment app should now show a screen "Setup complete. Forward to POS App in 5 seconds."
- CCO UI is visible again
- When the Adyen payment (test) app is now opened it should show a screen "Ready to accept payments".
- Note: In some cases it was necessary to close the payment app and open it again after boarding otherwise no payment was possible
- Note: In some cases it was also necessary to restart CCO
- Note: In some cases it was also necessary to clear the App Cache of the Adyen payment (test) app
In case you want to unboard a boarded Adyen payment app, please use the following flow:
- Click on unboard app button
- No app switch will occur, the app will not accept payment transactions anymore
- Note: Once the app is unboarded you will need to uninstall it, download it from the Play Store again and go through the boarding process again
Please be aware that the board and unboard buttons should only be visible for administrative users not for cashiers!
Board app:
"event" : { "eventName" : "ADY_BOARD_PAYMENT_APP" }
Unboard app:
"event" : { "eventName" : "ADY_UNBOARD_PAYMENT_APP" }
Cloud Connection enables the use of the terminal as usual, even if it's not connected to the same Wi-Fi as CCO.
- Ensure that the following plugin properties have been set correctly
- Company Account
- Merchant Account
- Store ID (if dynamic terminal choice is enabled)
- Identifier (can be a user-defined value which matches Adyen's requirements, is needed for a secure and encrypted communication between CCO and Adyen)
- Passphrase (same applies to this)
- Key version (numerical value, can be set to 1 or any user-defined value)
- Fallback terminal serial number (if dynamic terminal choice is disabled)
- API Key (the one created earlier)
- Keystore file path (will be created automatically on first startup, please double-check if valid)
- Keystore password (will be set to "changeit" on first startup, should be changed in the keystore as well as here for prod use)
- Fallback Card
- Card Mapping
- Use Cloud Connection
- Cloud Endpoint
The entire user flow for Cloud Connection is the same as for Local Terminal, including dynamic terminal choice.
Enables saving card tokens during payment for later use (recurring payments, card-on-file).
| Property | Type | Default | Description |
|---|---|---|---|
ADYEN_ENABLE_TOKENIZATION |
Boolean | false | Enable tokenization during payments |
ADYEN_RECURRING_PROCESSING_MODEL |
String | CardOnFile | Processing model (see table below) |
ADYEN_SHOPPER_REFERENCE_PATTERN |
String | {receiptId} | Pattern for unique shopper reference. Placeholder: {receiptId} |
| Value | Description | Example |
|---|---|---|
CardOnFile |
Customer stores card for future customer-initiated purchases. Default for POS scenarios. | Regular customer pays with stored card on each visit |
Subscription |
Merchant charges a fixed amount on a regular schedule (subscription model). Follow-up charges run server-to-server, not through the terminal. | Monthly pass: first payment at the terminal, then monthly charges via backend |
UnscheduledCardOnFile |
Merchant charges at irregular intervals without a fixed schedule. Also server-to-server. | Damage charges, pay-per-use |
Important: For Subscription and UnscheduledCardOnFile, the plugin only covers the entry point — the card is tokenized at the terminal and the token (
storedPaymentMethodId) is stored in the PaymentTransactionDetail. Follow-up charges must be handled by a separate backend system that uses the token and calls Adyen's
eCommerce API (/payments). The plugin itself does not execute recurring payments.
For pure POS scenarios without recurring charges, CardOnFile is the correct choice.
The cashier can activate "Mandate Mode" via the ADY_SET_MANDATE_MODE event before a card payment. When active, the next card payment will include tokenization data
(shopperReference + recurringProcessingModel), creating a token for that card. The mode is reset automatically after the payment.
"event": {"eventName": "ADY_SET_MANDATE_MODE"}Use the "Tokenize Card" button (event ADY_PERFORM_CARD_ACQUISITION) to tokenize a card without a payment.
This sends a CardAcquisition request with TotalAmount=0 — no money is moved and nothing appears on the customer's bank statement.
After a successful card acquisition (or tokenized payment), the plugin automatically looks up the card alias in the customer database. A customer is recognized when the card alias is stored in the UDF field udfString1 of the customer master data. The plugin never writes this field — storing the alias on the customer is up to a downstream process (e.g. the backend that consumes the posted receipts) or manual maintenance.
- Single match — the customer is automatically assigned to the receipt
- Multiple matches — the cashier is prompted to select the correct customer. Card acquisition only: during a payment the receipt posts immediately afterward, so no selection is possible and only a message is shown.
- No match — an info message is shown
- Enable "Recurring details" in Adyen Customer Area > Developers > Additional data
Enables automatic card tokenization when receipts contain items from specific article groups. This covers the use case where a customer purchases a subscription product at the POS and their card needs to be tokenized for future recurring charges.
| Property | Type | Default | Description |
|---|---|---|---|
ADYEN_SUBSCRIPTION_GROUPS_CARD_ON_FILE |
String | (empty) | Article group IDs (;-separated) that trigger CardOnFile tokenization |
ADYEN_SUBSCRIPTION_GROUPS_SUBSCRIPTION |
String | (empty) | Article group IDs (;-separated) that trigger Subscription tokenization |
ADYEN_SUBSCRIPTION_GROUPS_UNSCHEDULED |
String | (empty) | Article group IDs (;-separated) that trigger UnscheduledCardOnFile tokenization |
When a receipt contains items from a configured subscription article group, the plugin detects this and acts depending on the receipt amount:
The card payment automatically includes tokenization data (shopperReference + recurringProcessingModel). The token is returned in the payment response and stored on the PaymentItem. If the article group is configured for subscription, a signature consent prompt is shown on the terminal before the payment.
When the receipt total is zero (e.g., free trial, promotional subscription), the plugin runs a dedicated flow on receipt posting:
- Consent capture — signature on the terminal. If declined, the receipt posting is blocked.
- Card acquisition — a CardAcquisition request tokenizes the card without moving money.
- Token storage — the token data (
TOKENIZATION_ALIAS,TOKENIZATION_SHOPPER_REFERENCE,TOKENIZATION_STORED_PAYMENT_METHOD_ID) is stored as additional fields on the posted receipt, where a downstream system can pick it up. Note the difference to tokenized payments: there the token data is stored as payment transaction details on the payment item — a zero-amount receipt has no payment item, hence the receipt fields.
After the card acquisition completes, the terminal is released back to idle with a positive confirmation animation.
Split payments are not allowed for subscription receipts. The full amount must be paid with a single card payment to ensure tokenization covers the correct card.
Blocks an amount on a card without capturing it. The pre-authorization does not create a fiscal receipt. The receipt is parked (PARKED status) and can be resumed at any register for capture.
| Property | Type | Default | Description |
|---|---|---|---|
ADYEN_ENABLE_PRE_AUTH |
Boolean | false | Enable pre-authorization mode |
ADYEN_ENABLE_PRE_AUTH enables the pre-authorization capability — it does not make all payments pre-authorizations. Normal card payments continue to work as before. The
cashier must explicitly activate pre-auth mode before each pre-auth payment.
Register A — Reservation (PreAuth):
- Create receipt and add items
- Click the "PreAuth" button (
ADY_SET_PREAUTH_MODE) — a confirmation message appears - Pay with card — only this payment is sent as a pre-authorization (
authorisationType=PreAuth) - A message shows the Receipt ID — park the receipt (no fiscal document)
Register B — Checkout:
- Resume the parked receipt (CCO's "Resume Parked Receipt" function)
- Optionally adjust items (add/remove)
- Post the receipt — the plugin automatically handles capture (see below)
Note: If the cashier does NOT click the PreAuth button, the card payment is processed normally (immediate capture). The pre-auth flag is automatically reset after each payment (success or failure).
When a receipt with an active pre-authorization (AUTHORIZED status) is posted, the plugin automatically captures the pre-auth via the Adyen Checkout API. No manual
ADY_PREAUTH_CAPTURE event is needed for the standard flow.
The plugin handles amount differences between the reserved amount and the final receipt total:
| Scenario | Behavior |
|---|---|
| Receipt total = reserved amount | Full capture at the original amount |
| Receipt total < reserved amount | PaymentItem amount is aligned down to the receipt total. Adyen captures the lower amount and automatically releases the remainder. |
| Receipt total > reserved amount | PaymentItem stays at the reserved amount. The cashier pays the difference with a second payment (cash or another card). The pre-auth is captured at the original reserved amount. |
A success or failure message is shown to the cashier after the capture API call completes.
When a receipt with an active pre-authorization is voided (storniert), the plugin automatically cancels the pre-auth at Adyen before the void proceeds.
- If the cancel succeeds → the void continues, and a success message is shown
- If the cancel fails → the void is blocked, an error message is shown, and the cashier can retry. This prevents a receipt from being voided while money is still reserved on the card.
When a single pre-auth PaymentItem is voided (not the full receipt), the same cancel logic applies but does not block the void on failure — a warning is shown instead.
These events can still be used for manual control, e.g., for adjustments or explicit capture/cancel on parked receipts before posting.
| Event | Payload | Description |
|---|---|---|
ADY_SET_PREAUTH_MODE |
— | Activate pre-auth for the next card payment only. Resets automatically after payment. |
ADY_PREAUTH_ADJUST |
{receiptId, amount} |
Change the blocked amount. receiptId is auto-injected from current receipt if omitted. |
ADY_PREAUTH_CAPTURE |
{receiptId} |
Capture (charge) the pre-authorized amount. receiptId auto-injected. |
ADY_PREAUTH_CANCEL |
{receiptId} |
Release the blocked amount. receiptId auto-injected. |
| Key | Description |
|---|---|
PREAUTH_PSP_REFERENCE |
Adyen PSP reference for the pre-auth |
PREAUTH_STATUS |
Lifecycle: AUTHORIZED → CAPTURED or CANCELLED |
PREAUTH_TIMESTAMP |
ISO-8601 timestamp of the pre-auth |
PREAUTH_ORIGINAL_AMOUNT |
Blocked amount (plain decimal, updated on adjust) |
PREAUTH_CURRENCY |
Currency code (e.g., EUR) |
A pre-auth PaymentItem cannot be voided once it has been CAPTURED — the money is already collected. The cashier will see an error message if they attempt to void such a PaymentItem.
After a manual pre-auth cancel (ADY_PREAUTH_CANCEL) the reserved amount is released at Adyen, but the payment item stays on the receipt. Such a receipt can not be posted anymore — the cashier must void the receipt. The manual cancel is meant for releasing the reservation while keeping the receipt around for review before voiding it.
- At least 5 seconds must pass between pre-auth and first adjustment (Adyen requirement).
- Pre-authorizations expire after 7-30 days depending on card scheme (Visa 5-30 days, Mastercard 30 days, Amex 7 days).
- If the auto-capture fails after posting, the receipt is already committed. A critical error is logged and the cashier is notified. Manual capture via the Adyen Customer Area is required.
- On the Adyen test environment, captured pre-auths may remain at
SentForSettlestatus instead of transitioning toSettledimmediately (unlike auto-captured terminal payments). This is expected — the test environment does not fully simulate bank settlement batches for manual captures. On production, settlement follows the normal acquirer batch cycle (1-2 business days).
"event": {"eventName": "ADY_SET_PREAUTH_MODE"}"event": {"eventName": "ADY_PREAUTH_ADJUST"}"event": {"eventName": "ADY_PREAUTH_CAPTURE"}"event": {"eventName": "ADY_PREAUTH_CANCEL"}Captures a customer signature on the Adyen terminal display. Can be triggered standalone via a button or used internally by other features (e.g., subscription consent).
"event": {"eventName": "ADY_PERFORM_SIGNATURE"}The event accepts optional payload parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
saleId |
String | SIG-{timestamp} | Identifier for the signature session |
signatureText |
String | ADYEN_SIGNATURE_FIELD_TEXT (translation) |
Text displayed above the signature field |
timeout |
Number | 120 | Timeout in seconds |
The signature data is returned as a Base64-encoded image and broadcast via ADY_SHOPPER_SIGNATURE event for further processing by the frontend.
Note: The permanent text (slogan) displayed on the terminal's signature screen is configured in the Adyen Customer Area under the terminal's Signature settings (Device Slogan). It is not managed by the plugin.
For receipt-bound signature capture (before payment or as part of the tokenization flow), set the ADY_TRIGGER_SIGNATURE or ADY_TRIGGER_TOKENIZATION_WITH_SIGNATURE field on the receipt header or a sales item, optionally with ADY_SIGNATURE_DISPLAY_TEXT to customise the on-screen text. See Additional Field Triggers.
The Adyen plugin automatically deploys standard translations in the /cco/POSPlugins/translations folder. You can change the translations to your liking.
Note: Your translations files and changes will never be overwritten. So please check when using a newer version of the plugin, if new translation keys are present. E.g. rename the modified translation file, restart CCO so the plugin will deploy the new translation file with the original name.
The plugin writes messages into the SAP CCO log file. If any error occurs please consult the log file. This includes any error in the payment dialog in CCO.
| ErrorCode | Cause | Solution |
|---|---|---|
| ADY:ERR:1100 | The merchant account was not set | Set the merchant account in the plugin properties |
| ADY:ERR:11001 | The company account was not set | Set the company accoun in the plugin properties |
| ADY:ERR:11002 | The fallback card was not set | Set the fallback card id in the plugin properties |
| ADY:ERR:11003 | The key identifier was not set | Set the key identifier in the plugin properties |
| ADY:ERR:11004 | The fallback terminal was not set | Set the fallback terminal in the plugin properties |
| ADY:ERR:11005 | The passphrase was not set | Set the passphrase in the plugin properties |
| ADY:ERR:11006 | The key version was not set | Set the key version in the plugin properties |
| ADY:ERR:11007 | The api key was not set | Set the api key in the plugin properties |
Changes
The changelog moved to Github Releases!
2024-07-30
- Improvement: The plugin will log at startup which version is started
- Improvement: Logout of cashier user will delete the standard terminal choice when using dynamic terminal choice is active
- Bugfix: Setting a standard terminal when no receipt was open resulted in an error
provided adyenplugin-1.0.24-FP18 - suitable for CCO FP18 to FP20
provided adyenplugin-1.0.24-FP16 - suitable for CCO FP16 & FP17
2024-04-12
- Improvement: Actual values of card payments are now entered automatically. Thus, there should be no discrepancies in the daily closing.
- Improvement: Chosen standard terminal will be saved even after cashier logged out once.
- Improvement: Return of a receipt with copied payment item which was originally paid with Adyen will now open the terminal choice dialog if dynamic terminal choice is active.
- Improvement: Card mapping works now like a regex. E.g. visadebit, visa, visacredit, visa_applepay... will now be mapped with a single visa=2
If visacredit should be mapped to another CCO card, this can be done with visa=2;visacredit=23 - Bugfix: Changing the CreditCardTypeCode could lead to an error in cashdesk closing when receipts were already posted with this card.
provided Plugin adyenplugin-1.0.23-FP18 - suitable for CCO FP18 & FP19
provided Plugin adyenplugin-1.0.23-FP16 - suitable for CCO FP16 & FP17
IMPORTANT
adyenplugin-1.0.20-FP14 is out of maintenance!
2023-12-21
- Improvement: warning message when fall back terminal is used is now only shown when no dynamic terminal feature is activated.
- Bugfix: Terminal choice was shown on every split card payment. Final payment was done on last choice. Now first choice will be used and no further dialogs appear.
provided Plugin adyenplugin-1.0.20-FP18
provided Plugin adyenplugin-1.0.20-FP16
provided Plugin adyenplugin-1.0.20-FP14
2023-09-06
provided Plugin adyenplugin-1.0.12-FP16 - suitable for CCO FP16 and FP17
2023-08-25
provided Plugin adyenplugin-1.0.12-FP16 - suitable for CCO FP16
provided Plugin adyenplugin-1.0.12-FP14 - suitable for CCO FP14 and FP15










