Assembling the Payload for Transaction Start
After finalising the cart, the payload must be assembled according to the Raiffeisen PAY service (rafipay-ofo-service) API schema. Field lengths must be considered in URL-encoded form for EAM transactions, while for payment requests the length is measured as plain character count. Fields:
| Field name | Type | Field length | Required | Description |
|---|---|---|---|---|
technicalUserId | string | 5 | yes | Technical identifier of the API user (e.g. 10234). The technical identifier can be found on the Raiffeisen PAY Portal under the Raiffeisen EAM and RTP service tab by opening the API user details. |
language | string (enum) | 2 | yes | Initial display language of the payment page, possible values: "HU", "EN", "DE" – after opening, the user can also change it on the interface. |
url | string | max 230 | yes | Redirect URL – Contains a URL or Deeplink that navigates the payer back to the payment status page of the initiating payment interface. The payer's mobile banking application must allow opening the URL specified in this field at the end of the payment. |
transactionReference | string | max 17 | yes | Unique code of max. 17 characters assigned by the merchant. |
paymentMethods | list/array (accepting 1 enum element) | 3 | yes | Use the value "EAM" for instant payment display, use the value "RTP" for initiating a payment request. |
transactionCurrency | string | 3 | yes | Currency code according to ISO 4217 standard – only "HUF" is allowed. |
transactionAmount | integer | 15 | yes | Cart / payment request amount. |
remittanceInfo | string | max 70 | no | Remittance information – max. 70 characters (UTF-8 basic characters + Hungarian accented characters*). |
shopId | string | max 10 | yes | Shop identifier defined by the merchant – (UTF-8 basic characters + Hungarian accented characters*) e.g.: shop0001 |
terminalReference | string | max 35 | Conditional | Required for EAM transactions only. Terminal identifier defined by the merchant – max. 35 characters (UTF-8 basic characters + Hungarian accented characters*). e.g.: terminal0001 |
debtorName | string | max 70 | Conditional | Required for RTP transactions only. Name of the buyer/debtor. |
timestamp | string | - | yes | Timestamp of payload assembly in datetimeoffset format. ISO 8601 Zulu or local time format. The timestamp cannot be in the future and cannot be older than 5 minutes relative to real time (e.g. 2024-10-04T14:23:45Z). |
idempotencyKey | string (uuid) | - | yes | Unique UUID-format code assigned by the merchant. |
In addition to all basic characters according to UTF-8 (in the range 32–126), only the Hungarian accented characters found in the "extended" ASCII range above 128 may be used.
Complete list: ASCII 32 – 126:
space, ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ ] \ ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z | ~ Above ASCII 128: á Á É é í Í ó Ó ő Ö ő Ő ú Ú ü Ü ű Ű
Wrapping the Payload into a jsonString
The payload must be converted to jsonString format and the JSON must be minified. Accented characters and / signs and other special characters do not need to be escaped (e.g. the content of the url field in the example).
{"idempotencyKey":"f4e5b92d-60ff-46bd-a26a-8342116cdec5",
"technicalUserId":"10234",
"language":"HU",
"url":"https://demo-webshop.hu",
"transactionReference":"1Ffnhelta3b",
"paymentMethods":["EAM"],
"transactionCurrency":"HUF",
"transactionAmount":250,
"remittanceInfo":"Test purchase",
"shopId":"shop0001",
"terminalReference":"terminal0001",
"timestamp":"2024-10-04T14:23:45Z"}
The Content-Type in the request header must be application/json.