Status query with polling – query
After sending the payment request, the status can be queried by polling. The rtpQuery endpoint returns the current state of the request and its associated details. It is advisable to repeatedly query the status until it reaches a final state (ACCP or RJCT).
Description of operation
The RTP status query (rtpQuery) proceeds in the following steps:
- Validation of the incoming request – providing
instructionIdentificationorendToEndIdentificationis mandatory. - Authorization check.
- Cache check: if a valid cache entry exists for the
instructionId+endToEndIdpair, the stored response is returned. - If there is no cache hit: authorization check, then the backend response is cached (if eligible, see below).
- Sending back the response.
Conditions for cache storage
A response is not cached if any request status in the response is ACTC (processing in progress).
Otherwise, two cases are possible:
There is a future expiry date: the response is only cached if the nearest future expiry is at least 1 hour away.
The expiry date in the request is in the past, but the status is not a final status: the response is still saved with a fallback expiry so the scheduler can update it from the backend later.
If all request statuses are final (ACCP – accepted, or RJCT – rejected), the entry does not get an update time – the scheduler skips it.
Cache refresh schedule
The background scheduler checks for pending updates every 5 minutes. The next update time is determined by two different logics:
If there is a future expiry date (based on time remaining until expiry):
| Time remaining until expiry | Next update |
|---|---|
| More than 12 hours | In 12 hours |
| Between 1–12 hours | In 1 hour |
| Less than 1 hour | In 15 minutes |
If expired (based on time of day):
| Current time of day | Next update |
|---|---|
| Night (before 04:00) | At 04:00 the same day |
| Morning–evening (04:00–17:00) | Every 10 minutes |
| Evening (after 17:00) | At 04:00 the next day |
Expired entries are deleted once daily, at 2:00 AM.
Sample call:
{
"paymentRequestData": {
"endToEndIdentification": "UBRTHUH0___-20260220-FKHB0000083449",
"instructionIdentification": "RP280924605496124080000"
}
}
Response:
{
"paymentRequestStatus": {
"statusIdentification": "56B0500BB2E31AEDA6F20004AC1F691F",
"creationDateTime": "2026-02-13T12:55:27.492Z",
"paymentRequests": [
{
"originalPaymentInformationIdentification": "RP809644136783965",
"expiryDateTime": "2026-02-15T12:53:07.74Z",
"originalInstructionIdentification": "RP503699598159500100000",
"originalEndToEndIdentification": "UBRTHUH0___-20260213-FKHB0000042487",
"transactionStatus": "ACWP",
"instructionPriority": "HIGH",
"instructedAmount": {
"currency": "HUF",
"amount": "100"
},
"amountModificationAllowed": "false",
"categoryPurpose": {
"categoryPurposeCode": "EPAY"
},
"ultimateDebtorName": "012sdfoisjdfúőfadsfoaisdfmo34m4i_mpadjfnsdf? skdjfnisuf23jnfjf jsdfjn4",
"ultimateDebtorIdentification": {
"identificationType": "ORG-OTHR",
"identification": "1111 /-?:().,'+abcdoABCDO0123456789"
},
"debtorName": "985sdfoisjdfúőfadsfoaisdfmo34m4i_mpadjfnsdf? skdjfnisuf23jnfjf jsdfjn4",
"debtorAddress": {
"country": "HU",
"address": "012sdfoisjdfúőfadsfoaisdfmo34m4i_mpadjfnsdf? skdjfnisuf23jnfjf jsdfjn4"
},
"debtorIdentification": {
"identificationType": "ORG-OTHR",
"identification": "2222 /-?:().,'+abcdoABCDO0123456789"
},
"debtorAccount": {
"iban": "HU77120836000041718100100009"
},
"creditorIdentification": {
"identificationType": "ORG-OTHR",
"identification": "0000 /-?:().,'+abcdoABCDO0123456789"
},
"creditorAccount": {
"iban": "HU91120113510184523800100006"
},
"ultimateCreditorName": "888sdfoisjdfúőfadsfoaisdfmo34m4i_mpadjfnsdf? skdjfnisuf23jnfjf jsdfjn4",
"ultimateCreditorIdentification": {
"identificationType": "ORG-OTHR",
"identification": "3333 /-?:().,'+abcdoABCDO0123456789"
},
"regulatoryReporting": {
"shopIdentification": "Postman_Test",
"merchDeviceIdentification": "4703",
"invoiceIdentification": "invKépzőművésze 2023! @#%&- áéöőúüű",
"customerIdentification": "cusKépzőművésze 2023! @#%&- áéöőúüű",
"credTranIdentification": "RP564540255150700824941939176209161",
"loyaltyIdentification": "loyKépzőművésze 2023! @#%&- áéöőúüű",
"navCheckIdentification": "navKépzőművésze 2023! @#%&- áéöőúüű",
"latestDateTime": "2026-02-14T12:53:07.72Z"
},
"remittanceInformationUnstructured": "01AÁÉÍÓÖŐOÚÜŰaáéiíoóöőúüűa23456789L01]#$%&()+,-./;:?@\\_{}! AÁ23456789L01AÁÉÍÓÖŐOÚÜŰaáéiíoóöőúüűa23456789L01]#$%&()+,-./;:?@\\_{}! AÁ23456789L",
"remittanceInformationStructured": {
"reference": "01AÁÉÍÓÖŐOÚÜŰaáéiíoóöőúüűa23456789L",
"referenceType": "SCOR",
"referenceIssuer": "02AÁÉÍÓÖŐOÚÜŰaáéiíoóöőúüűa23456789L"
}
}
]
}
}
RTP status meanings
| Status code | Status description | Reason present |
|---|---|---|
| ACCP | Paid | No |
| ACSC | Transaction completed on the initiating account | No |
| ACTC | Formal validation of the transaction successful | No |
| ACWP | Waiting for payer approval | No |
| RCVD | Transaction received | No |
| RJCT | Transaction items were rejected | Yes |
Reason codes for RJCT status
| Reason code | Location Cd/Prtry | Reason description |
|---|---|---|
| AB02 | Cd | Technical error |
| AC01 | Cd | Account number of payment request sender is incorrect or missing |
| AC02 | Cd | Payer's account number is invalid or missing |
| AC03 | Cd | Account number of payment request sender is invalid or missing |
| AC06 | Cd | Payer's account is locked |
| AC07 | Cd | Payment request sender's account number is closed |
| AC09 | Cd | Account currency is invalid or missing |
| AG01 | Cd | This transaction is not allowed for this account type |
| AG03 | Cd | This transaction type is not allowed on this account |
| AM01 | Cd | Amount value is zero |
| AM02 | Cd | Amount is higher than the allowed value |
| AM03 | Cd | The specified currency is not allowed |
| AM05 | Cd | Duplicate transaction |
| AM06 | Cd | Amount is lower than the allowed value |
| AM12 | Cd | Amount is invalid or missing |
| AM14 | Cd | Transaction amount exceeds the allowed amount |
| AM21 | Cd | Transaction amount exceeds the allowed amount |
| BE04 | Cd | Beneficiary address is missing or incorrect |
| BE08 | Cd | Payer's name is not filled in |
| BE16 | Cd | Invalid (actual) payer identifier |
| BE17 | Cd | Invalid (actual) beneficiary identifier |
| BE21 | Cd | Missing or invalid name in the package |
| BE22 | Cd | Beneficiary name is not specified |
| CH20 | Cd | Number of decimals is not appropriate for the currency |
| CH21 | Cd | Mandatory field is not filled |
| CNOR | Cd | Beneficiary bank BIC code is not registered |
| CURR | Cd | Transfer currency is invalid |
| CUST | Cd | Rejected by payer |
| DS02 | Cd | Cancelled order |
| DS0H | Cd | Invalid signature |
| DS24 | Cd | Expired |
| DSR0C | Prtry | Inappropriate incoming message was rejected |
| DSR23 | Prtry | Invalid reason code |
| DSR45 | Prtry | Numeric field error |
| DSR61 | Prtry | Payer and beneficiary account numbers are identical |
| DSR71 | Prtry | Account number is not in IBAN format |
| DSRF1 | Prtry | Secondary account identifier not allowed for this transaction type |
| DSRF2 | Prtry | Secondary account identifier verification failed |
| DSRF3 | Prtry | Incorrect secondary account identifier |
| DSRF4 | Prtry | Multiple secondary account identifiers were provided |
| DSRF5 | Prtry | Both account identifier and account number were provided |
| DSRG1 | Prtry | Beneficiary bank is not reachable |
| DSRG6 | Prtry | GIRO or Beneficiary bank rejected |
| DSRGE | Prtry | Payer's bank rejected |
| DSRGF | Prtry | This transaction type is not allowed on the beneficiary account |
| DSRR1 | Prtry | Recipient Bank cannot initiate AFR transfer |
| DSRR8 | Prtry | Invalid validity date |
| DSRR9 | Prtry | Invalid payment deadline |
| DT01 | Cd | Settlement date is invalid or missing |
| DUPL | Cd | Duplicate transaction |
| ED05 | Cd | Settlement failed |
| FF05 | Cd | Field fill error |
| FF06 | Cd | Reason category error |
| FF07 | Cd | Reason error |
| FF08 | Cd | Unique identifier between parties is missing or invalid |
| FF10 | Cd | Technical error |
| HSR41 | Prtry | Waiting for value date |
| HSR45 | Prtry | Number format error in package |
| HSR47 | Prtry | Batch is being processed |
| RC03 | Cd | Recipient service provider is not a payment request service provider |
| RR02 | Cd | Sender's name and/or address is mandatory |
| RR04 | Cd | Rejected for regulatory reasons |
| RR07 | Cd | Comment structure error |
| RR09 | Cd | Incorrect beneficiary identifier in narrative |
| SL02 | Cd | Recalled |
| TM01 | Cd | Submission deadline exceeded |
RTP transitions
| Transition | Description | Explanation |
|---|---|---|
| initiation → RJCT | The payment request has an error, which can be a data entry deficiency or a bank-side technical error | incorrectly entered data, non-existent account, etc. |
| initiation → ACTC | The bank's backend system has accepted the payment request, but the processing has not yet reached the point where the payer's service provider has confirmed receipt of the payment request | the other bank has not yet confirmed receipt |
| ACTC → RJCT | The payment request has an error, which can be a data entry deficiency, bank-side technical error, GIRO-side technical error, or receiving-side business or technical error | failed to send to the other bank or the other bank rejected it |
| ACTC → ACWP | The payer's service provider has confirmed receipt of the payment request, which is now waiting for the payer's approval or rejection | we are waiting for the payer to approve or reject |
| ACWP → RJCT | Payer rejected the payment request or Payment request validity expired | The transition does not occur at the moment of expiry, but during a maintenance batch job running at dawn |
| ACWP → ACCP | Successfully paid | |
| * ACTC → ACCP | Successfully paid | this actually represents an ACTC → ACWP → ACCP transition sequence, but during the time interval when the status was ACWP, no status query occurred, so it appears as an ACTC → ACCP transition |
