Resource Identifiers

For resources that may be accessed independently, each resource is assigned a unique ID, called a PKSUID (Prefixed K-Sortable Unique IDentifier). The PKSUID is an extension to the KSUID format created for segment.io, which adds Stripe-like prefixes to each KSUID, useful for two reasons primarily:

  • For developers looking at the IDs, it becomes easy to recognise the type of resource that the ID corresponds to.

  • When reading through logs, the prefix helps to provide context and otherwise differentiates a random looking string of letters and numbers.

Below are the prefixes currently in use, and their corresponding resource types:

PrefixResource TypeSample IDAdditional Notes
addrAddressaddr_28chumc6QjHu5muPOyiCWL0o7RD
emlEmail Addresseml_28chAHmq5RU9sk7Pz4ct46tTZmC
cusCustomercus_28chAGqWwTyYVqdPML6t88yqefF
liOrder Line Itemli_2A4lxXBVFuer5eomqo6TQtTZw9E
oaOrder Addressoa_2A4lxXzyIiqaxc5ZgYI8ybvnb6bOrder Addresses are almost structurally identical to Addresses, but are tied to a specific order.
ordOrderord_2A4lxXzyIiqaxc5ZgYI8ybvnb6b
pdPayment Detailpd_2MON47UFIcEvrhlYXFsETNlzKzcPayment details are payment records associated with an order. An order can have multiple payment details.
sdShipping Detailsd_2MON4D7JDX5bDjGuG0go2BKWqzuShipping details are payment records associated with an order. An order can have multiple shipping details.
phnePhone Numberphne_28che20avj4BwSkuL2vQlOCQXEQ
prodProductprod_29ZaWHhqqGk00xyZI6SFPc8iON7
vrntProduct Variantvrnt_29ZaWHhqqGk00xyZI6SFPc8iON7
locLocationloc_2N8nMje6GOtjc7ce9AjkQHmkGJ0
lcLocation Configurationlc_2NAV9wlYHT9h9WMBoJaJN6qeMIU
invInventory Iteminv_2MNP5DWpneqTA8wQ5x9Jocrt4le
fpkgFulfilment Packagefpkg_2O0lrsZT3vA3GbwhLPZAkwcB6Xk
fliFulfilment Line Itemfli_2O0lsv9mCZ2O5pirMIM1y4eijR8
trkrTrackertrkr_2HsGj8hZxpZJgmk7x8sGZbdJuJP
teTracker Eventte_2HujkLxgghwIrRxtpeYgrOBugvD
tlTracker Locationtl_2HujkMprrlCNsL6vVXCLcQB0DQW
shpShipmentshp_2HrgKpL0t7e3MOtgwSWENt0ayAK
spkgShipment Packagespkg_2I8wA8rP0GIiflHRkWFExfYZDzD
rateShipment Raterate_2HrgLSjYv5BLYle1e8iHQQPZtAJ
batchBatchbatch_2HrvxcRZwItydr6Fkq2fDAfB6Y5
carCarriercar_2CoCIGI8CpiRiNDpe4ZIE5FPost
svcCarrier Servicesvc_2CukfkHF0ISnMotW5JuT5GN7CRa
caCarrier Accountca_2CoCobSWcZWI75C44fCCIHoO4vU
csrdCustoms Recordcsrd_2IMflr5JT4YTU4QQBqhRbDGKFjJ
docDocumentdoc_2HrgLPaYZomkoaiChDARrW1jq24
mfstManifestmfst_2IqOoM9hYSHQ9JhnsAnFbp9c3mB
accProvider Accountacc_2G631UfaO7Yh3tOrb6JaMQez0UTTypically this is not seen in any responses, as provider accounts are internal. Generally Carrier Accounts are what an API would return.
errErrorerr_2LFqDMQIXZreS2ysbTVIzxANeKL
feeFeefee_2I8wASP0j31aL4pxVo9EaJL3x5vA fee associated with use of a service. Fee resources are generally only returned when usage of a service incurs additional costs outside of the normal billing.