nomiDocumentation
SupportBack to site
  • Getting started

    • Introduction
    • What is Nomi?
    • Quick start
    • Concepts
    • Authentication
  • Credentials

    • Create a credential
    • Issue a credential
    • Credential lifecycle
    • Revoke a credential
    • Verify a credential
    • QR verification
  • Distribution

    • Apple Wallet
    • Google Wallet
    • Email
    • Credential delivery
    • Bulk issuance
  • API

    • API overview
    • Authentication
    • Credentials API
    • Recipients
    • Verification
    • Revocation
    • Webhooks
    • Errors
  • Integrations

    • Moodle
    • WordPress
    • REST API
    • Webhooks
  • Security

    • Authentication
    • API keys
    • Webhook security
    • Data protection
    • Best practices
  • Resources

    • FAQ
    • Glossary
    • Changelog
  1. Documentation
  2. /
  3. Distribution
  4. /
  5. Bulk issuance

Bulk issuance

Issuing and sending at the scale of a graduation or an onboarding day.

There are three ways to do something for many people, and they are not interchangeable.

  1. 1

    Upsert the people first

    PUT /v1/subjects is idempotent on externalId, so a re-run of your sync is safe. A group can also be imported in one call with POST /v1/groups/{id}/import.

  2. 2

    Issue

    For wallet credentials, one POST /v1/credentials per person with an Idempotency-Key. For academic credentials, POST /v1/awards/bulk takes up to 500 recipients in one request.

  3. 3

    Send

    A campaign queues the messages and paces them, instead of emptying four hundred emails into a queue at once.

POST /v1/awards/bulk

curl -X POST https://api.nomi-tech.com/v1/awards/bulk \
  -H "Authorization: Bearer nomi_sk_live_EXAMPLE" \
  -H "Content-Type: application/json" \
  -d '{
    "achievementKey": "leadership_2026",
    "recipients": [
      { "subjectId": "sub_…" },
      { "subjectId": "sub_…", "narrative": "Completed with distinction." }
    ]
  }'

Every row is attempted on its own. One person missing a required field fails that row and nothing else — a graduation does not stop on the one record that was never filled in, and the response says exactly which ones to fix.

Acting on many at once

POST /v1/credentials/bulk applies suspend, resume, revoke or expire to a list of credential ids and answers with how many were applied and which failed.

Do not parallelise a bulk run across many connections. One ordered queue, with backoff when a request is refused, finishes sooner than several racing each other — and it is the only shape that can be picked up again after an interruption.

Errors

What to retry, and what not to.

Moodle

Where a cohort already exists.

PreviousCredential deliveryNextAPI overview

Still stuck?

If this page did not answer it, the Help Center has the operational side of the same question — and a person reads what you send.

Go to the Help Center →
nomi

Digital credential infrastructure. Create, issue and manage credentials from the systems you already use.

Operated by

Country and currency

Platform

  • How it works
  • Templates
  • Lifecycle
  • Developers
  • Pricing
  • FAQ
  • Nomi Academic

Credentials

  • Memberships
  • Employee IDs
  • Student IDs
  • Events & loyalty

Developers

  • Documentation
  • Quick start
  • API reference
  • Webhooks
  • Integrations

Support

  • Help Center
  • Apple & Google Wallet
  • Verification
  • Contact support

Company

  • Request a demo
  • Talk to Nomi
  • Legal
  • Codingraph
PrivacyTermsCookiesSecurityContact

© 2026 Codingraph S.A. All rights reserved.

Nomi is a registered trademark used by Codingraph S.A. under licence.

Billed in USD

Apple Wallet and Google Wallet are trademarks of their respective owners.