Payments
Operations related to payments and refunds
All endpoints require a JWT Bearer token in the Authorization header and an API key in the X-API-KEY header.
Base URL: https://payments.valpay.com.
POST /v1/payments/create
Create a new payment
Parameters
Name | In | Type | Required | Description |
|---|---|---|---|---|
| header |
| No | Optional. A unique key for this payment. Send the same key when retrying (e.g. after a timeout) so the payment is de-duplicated by Adyen and never charged twice. Strongly recommended for server-to-server clients. |
Request body (required)
Field | Type | Required | Description |
|---|---|---|---|
|
| Yes | |
|
| Yes | Store ID |
|
| No | Adyen Web-SDK artifact. Optional — the Adyen Checkout API version is pinned server-side, so you do not need to send it. |
|
| Yes | Payment reference |
|
| No | Type of shopper interaction. Optional — when omitted the default is resolved from the charge type: a fresh charge defaults to "Ecommerce", while a token charge (storedPaymentMethodId) defaults to "ContAuth" (merchant-initiated). Supply an explicit value to override. One of: |
|
| No | Additional data for the payment |
|
| Yes | |
|
| No | Return URL after payment. Web/redirect (3DS) flows only — optional for raw server-to-server (e.g. MOTO) partner payments. |
|
| No | Optional. The Adyen merchant account is derived server-side from the store, so you do not need to send it; any value provided is ignored. |
|
| No | Your unique identifier for the shopper (max 255 chars). Links payments and stored payment methods together. Required when charging a stored payment method (storedPaymentMethodId); otherwise optional. |
|
| No | Set to true to tokenize the payment method for future charges. Requires recurringProcessingModel. Optional. |
|
| No | Processing model for stored/recurring payments (e.g. CardOnFile, Subscription, UnscheduledCardOnFile). Required when storePaymentMethod is true OR when charging a stored payment method (storedPaymentMethodId); otherwise optional. |
|
| No | Cardholder billing address. Improves AVS / risk checks. Optional. |
|
| No | Shopper email. Optional; recommended by Adyen for risk scoring. |
|
| No | Shopper IP address (IPv4 or IPv6). Optional; recommended by Adyen for risk scoring. |
|
| No | Shopper name. Optional; used for risk checks. |
|
| No | Shopper telephone number. Optional. |
|
| No | Your reference for the order (max 80 chars), useful when an order spans multiple payments. Optional. |
|
| No | Text shown on the cardholder's statement. Max 22 chars; allowed characters: a-z A-Z 0-9 space and . , ' _ - ? + * /. Optional. |
Responses
Status | Description |
|---|---|
| Payment created successfully |
| Bad request |
Response schema (2xx)
Field | Type | Required | Description |
|---|---|---|---|
|
| Yes | Whether the operation was successful |
|
| Yes | |
|
| Yes | Success message |
POST /v1/payments/refund
Refund a payment
Process a refund for a payment transaction. Note: The merchantAccount will be automatically added by middleware and should not be included in the request.
Request body (required)
Field | Type | Required | Description |
|---|---|---|---|
|
| Yes | Transaction ID of the payment to refund |
|
| No | An array of objects specifying how the amount should be split between accounts when using Adyen for Platforms |
|
| Yes |
Responses
Status | Description |
|---|---|
| Refund processed successfully |
| Bad request |
| Too many requests |
Response schema (2xx)
Field | Type | Required | Description |
|---|---|---|---|
|
| Yes | Whether the operation was successful |
|
| Yes | |
|
| Yes | Success message |
POST /v1/payments/void
Void a payment
Process a void for a payment transaction. Note: The merchantAccount will be automatically added by middleware and should not be included in the request.
Request body (required)
Field | Type | Required | Description |
|---|---|---|---|
|
| Yes | Transaction ID of the payment to void |
|
| No | An array of objects specifying how the amount should be split between accounts when using Adyen for Platforms |
|
| Yes |
Responses
Status | Description |
|---|---|
| Void processed successfully |
| Bad request |
| Too many requests |
Response schema (2xx)
Field | Type | Required | Description |
|---|---|---|---|
|
| Yes | Whether the operation was successful |
|
| Yes | |
|
| Yes | Success message |
GET /v1/payments/refundable-amount/{id}
Get refundable amount for a payment
Parameters
Name | In | Type | Required | Description |
|---|---|---|---|---|
| path |
| Yes | Transaction ID to retrieve refundable amount for |
Responses
Status | Description |
|---|---|
| Refundable amount retrieved successfully |
| Transaction not found |
Response schema (2xx)
Field | Type | Required | Description |
|---|---|---|---|
|
| Yes | Whether the operation was successful |
|
| Yes | |
|
| Yes | Success message |
GET /v1/payments/void-status/{id}
Get void status for a payment
Parameters
Name | In | Type | Required | Description |
|---|---|---|---|---|
| path |
| Yes | Transaction ID to retrieve void status for |
Responses
Status | Description |
|---|---|
| Void status retrieved successfully |
| Transaction not found |
Response schema (2xx)
Field | Type | Required | Description |
|---|---|---|---|
|
| Yes | Whether the operation was successful |
|
| Yes | |
|
| Yes | Success message |
POST /v1/payments/get-payment-methods
Get available payment methods for a merchant account
Request body (required)
Field | Type | Required | Description |
|---|---|---|---|
|
| Yes | Action to perform One of: |
|
| Yes |
Responses
Status | Description |
|---|---|
| Payment methods retrieved successfully |
| Bad request - validation failed |
| Unauthorized - invalid or missing authentication |
| Internal server error |
Response schema (2xx)
Field | Type | Required | Description |
|---|---|---|---|
|
| Yes | Whether the operation was successful |
|
| Yes | |
|
| Yes | Success message |
Examples
POST /v1/payments/refund
Response 200:
GET /v1/payments/refundable-amount/{id}
Response 200 (illustrative):
POST /v1/payments/void
Response 200: the void confirmation object.