Skip to main content

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:

  1. Validation of the incoming request – providing instructionIdentification or endToEndIdentification is mandatory.
  2. Authorization check.
  3. Cache check: if a valid cache entry exists for the instructionId + endToEndId pair, the stored response is returned.
  4. If there is no cache hit: authorization check, then the backend response is cached (if eligible, see below).
  5. 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 expiryNext update
More than 12 hoursIn 12 hours
Between 1–12 hoursIn 1 hour
Less than 1 hourIn 15 minutes

If expired (based on time of day):

Current time of dayNext 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:

request
{
"paymentRequestData": {
"endToEndIdentification": "UBRTHUH0___-20260220-FKHB0000083449",
"instructionIdentification": "RP280924605496124080000"
}
}

Response:

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 codeStatus descriptionReason present
ACCPPaidNo
ACSCTransaction completed on the initiating accountNo
ACTCFormal validation of the transaction successfulNo
ACWPWaiting for payer approvalNo
RCVDTransaction receivedNo
RJCTTransaction items were rejectedYes

Reason codes for RJCT status

Reason codeLocation Cd/PrtryReason description
AB02CdTechnical error
AC01CdAccount number of payment request sender is incorrect or missing
AC02CdPayer's account number is invalid or missing
AC03CdAccount number of payment request sender is invalid or missing
AC06CdPayer's account is locked
AC07CdPayment request sender's account number is closed
AC09CdAccount currency is invalid or missing
AG01CdThis transaction is not allowed for this account type
AG03CdThis transaction type is not allowed on this account
AM01CdAmount value is zero
AM02CdAmount is higher than the allowed value
AM03CdThe specified currency is not allowed
AM05CdDuplicate transaction
AM06CdAmount is lower than the allowed value
AM12CdAmount is invalid or missing
AM14CdTransaction amount exceeds the allowed amount
AM21CdTransaction amount exceeds the allowed amount
BE04CdBeneficiary address is missing or incorrect
BE08CdPayer's name is not filled in
BE16CdInvalid (actual) payer identifier
BE17CdInvalid (actual) beneficiary identifier
BE21CdMissing or invalid name in the package
BE22CdBeneficiary name is not specified
CH20CdNumber of decimals is not appropriate for the currency
CH21CdMandatory field is not filled
CNORCdBeneficiary bank BIC code is not registered
CURRCdTransfer currency is invalid
CUSTCdRejected by payer
DS02CdCancelled order
DS0HCdInvalid signature
DS24CdExpired
DSR0CPrtryInappropriate incoming message was rejected
DSR23PrtryInvalid reason code
DSR45PrtryNumeric field error
DSR61PrtryPayer and beneficiary account numbers are identical
DSR71PrtryAccount number is not in IBAN format
DSRF1PrtrySecondary account identifier not allowed for this transaction type
DSRF2PrtrySecondary account identifier verification failed
DSRF3PrtryIncorrect secondary account identifier
DSRF4PrtryMultiple secondary account identifiers were provided
DSRF5PrtryBoth account identifier and account number were provided
DSRG1PrtryBeneficiary bank is not reachable
DSRG6PrtryGIRO or Beneficiary bank rejected
DSRGEPrtryPayer's bank rejected
DSRGFPrtryThis transaction type is not allowed on the beneficiary account
DSRR1PrtryRecipient Bank cannot initiate AFR transfer
DSRR8PrtryInvalid validity date
DSRR9PrtryInvalid payment deadline
DT01CdSettlement date is invalid or missing
DUPLCdDuplicate transaction
ED05CdSettlement failed
FF05CdField fill error
FF06CdReason category error
FF07CdReason error
FF08CdUnique identifier between parties is missing or invalid
FF10CdTechnical error
HSR41PrtryWaiting for value date
HSR45PrtryNumber format error in package
HSR47PrtryBatch is being processed
RC03CdRecipient service provider is not a payment request service provider
RR02CdSender's name and/or address is mandatory
RR04CdRejected for regulatory reasons
RR07CdComment structure error
RR09CdIncorrect beneficiary identifier in narrative
SL02CdRecalled
TM01CdSubmission deadline exceeded

RTP transitions

TransitionDescriptionExplanation
initiation → RJCTThe payment request has an error, which can be a data entry deficiency or a bank-side technical errorincorrectly entered data, non-existent account, etc.
initiation → ACTCThe 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 requestthe other bank has not yet confirmed receipt
ACTC → RJCTThe 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 errorfailed to send to the other bank or the other bank rejected it
ACTC → ACWPThe payer's service provider has confirmed receipt of the payment request, which is now waiting for the payer's approval or rejectionwe are waiting for the payer to approve or reject
ACWP → RJCTPayer 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 → ACCPSuccessfully paid
* ACTC → ACCPSuccessfully paidthis 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

Flow chart