This is the documentation for the Ratepay Payment API v2. The API is still in development and subject to change. The documentation will evolve as the development of the API progresses.
- Direct API integration
- Change transaction
Payment OpenAPI Specification (version 2)
https://api-integration.ratepay.com/transaction/management/
https://api.ratepay.com/transaction/management/
ID generated by client to uniquely identify the request. It is highly recommended to use a UUID version 4. Do not reuse an idempotency key for different calls. See Idempotency for further details.
According to RFC 7240: Provide return=representation if you prefer that the response to a request includes the current state of the resource.
The date and time when remaining un-cancelled and un-captured authorized amount will be automatically cancelled. Timestamp with offset according to ISO 8601. If not given, a default expiry time is generated.
The buyer that wants to place the transaction.
The address of the recipient.
The city of the address. Must be at least 2 non whitespace characters.
The country of the address. Must conform with ISO 3166-1 alpha 2.
The name of the street.
Additional information about the address, e.g. 2nd floor, c/o John Doe.
The number describing where the building is located in the street. Notice that it must be sent in either this field or in street. For example, if the street field contains "Musterstraße 1, then it is not needed to supply data here. But if street only contains "Musterstraße", then street_number must contain "1".
The zip or post code of the address. Must be valid according to zip format of given country code. See list of postal codes.
The company that wants to place the transaction. This implies a B2B transaction. Either provide a person or company but not both.
The contact information of the buyer.
The language in which the buyer prefers communication to be done. If the preferred language is not supported, the buyer communication will be in German. Must conform to ISO 639-1 alpha 2.
The person that wants to place the transaction. This implies a B2C transaction. Either provide a person or company but not both.
The buyer ID of a regular customer. See regular customer documentation for details. Get an overview of key identifiers used in payment API.
The currency of all amounts pertaining to the transaction. Upper-case alphabetic code in accordance with ISO 4217.
Arbitrary ID of partner for the operation. This ID can be displayed in settlement reports. Get an overview of key identifiers used in payment API.
The transaction ID generated by the partner. This field must be included in at least one of the following requests: authorization or capture. This ID can be displayed in settlement reports. Get an overview of key identifiers used in payment API.
Provides details about the payment to be executed by Ratepay. Applicable only in case of transfer-type SEPA_DIRECT_DEBIT.
The payment method selected by the buyer.
One basket for each shop contained in the transaction. The definition of multiple shops is only relevant for marketplace integrations. If items and special items are included in the basket, gross amount must match the sum of all items. See basket amount validation page for additional details.
The amount for the basket including VAT given in the currency of the transaction. If items and special items are included in the basket, gross amount must match the sum of all items. See basket amount validation page for additional details.
List of items contained in the transaction.
The article number of the item, e.g. SKU. Not allowed to contain only whitespaces.
Category for the item.
Description of the item.
Gross value including discount of these items after taxes. gross_total_price = (gross_unit_price + gross_unit_discount) * quantity
Gross discount on one item after taxes. Needs to be a negative value.
Gross value of one item before taxes. For the RETURN_FEE type, applicable only to the REFUND operation, the value must be negative.
Name of the item.
Net value including discount of these items before taxes. net_total_price = (net_unit_price + net_unit_discount) * quantity
Net discount on one item before taxes. Needs to be a negative value.
Net value of one item before taxes.
Ordered quantity of the item.
Tax rate applicable for the item given in percent.
The shop ID generated by the partner or provided upfront by Ratepay. Get an overview of key identifiers used in payment API.
This is the unique identifier for the merchant. Before using the merchant_id in the shop_baskets object, it must be requested from Ratepay and connected with a respective partner_shop_id in the Ratepay systems. Please refer to the overview of key identifiers used in the payment API 2.0 for more details.
The transaction ID generated by the shop. This field must be included in at least one of the following requests: authorization or capture. This ID must be known to the buyer and is used for buyer communication, e.g. correspondences and buyer support.
List of special items contained in the transaction, e.g. shipping costs or discounts.
List of value-added tax (VAT) amounts.
The net amount before taxes for the given tax rate.
The tax amount for the given tax rate.
- Ratepay Integration Platform
https://api-integration.ratepay.com/transaction/management/v2/transactions
- Ratepay Production Platform
https://api.ratepay.com/transaction/management/v2/transactions
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api-integration.ratepay.com/transaction/management/v2/transactions \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: string' \
-H 'Prefer: return=representation' \
-H 'X-Partner: string' \
-d '{
"authorization_expires": "2025-04-02T16:15:18.823+02:00",
"buyer": {
"billing_address": {
"city": "Berlin",
"country_code": "DE",
"street": "Schönhauser Allee",
"street_addition": "Seitenflügel, 2. HH",
"street_number": "84",
"zip_code": "10439"
},
"company": null,
"contact": {
"email": "heinz.steeger@example.org",
"phone": "+49 177 44455553"
},
"language": "de",
"person": {
"date_of_birth": "1971-05-19",
"first_name": "Heinz",
"last_name": "Steeger",
"title": "Dr."
},
"shop_buyer_id": "shop-buyer-id-1234"
},
"currency": "EUR",
"delivery": {
"address": {
"city": "Berlin",
"country_code": "DE",
"street": "Schönhauser Allee",
"street_addition": "Seitenflügel, 2. HH",
"street_number": "84",
"zip_code": "10439"
},
"company": "Berlin Advertising Agency",
"first_name": "Heinz",
"full_name": null,
"in_store_collect": null,
"last_name": "Steeger",
"pick_up_box": null,
"pick_up_shop": null
},
"device": {
"browser": {
"language": "de-DE",
"name": "Mozilla Firefox",
"version": "94.0 (64-bit)"
},
"finger_print": "bc47575c-7f93-4bae-84dc-282edf6a5d85",
"geo_location": {
"latitude": 52.518368,
"longitude": 13.325109
},
"http_forwarded_ip_address": "123.123.123.123",
"risk": {
"reasons": [
"RISKY_DEVICE_BEHAVIOR"
],
"score": 123
},
"screen": {
"height": 1080,
"width": 1920
},
"source_ip_address": "10.17.1.1",
"token": "ade028c1-d2a2-4189-9214-e21089cd47f1"
},
"options": {
"sales_channel": "POINT_OF_SALE"
},
"partner_operation_id": "partner-operation-id-1234",
"partner_transaction_id": "partner-transaction-id-1234",
"payment_details": null,
"payment_method": {
"payment_option": "OPEN_INVOICE",
"transfer_type": "BANK_TRANSFER"
},
"shop_baskets": [
{
"gross_amount": 67.6,
"items": [
{
"article_number": "kitchen-utils-1",
"category": "household",
"description": "fruit knife with curved blade, 8 cm",
"gross_total_price": 33.8,
"gross_unit_discount": -1.55,
"gross_unit_price": 18.45,
"name": "fruit knife",
"net_total_price": 28.4,
"net_unit_discount": -1.3,
"net_unit_price": 15.5,
"quantity": 2,
"tax_rate": 19,
"unit": "piece"
}
],
"partner_shop_id": "partner-shop-id-1",
"shop_merchant_id": "ratepay-merchant-id-123",
"shop_transaction_id": "shop-transaction-id-1234",
"special_items": [
{
"article_number": "kitchen-utils-1",
"category": "household",
"description": "fruit knife with curved blade, 8 cm",
"gross_total_price": 33.8,
"gross_unit_discount": -1.55,
"gross_unit_price": 18.45,
"name": "fruit knife",
"net_total_price": 28.4,
"net_unit_discount": -1.3,
"net_unit_price": 15.5,
"quantity": 2,
"tax_rate": 19,
"type": "RETURN_FEE",
"unit": "piece"
}
],
"vats": [
{
"net_amount": 56.81,
"tax_amount": 10.79,
"tax_rate": 19
}
]
}
],
"shops": [
{
"correspondence_settings": {
"branding_settings": {
"highlight_color": "#badb11",
"logo_position": "RIGHT",
"logo_url": "https://cdn.example.com/a/b/c/logo-fruits-and-more_400x65.png"
},
"slangs": {
"de": {
"customer_service_contact": [
"You can reach our customer service Mon - Sun 7 am to 8 pm",
"by mail: customer-service@example.com",
"by phone: 030 / 123 456 789",
"contact form: example.com/contact"
],
"formal_tone": "INFORMAL",
"name_format": "FIRST_LAST_NAME",
"salutation": "Hello",
"transaction_type": "ORDER"
},
"en": {
"customer_service_contact": [
"You can reach our customer service Mon - Sun 7 am to 8 pm",
"by mail: customer-service@example.com",
"by phone: 030 / 123 456 789",
"contact form: example.com/contact"
],
"formal_tone": "INFORMAL",
"name_format": "FIRST_LAST_NAME",
"salutation": "Hello",
"transaction_type": "ORDER"
},
"fr": {
"customer_service_contact": [
"You can reach our customer service Mon - Sun 7 am to 8 pm",
"by mail: customer-service@example.com",
"by phone: 030 / 123 456 789",
"contact form: example.com/contact"
],
"formal_tone": "INFORMAL",
"name_format": "FIRST_LAST_NAME",
"salutation": "Hello",
"transaction_type": "ORDER"
},
"nl": {
"customer_service_contact": [
"You can reach our customer service Mon - Sun 7 am to 8 pm",
"by mail: customer-service@example.com",
"by phone: 030 / 123 456 789",
"contact form: example.com/contact"
],
"formal_tone": "INFORMAL",
"name_format": "FIRST_LAST_NAME",
"salutation": "Hello",
"transaction_type": "ORDER"
}
}
},
"legal": {
"commercial_register_number": "HRB 12345FF",
"legal_form": "GmbH",
"name": "Fruits and more GmbH"
},
"merchant": {
"merchant_id": "ratepay-merchant-id-123",
"merchant_name": "Merchant XYZ"
},
"merchant_category_code": "5499",
"name": "fruits and more",
"partner_shop_id": "partner-shop-id-1"
}
]
}'Transaction authorized
Links related to the resource following specification by IANA.
The date and time when remaining un-cancelled and un-captured authorized amount will be automatically cancelled. Timestamp with offset according to ISO 8601.
Timestamp with offset according to ISO 8601.
Provides details about the payment to be executed by the buyer (generated by Ratepay).
Indicates the outcome of the transaction request. Possible value : ACCEPTED – The transaction has been successfully authorized and can proceed to capture.
ID of transaction generated by Ratepay during authorization. A transaction ID is generated for both accepted and declined transactions. Get an overview of key identifiers used in payment API.
{ "_links": { "self": { … } }, "authorization_expires": "2019-08-24T14:15:22Z", "created": "2019-08-24T14:15:22Z", "payment_details": { "deposit_bank_account": { … }, "ratepay_payment_reference": "ET1285368M8", "ratepay_payment_references": [ … ] }, "result": "ACCEPTED", "ratepay_transaction_id": "scwBgARW-nE93I7_ywhp" }
ID of transaction to retrieve. Get an overview of key identifiers used in payment API.
- Ratepay Integration Platform
https://api-integration.ratepay.com/transaction/management/v2/transactions/{ratepay_transaction_id}
- Ratepay Production Platform
https://api.ratepay.com/transaction/management/v2/transactions/{ratepay_transaction_id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://api-integration.ratepay.com/transaction/management/v2/transactions/{ratepay_transaction_id}' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Prefer: return=representation' \
-H 'X-Partner: string'Transaction retrieved
Includes only minimal set of attributes plus links to related resources.
Links related to the resource following specification by IANA.
List of additional authorization resources belonging to this transaction.
List of cancellation resources belonging to this transaction.
List of capture resources belonging to this transaction.
List of refund resources belonging to this transaction.
The date and time when remaining un-cancelled and un-captured authorized amount will be automatically cancelled. Timestamp with offset according to ISO 8601.
Timestamp with offset according to ISO 8601.
Provides details about the payment to be either executed by the buyer or Ratepay depending on selected payment method.
ID of transaction generated by Ratepay during authorization. A transaction ID is generated for both accepted and declined transactions. Get an overview of key identifiers used in payment API.
Indicates the outcome of the transaction request. Possible values: ACCEPTED – The transaction has been successfully authorized and can proceed to capture. DECLINED – The transaction has been rejected; the merchant must not proceed with order fulfillment. OTP_REQUIRED – The buyer must complete OTP verification before the transaction can be finalized.
{ "_links": { "authorizations": [ … ], "cancellations": [ … ], "captures": [ … ], "refunds": [ … ], "self": { … } }, "authorization_expires": "2025-04-02T16:15:18.823+02:00", "created": "2019-08-24T14:15:22Z", "decline": { "category": "BUYER_DATA", "reasons": [ … ] }, "payment_details": { "deposit_bank_account": { … }, "ratepay_payment_references": [ … ] }, "ratepay_transaction_id": "scwBgARW-nE93I7_ywhp", "result": "ACCEPTED" }
ID of transaction to change. Get an overview of key identifiers used in payment API.
- Ratepay Integration Platform
https://api-integration.ratepay.com/transaction/management/v2/transactions/{ratepay_transaction_id}
- Ratepay Production Platform
https://api.ratepay.com/transaction/management/v2/transactions/{ratepay_transaction_id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PATCH \
'https://api-integration.ratepay.com/transaction/management/v2/transactions/{ratepay_transaction_id}' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/merge-patch+json' \
-H 'X-Partner: string' \
-d '{
"authorization_expires": "2025-04-02T16:15:18.823+02:00"
}'