Skip to main content

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 nameTypeField lengthRequiredDescription
technicalUserIdstring5yesTechnical 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.
languagestring (enum)2yesInitial display language of the payment page, possible values: "HU", "EN", "DE" – after opening, the user can also change it on the interface.
urlstringmax 230yesRedirect 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.
transactionReferencestringmax 17yesUnique code of max. 17 characters assigned by the merchant.
paymentMethodslist/array (accepting 1 enum element)3yesUse the value "EAM" for instant payment display, use the value "RTP" for initiating a payment request.
transactionCurrencystring3yesCurrency code according to ISO 4217 standard – only "HUF" is allowed.
transactionAmountinteger15yesCart / payment request amount.
remittanceInfostringmax 70noRemittance information – max. 70 characters (UTF-8 basic characters + Hungarian accented characters*).
shopIdstringmax 10yesShop identifier defined by the merchant – (UTF-8 basic characters + Hungarian accented characters*) e.g.: shop0001
terminalReferencestringmax 35ConditionalRequired for EAM transactions only. Terminal identifier defined by the merchant – max. 35 characters (UTF-8 basic characters + Hungarian accented characters*). e.g.: terminal0001
debtorNamestringmax 70ConditionalRequired for RTP transactions only. Name of the buyer/debtor.
timestampstring-yesTimestamp 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).
idempotencyKeystring (uuid)-yesUnique 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).

Wrapped payload (minified jsonString) 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"}
Good to know

The Content-Type in the request header must be application/json.