Format IDs and date-times

Create message IDs and UTC date-times that can be checked without guessing.

Use this page whenever a field is described as an ID, date, date-time, or timestamp. These rules prevent duplicate processing and avoid time-zone mistakes.

Build a message ID

GrpHdr.MsgId is a 35-digit value with three parts:

123456 20260816101530000 000000000001
------ ----------------- ------------
sender UTC timestamp     sequence
code   yyyyMMddHHmmssfff 12 digits

The complete value has no spaces or punctuation:

12345620260816101530000000000000001
PartLengthExampleMeaning
Sender member code6 digits123456Identifies the institution or service that created the message. Use the code issued by Blinc during onboarding. Do not create a code locally.
Creation timestamp17 digits20260816101530000UTC year, month, day, hour, minute, second, and millisecond: yyyyMMddHHmmssfff.
Sequence12 digits000000000001A zero-padded counter that prevents two messages created in the same millisecond from receiving the same ID.

Generate a new message ID for every new request and response. An institution response uses the institution member code, not the code copied from the request. Never reuse the request message ID as the response message ID.

When Blinc delivers the same Credit Notification, Credit Transfer, or Reverse again, the business identifiers stay unchanged. A new delivery timestamp does not authorise a second business action. Blinc does not retry Account Linking, Account Unlinking, or Debit Authorization; see Return clear errors and handle repeated deliveries.

Message-ID validation

Reject GrpHdr.MsgId when any of these checks fails:

  • It is not exactly 35 characters.
  • It contains anything other than digits 0 through 9.
  • The first six digits do not identify the expected sender.
  • The 17-digit timestamp is not a real UTC date and time.
  • The timestamp is in the future beyond the agreed clock-skew allowance or older than the agreed validity window.
  • The same ID was previously used for different plaintext.
ValueResultReason
12345620260816101530000000000000001ValidCorrect code, timestamp, sequence, and length.
123456-20260816101530000-000000000001InvalidSeparators are not allowed.
12345620261316101530000000000000001InvalidMonth 13 is not real.
1234562026081610153000001InvalidThe value is too short.

Treat business identifiers as opaque text

The IDs below are stable references, not mini-databases hidden inside strings:

  • account-linking request ID and account-linking ID;
  • instruction ID;
  • end-to-end ID;
  • transaction ID;
  • clearing-system reference;
  • client reference;
  • posting reference;
  • acceptance ID;
  • creditor, device, terminal, and merchant IDs.

Unless a field page states a stricter rule:

  • send a non-empty JSON string;
  • use printable characters and avoid leading or trailing spaces;
  • compare the complete value exactly, including letter case;
  • store the value without rewriting it;
  • do not extract dates, institution codes, or account details from it;
  • keep it unchanged when Blinc retries Credit Notification, Credit Transfer, or Reverse;
  • never reuse it for a different business action.

Prefixes such as DD-, REV-, or MANDATE- make test data easier to read, but they are examples, not required syntax.

Use each ID for its stated job

IDCreated byWhat it identifiesRepeated-delivery rule
GrpHdr.MsgIdSender of the messageOne messageWhen Blinc is permitted to deliver the same operation again, a reused value must contain the same plaintext and resolve to the stored result. A new customer-started link or unlink request gets a new value.
AccountLinking.account_linking_request_idBlincOne request to create an account linkBlinc does not retry Account Linking. If the customer starts again, the new request gets a new value.
AccountLinking.account_linking_idIssuing institutionThe stored account-linking account linkReturn it after linking and require it on later debit and unlink requests.
PmtId.InstrIdBlincOne payment instructionIt stays unchanged when Blinc delivers Credit Notification, Credit Transfer, or Reverse again. For a timed-out debit, preserve the original debit references in the Reverse request; Blinc does not resend Debit Authorization.
PmtId.EndToEndIdBlincOne payment across all participating systemsPreserve it in responses and use it to locate the original debit for a Reversal.
PmtId.TxIdBlincOne transaction in the switching flowDo not assign it to another transaction.
PmtId.ClrSysRefBlincThe clearing-system trace recordPreserve it for reconciliation and support searches.
auth_binding.key_idAuthenticator storeThe active authenticator used for approvalSend it as a positive JSON integer, not quoted text. It is not a device ID or public key.

Format date-times in UTC

Use RFC 3339 / ISO 8601 UTC text with a trailing Z:

2026-08-16T10:15:30.123Z

The canonical pattern is:

yyyy-MM-dd'T'HH:mm:ss.fff'Z'
PartExampleMeaning
yyyy-MM-dd2026-08-16Four-digit year, two-digit month, and two-digit day.
TTSeparates the date from the time.
HH:mm:ss10:15:3024-hour UTC time. 10 means 10 a.m.; 22 means 10 p.m.
.fff.123Milliseconds. Send exactly three digits.
ZZSays the value is UTC, not local time.

Do not send a local offset such as +01:00, a time-zone name such as WAT, a locale-specific date such as 16/08/2026, or a value without a time zone.

ValueResultReason
2026-08-16T10:15:30.123ZValidComplete UTC date-time with milliseconds.
2026-08-16T10:15:30ZInvalidMilliseconds are missing from the canonical contract form.
2026-08-16 10:15:30.123InvalidMissing T and Z.
16/08/2026 10:15InvalidAmbiguous local format.

Understand the different time fields

FieldWhat the time describesRelationship
x-timestampWhen this protected HTTP delivery was createdUsed for replay protection. It can differ from the business message creation time.
GrpHdr.CreDtTmWhen the readable business message was createdMust agree with the message-ID timestamp and be within the accepted window.
IntrBkSttlmDtWhen inter-institution settlement appliesSend midnight UTC when the business rule supplies only a calendar date, for example 2026-08-16T00:00:00.000Z.
AuthntcnTmstmpWhen the customer approved a Debit AuthorizationMust not be after the request creation time.
BookgDt.DtWhen an account entry was bookedUse the actual booking time or midnight UTC if the ledger exposes only a date.
ValDt.DtWhen funds begin to have valueMay differ from booking time according to the institution's ledger rules.

Parse date-times before using them. Reject impossible dates, non-UTC values, and relationships that contradict the operation rules.

Next

Learn the JSON shapes reused by the operations in Understand common payment fields.


Did this page help you?