Quick start
From an API key to a credential on a phone, in four requests.
Four requests: create a key, upsert a person, define what they get, issue it. Everything below is a real endpoint with its real body — see Authentication first if you do not have a key yet.
Create an API key
In the console, under Settings. The key is shown once, starts with
nomi_sk_live_, and belongs to one organisation.Upsert the person
Subjects are keyed by your own identifier, so the same call can run twice without creating two people.
Define the credential
A template says what the credential shows and where each value comes from on the subject. Publish a version before issuing against it.
Issue it
The credential is created and moved to
issued; the wallets come backpendingwhile they render.
1. Upsert a subject
PUT /v1/subjects
curl -X PUT https://api.nomi-tech.com/v1/subjects \
-H "Authorization: Bearer nomi_sk_live_EXAMPLE" \
-H "Content-Type: application/json" \
-d '{
"externalId": "crm_example_001",
"displayName": "Alex Morgan",
"email": "alex@example.com",
"attributes": { "tier": "Platinum", "memberSince": "2021-03-04" }
}'The response carries the subject's id — sub_… — which is what the next call needs. PUT is idempotent on externalId: running your sync twice produces one subject, not two.
2. Issue a credential
POST /v1/credentials
curl -X POST https://api.nomi-tech.com/v1/credentials \
-H "Authorization: Bearer nomi_sk_live_EXAMPLE" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order_example_12345" \
-d '{
"subjectId": "sub_…",
"templateKey": "membership_platinum",
"channels": ["apple_wallet", "google_wallet"]
}'3. Hand it over
POST /v1/distributions
curl -X POST https://api.nomi-tech.com/v1/distributions \
-H "Authorization: Bearer nomi_sk_live_EXAMPLE" \
-H "Content-Type: application/json" \
-d '{
"credentialId": "cred_…",
"channel": "email",
"wallet": "apple_wallet",
"recipientEmail": "alex@example.com"
}'The response carries a url. That link is the whole delivery — printed as a QR code, written to an NFC tag or put inside an email, it is the same link.
4. Verify it
GET /public/credentials/{code}
curl https://api.nomi-tech.com/public/credentials/AB12-CD34No key on that one. Public verification is what a third party uses, and requiring an account would defeat it.