Overview
Every resource in the OpenFX v1 API has a globally unique, typed identifier. Resource IDs are designed for instant recognition — you can tell what kind of resource an ID refers to just by looking at the prefix.Format
All resource IDs follow the pattern:- Prefix: A short, lowercase string ending with an underscore (
_) that identifies the resource type. - Suffix: A UUIDv7 value encoded as a lowercase hexadecimal string (no dashes).
UUIDv7 embeds a millisecond-precision timestamp, which means IDs are chronologically sortable. Resources created later always have lexicographically greater IDs. This is what powers cursor-based pagination.
Prefix Reference
Every resource type has a unique prefix. Use this table to identify any ID you encounter in API responses, webhook payloads, or logs.| Prefix | Resource | Example |
|---|---|---|
ent_ | Entity | ent_01953e1a5f4b7100 |
erel_ | Entity Relationship | erel_01953e1a5f4b7101 |
doc_ | Document | doc_01953e1a5f4b7102 |
cus_ | Customer | cus_01953e1a5f4b7000 |
onb_ | Onboarding | onb_01953e1a5f4b7800 |
acc_ | Account | acc_01953e1a5f4b7002 |
an_ | Account Number | an_01953e1a5f4b7200 |
ba_ | Blockchain Address | ba_01953e1a5f4b7201 |
srt_ | Settlement Route | srt_01953e1a5f4b7900 |
cpt_ | Counterparty | cpt_01953e1a5f4b7004 |
pm_ | Payment Method | pm_01953e1a5f4b7300 |
pmt_ | Payment | pmt_01953e1a5f4b7005 |
qte_ | FX Quote | qte_01953e1a5f4b7006 |
pqt_ | Payment Quote | pqt_01953e1a5f4b7012 |
pte_ | Payment Estimate | pte_01953e1a5f4b7400 |
cnv_ | Conversion | cnv_01953e1a5f4b7007 |
trf_ | Transfer | trf_01953e1a5f4b7008 |
rfd_ | Refund | rfd_01953e1a5f4b7020 |
col_ | Collection | col_01953e1a5f4b7a00 |
ipmt_ | Inbound Payment | ipmt_01953e1a5f4b7500 |
txn_ | Transaction | txn_01953e1a5f4b7600 |
evt_ | Event | evt_01953e1a5f4b7009 |
wsub_ | Webhook Subscription | wsub_01953e1a5f4b700a |
whd_ | Webhook Delivery | whd_01953e1a5f4b7100 |
req_ | RFI / Request | req_01953e1a5f4b7700 |
Validation Pattern
Each resource ID matches the regex pattern:Time Ordering
Because the suffix is a UUIDv7, IDs are monotonically increasing over time. This means:- Resources created later always have IDs that sort after earlier resources.
- You can use ID comparison to determine relative creation order.
- Cursor-based pagination relies on this ordering —
starting_afterandending_beforeparameters accept resource IDs.
Best Practices
Store IDs as strings. Resource IDs are always strings. Never cast them to integers or UUIDs — the prefix makes them non-standard UUID format.
Use IDs for log correlation. When logging API interactions, include the resource ID. The typed prefix makes it easy to search logs for all operations on a specific resource type (e.g., grep for
pmt_ to find all payment-related log entries).Use the prefix for quick debugging. If you see
cpt_01953e1a5f4b7004 in a webhook payload, you immediately know it refers to a Counterparty without checking any documentation.Cross-Resource References
Resources reference each other by ID. The prefix makes it clear what type of resource is being referenced:Id, its value will always carry the prefix of the referenced resource type.
Related
- Pagination — how resource IDs power cursor-based pagination
- Error Handling —
requestIdin error responses uses thereq_prefix - API Reference — see typed IDs in every endpoint’s response schema