References
One canonical id format: acuinf + 12 digits + a domain suffix. Lowercase, separator-free, the same string everywhere. Decode one live.
Every resource Acute creates gets exactly one reference: the public,
merchant-facing id you see as id on every response. It is a single, lowercase,
separator-free string designed to be stored, logged, grepped, and quoted back to
support without ceremony.
acuinf{12 digits}{domain}Three parts: the acuinf prefix (always), twelve uniformly-random digits (the
body), and a short domain suffix that names the resource. Type or paste one below and
watch it come apart:
wlt).Decoded: a Wallet. Prefix acuinf, body 4 7 2 0 9 5 1 8 3 6 4 0, suffix wlt.The suffix tells you what the reference points at. The full map:
| Suffix | Resource |
|---|---|
org | organization |
mus | merchant (console) user |
inv | merchant team invite |
usr | end user |
wlt | wallet |
pay | payment |
trf | wallet transfer |
wth | withdrawal |
rfd | refund |
pyo | payout |
poi | payout item |
evt | webhook event |
ltx | ledger transaction |
So acuinf938174026551pay is a payment, acuinf472095183640wlt a wallet, and
acuinf660318492075evt the webhook event that told you about one.
Lowercase is canonical
The stored and wire form is always lowercase. A UI may uppercase it for display
(ACUINF…), but when you send it back to the API, send it as you received it:
lowercase. The decoder above lowercases input so a pasted uppercase value still
resolves.
References vs keys
A reference is a public id. An API key (acuinf_test_…) is a
secret credential: note the underscores and the test/live segment. They share
the acuinf stem but are not the same thing: never log a key, always feel free to log
a reference.
The body is twelve random digits (not alphanumeric) and uniqueness is enforced by a unique index per resource table. If you're generating fixtures, keep your fakes to digits so they decode cleanly.