Using Adyen's payment processing platform, you can process online or in-person payments from your customers. The revenue from these payments are booked to your balance platform, and can be used to fund your Adyen-issued cards.
Requirements
Take into account the following requirements, limitations, and preparations to start processing payments.
| Requirement | Description |
|---|---|
| Integration type | For online payments: You must have an Adyen online payments integration and a checkout UI. For in-person payments: For in-person payments with Adyen, your POS app must be integrated with the Terminal API and then either use payment terminals or a Mobile solution. The standalone solution can serve as a fallback. |
| API credentials | You must have credentials for the following APIs:
|
| Webhooks | Ensure that your server can receive and accept standard webhooks. Subscribe to any of the following webhooks: |
| Capabilities | Make sure that your account holders have the following capabilities:
|
Online payments
To process an online payment from your customer:
-
Make a POST /payments or POST /sessions request, specifying the following parameters:
Parameter Required Description amount 
The value and currency of the payment, in minor units. merchantAccount 
The unique identifier of the merchant account through which the payment is processed. paymentMethod 
The type and required details of a payment method your customer used. reference 
Your unique reference to identify the payment. returnUrl 
The URL to return to in case of a redirection. The following example shows the payment request you must make when a customer makes a payment of EUR 200.00:
-
Note the response, which informs you if the payment was successful.
In-person payments
To process an in-person payment from your customer:
-
Make a POST PaymentRequest request. In your request, specify:
-
The standard
SaleToPOIRequest.MessageHeaderobject, withMessageClassset to Service andMessageCategoryset to Payment.Parameter Required Description ProtocolVersion
3.0 MessageClass
Service MessageCategory
Payment MessageType
Request ServiceID
Your unique ID for this request, consisting of 1-10 alphanumeric characters. Must be unique within the last 48 hours for the terminal ( POIID) being used.SaleID
Your unique ID for the POS system component to send this request from. POIID
The unique ID of the terminal to send this request to. Format: [device model]-[serial number]. -
The PaymentRequest object with:
Parameter Required Description SaleData.SaleTransactionID
An object with: TransactionID: Your reference to identify a payment. We recommend using a unique value per payment. In your Customer Area and Adyen reports, this will show as the merchant reference for the transaction.TimeStamp: The date and time of the request in UTC format.
PaymentTransaction.AmountsReq
An object with: Currency: The transaction currency.RequestedAmount: The transaction amount.
Specify the amount with a decimal point. Do not use minor units. For example, for an amount of USD 10, enter 10.00 (not 1000).
The following example shows the payment request you must make when a customer makes a payment of EUR 200.00:
The payment request is routed to the terminal or mobile device, for the customer to complete the payment. The payment is approved, and then sent to the Adyen payments platform for processing.
-
-
When you receive the PaymentResponse, check the following parameters:
POIData.POITransactionID.TransactionID: The transaction identifier for the payment consisting of the tender reference followed by the PSP reference. For example, in the transaction identifier BV0q001765198054002.CWBC43ZX2VTFWR82, the PSP reference is CWBC43ZX2VTFWR82.Response.Result: SuccessPaymentReceipt: The object with data you can use to generate a receipt.
You can also view this information in your Customer Area. To view the details of the payment, go to Transactions > Payments.
Webhooks
Adyen sends webhooks to inform you of payment-related events that occur in your balance platform. Subscribe to the Transfer webhooks and Transaction webhooks to keep track of these events and their status.