Skip to main content

Event types reference

Every notification arrives as a CloudEvent with a type field of the form global.rtgs.{MessageType}. This page lists every event type you can receive, when it is sent, and the exact payload structure inside data_base64.

Before reading payloads, always verify both signatures and decode the base64 envelope.


global.rtgs.TransactionStatusNotificationV1

A payment status notification using an ISO 20022 FIToFIPaymentStatusReport. This single event type covers the full lifecycle of both Payaway (FI-to-FI credit transfer) and Link & Settle operations. Use TxInfAndSts[0].TxSts to read the status code, and TxInfAndSts[0].StsRsnInf[0].Rsn.Prtry to identify the specific lifecycle stage.

Payload structure:

{
"FIToFIPmtStsRpt": {
"GrpHdr": {
"MsgId": "a1b2c3d4e5f6...",
"CreDtTm": "2026-06-18T10:30:00Z",
"InstdAgt": { "FinInstnId": { "Othr": { "Id": "RTGS:B:GB12345678" } } }
},
"TxInfAndSts": [
{
"OrgnlEndToEndId": "E2E-REF-20260618-001",
"OrgnlUETR": "550e8400-e29b-41d4-a716-446655440000",
"TxSts": "PDNG",
"StsRsnInf": [
{
"Rsn": { "Prtry": "Pending" },
"AddtlInf": ["Pending"]
}
],
"OrgnlTxRef": {
"IntrBkSttlmAmt": { "Ccy": "GBP", "Value": 10000.00 },
"Cdtr": { "Pty": { "Nm": "Counterparty Bank Ltd" } },
"CdtrAgtAcct": { "Id": { "Othr": { "Id": "..." } } },
"CdtrAcct": { "Id": { "IBAN": "GB29NWBK60161331926819" } },
"DbtrAgtAcct": { "Id": { "Othr": { "Id": "..." } } },
"PmtTpInf": {
"LclInstrm": { "Prtry": "FIToFICustomerCreditTransfer" }
}
}
}
]
}
}

Payaway lifecycle

Sent to the initiating participant at each stage of a pacs.008 FI-to-FI credit transfer. The PmtTpInf.LclInstrm.Prtry field will be "FIToFICustomerCreditTransfer".

TxStsStsRsnInf[0].Rsn.PrtryStsRsnInf[0].AddtlInf[0]Meaning
PDNGPendingPendingPayment accepted and queued for processing.
ACSC(none)Clearing settled — funds debited from network account.
ACCCNetworkTransferCompleteNetwork accounts settlement completeNetwork transfer complete, funds credited to counterparty.
RJCTAM04Insufficient FundsInsufficient funds on your network account.
RJCTZZ03 / InvalidInstructingRTGS.globalIDInvalid Instructing RTGS.global IDYour RTGS.global ID is invalid.
RJCTZZ06 / InstructingAgentAccountUnavailableInstructing Agent account not availableYour network account is not available.
RJCTZZ07 / InstructedAgentAccountUnavailableInstructed Agent account not availableCounterparty network account is not available.
RJCTZZ14 / InstructedParticipantUnavailableInstructed participant not availableCounterparty participant is not reachable.
RJCTZZ16 / ActiveRelationshipRequiredActive relationship required between Instructing and Instructed AgentNo active relationship exists between you and the counterparty.
RJCTZZ20 / SignatureVerificationFailedSignature verification failedMessage signature could not be verified.
RJCTZZ21 / FundsControllerValidationFailedFunds Controller validation failedFunds controller rejected the validation.
RJCTZZ22 / FundsControllerRejectedSettlementFunds Controller rejected settlementFunds controller rejected the settlement.
RJCTZZ23 / FundsControllerRejectedTransactionFunds Controller rejected transactionFunds controller rejected the transaction.

Sent to both participants at each stage of a pacs.009 Link & Settle operation. Both the initiating and the counterparty participant receive these events, with the Prtry reason indicating which role each notification plays.

TxStsStsRsnInf[0].Rsn.PrtryStsRsnInf[0].AddtlInf[0]Meaning
PDNGLinkPendingLink pending counterparty settlement requestYou submitted a link request; awaiting a matching request from the counterparty.
PDNGLinkRequestCounterparty link pending responseThe counterparty has submitted a matching link request to you.
ACSPLinkCreatedRequest linked to counterparty requestRequests matched; settlement is in progress.
ACCCLinkSettledRequest complete, settlement successfulSettlement completed successfully.
RJCTCancelledAsPerRequestSuccessful cancellation as requested by participantYour own cancellation request was processed.
RJCTCounterpartyRequestCancelledLinked counterparty request cancelledThe counterparty cancelled their request.
RJCTOwnInsufficientFundsInsufficient funds on debit network accountYour network account has insufficient funds.
RJCTCounterpartyInsufficientFundsInsufficient funds on counterparty network accountThe counterparty's network account has insufficient funds.
RJCTCounterpartyNotFoundCounterparty does not existThe specified counterparty does not exist on the network.
RJCTCounterpartyInvalidCounterparty is InvalidThe specified counterparty is invalid.
RJCTOwnIdentifierInCounterpartyFieldParticipant BIC/LEI specified in counterparty fieldYour own BIC/LEI was used in the counterparty field.
RJCTCurrencyMismatchRequests have specified different currenciesYour request and the counterparty's request specify different currencies.
RJCTFundsControllerMismatchAccounts held with different funds controllersThe accounts are held with different funds controllers.
RJCTLinkIdentifiersOrUetrNotFoundRequest link identifiers or UETR cannot be foundLink identifiers or UETR could not be matched.
RJCTVerificationFailedRequest signature verification has failedMessage signature verification failed.
RJCTLinkAlreadySettledRequest has already been settledA settlement for this request already exists.
RJCTSettlementFailedRequest has failed to settle and cannot be cancelledSettlement failed and the request cannot be cancelled.

global.rtgs.TransactionNotificationV1

A bank-to-customer debit/credit notification (ISO 20022 BankToCustomerDebitCreditNotification / camt.054). Sent after a Payaway or Link & Settle transaction has fully settled.

Both the initiating participant (receives a debit entry) and the counterparty participant (receives a credit entry) receive this event independently, with CdtDbtInd indicating which side they are on.

Payload structure:

{
"BkToCstmrDbtCdtNtfctn": {
"GrpHdr": {
"MsgId": "a1b2c3d4...",
"CreDtTm": "2026-06-18T10:30:05Z",
"MsgPgntn": { "PgNb": "1", "LastPgInd": true }
},
"Ntfctn": [
{
"Id": "...",
"Acct": {
"Id": { "Othr": { "Id": "account-identifier" } },
"Ccy": "GBP"
},
"Ntry": [
{
"Amt": { "Ccy": "GBP", "Value": 10000.00 },
"CdtDbtInd": "DBIT",
"Sts": { "Cd": "BOOK" },
"BookgDt": { "DtTm": "2026-06-18T10:30:05Z" },
"ValDt": { "Dt": "2026-06-18" },
"NtryDtls": [
{
"TxDtls": [
{
"Refs": {
"EndToEndId": "E2E-REF-20260618-001",
"UETR": "550e8400-e29b-41d4-a716-446655440000"
}
}
]
}
]
}
]
}
]
},
"Metadata": {
"TransactionId": "internal-transaction-id",
"CounterpartyTransactionId": "counterparty-transaction-id"
}
}
FieldDescription
BkToCstmrDbtCdtNtfctn.Ntfctn[0].Ntry[0].CdtDbtIndDBIT — funds debited from your account; CRDT — funds credited to your account.
Metadata.TransactionIdRTGS.global internal transaction identifier for this entry.
Metadata.CounterpartyTransactionIdRTGS.global internal transaction identifier for the counterparty's entry (useful for reconciliation).

global.rtgs.PayawayFundsV1

An inbound payment notification sent to the counterparty (receiving/instructed) participant when the initiating participant's funds have been reserved and a pacs.008 credit transfer is incoming. This is the signal to expect an inbound credit.

Who receives this

global.rtgs.PayawayFundsV1 is sent to the counterparty — the participant who will receive the funds. The initiating participant does not receive this event.

Payload structure:

{
"FromRtgsGlobalId": "RTGS:B:GB12345678",
"FIToFICstmrCdtTrf": {
"GrpHdr": {
"MsgId": "a1b2c3d4...",
"CreDtTm": "2026-06-18T10:30:00Z",
"NbOfTxs": "1",
"InstgAgt": { "FinInstnId": { "Othr": { "Id": "RTGS:B:GB12345678" } } },
"InstdAgt": { "FinInstnId": { "Othr": { "Id": "RTGS:B:US87654321" } } }
},
"CdtTrfTxInf": [
{
"PmtId": {
"EndToEndId": "E2E-REF-20260618-001",
"UETR": "550e8400-e29b-41d4-a716-446655440000"
},
"IntrBkSttlmAmt": { "Ccy": "GBP", "Value": 10000.00 },
"Cdtr": { "Nm": "Receiving Bank Ltd" },
"CdtrAcct": { "Id": { "IBAN": "GB29NWBK60161331926819" } },
"Dbtr": { "Nm": "Sending Bank Ltd" }
}
]
}
}
FieldDescription
FromRtgsGlobalIdThe RTGS.global ID of the initiating (sending) participant.
FIToFICstmrCdtTrfThe full pacs.008 FI-to-FI Customer Credit Transfer message.

Account management events

These events notify participants of changes to their network accounts. They are sent by the participants domain, not the payment processing domain, so they do not carry ISO 20022 payment messages.

global.rtgs.participants.account.approved.v1

Sent when a network account request is approved.

{
"CorrelationId": "550e8400-e29b-41d4-a716-446655440000",
"FundsController": {
"Nm": "Example Payments Ltd",
"Cd": "EXPL",
"JurisdictionCode": "euwprd",
"Sts": "Active",
"Ctry": "GB"
},
"AccountIdentifier": {
"Id": { "Othr": { "Id": "account-id" } },
"Ccy": "GBP"
},
"ServicerParticipant": {
"AnyBIC": "EXMPGB2L"
}
}

global.rtgs.participants.account.closed.v2

Sent to both the account owner and the servicing participant when a network account is closed.

{
"CorrelationId": "550e8400-e29b-41d4-a716-446655440000",
"AccountV2": {
"Acct": {
"Id": { "Othr": { "Id": "account-id" } },
"Ccy": "GBP"
},
"Status": "Closed",
"CreatedDate": "2025-01-01T00:00:00Z",
"UpdatedDate": "2026-06-18T10:30:00Z"
}
}

global.rtgs.participants.account.requestfailed.v1

Sent when an account open request fails.

global.rtgs.participants.account.approval.requestfailed.v1

Sent when an account approval request fails.


Handling unknown event types

RTGS.global may introduce new event types as the platform evolves. Always write your event handler to log and skip unrecognised types rather than throw — this ensures new events do not break your consumer:

switch (cloudEvent.Type)
{
case "global.rtgs.TransactionStatusNotificationV1":
// ...
break;
case "global.rtgs.TransactionNotificationV1":
// ...
break;
case "global.rtgs.PayawayFundsV1":
// ...
break;
default:
logger.LogWarning(“Received unhandled event type {EventType} — ignoring”, cloudEvent.Type);
break;
}

See Processing the payload for how to decode and deserialize each event.