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.

text
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:

This is a Wallet (suffix wlt).Decoded: a Wallet. Prefix acuinf, body 4 7 2 0 9 5 1 8 3 6 4 0, suffix wlt.
Try:

The suffix tells you what the reference points at. The full map:

SuffixResource
orgorganization
musmerchant (console) user
invmerchant team invite
usrend user
wltwallet
paypayment
trfwallet transfer
wthwithdrawal
rfdrefund
pyopayout
poipayout item
evtwebhook event
ltxledger 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.