Skip to main content
POST
/
api
/
external
/
issuance
/
credentials
curl --request POST \
  --url https://api.getrecord.in/api/external/issuance/credentials \
  --header 'Authorization: Bearer sk_test_your_token_here' \
  --header 'Content-Type: application/json' \
  --data '{
    "programId": "prog_1779172339924_j3pr93",
    "batchName": "May 2025 Cohort",
    "recipients": [
      {
        "name": "Alice Johnson",
        "email": "alice@example.com"
      },
      {
        "name": "Bob Smith",
        "email": "bob@example.com"
      }
    ]
  }'
{
  "success": true,
  "message": "Credentials issued successfully",
  "data": {
    "batchId": "batch_1779353381048_e3ixqz",
    "programId": "prog_1779172339924_j3pr93",
    "batchName": "May 2025 Cohort",
    "orgId": "org_1779085658651_hmhfv5",
    "mode": "test",
    "status": "issued",
    "recipients": [
      {
        "recipientId": "rec_1779353381048_ab12cd",
        "name": "Alice Johnson",
        "email": "alice@example.com",
        "credentialUrl": "https://app.getrecord.in/credential/rec_1779353381048_ab12cd"
      },
      {
        "recipientId": "rec_1779353381049_ef34gh",
        "name": "Bob Smith",
        "email": "bob@example.com",
        "credentialUrl": "https://app.getrecord.in/credential/rec_1779353381049_ef34gh"
      }
    ],
    "issuedAt": "2025-05-21T08:09:41.048Z"
  }
}

Overview

Creates a new credential batch and issues a unique, shareable credential URL to each recipient. The batch is immediately queryable via Get Credential Batch.
Requires Content-Type: application/json and a valid API token. All recipients in a batch are tied to the same programme.

Request Body

FieldTypeRequiredDescription
programIdstringYesThe programme to issue credentials under
batchNamestringYesA label for this batch of credentials
recipientsarrayYesOne or more recipient objects
recipients[].namestringYesRecipient full name
recipients[].emailstringYesRecipient email address

Response Fields

FieldTypeDescription
batchIdstringUnique batch identifier — use with GET /credentials/{batchId}
programIdstringProgramme this batch belongs to
batchNamestringName given to this batch
orgIdstringOrganisation
modestring"live" or "test"
statusstringAlways "issued" on creation
recipientsarrayArray of issued credentials
recipients[].recipientIdstringUnique credential ID per recipient
recipients[].credentialUrlstringPublic URL to view the credential
issuedAtstringISO 8601 timestamp

Error Codes

CodeHTTPDescription
MISSING_PROGRAM_ID400programId missing from request body
MISSING_BATCH_NAME400batchName missing from request body
MISSING_RECIPIENTS400recipients missing or empty array
UNAUTHORIZED401Token missing or invalid
NOT_FOUND404programId does not exist or belongs to another org
curl --request POST \
  --url https://api.getrecord.in/api/external/issuance/credentials \
  --header 'Authorization: Bearer sk_test_your_token_here' \
  --header 'Content-Type: application/json' \
  --data '{
    "programId": "prog_1779172339924_j3pr93",
    "batchName": "May 2025 Cohort",
    "recipients": [
      {
        "name": "Alice Johnson",
        "email": "alice@example.com"
      },
      {
        "name": "Bob Smith",
        "email": "bob@example.com"
      }
    ]
  }'
{
  "success": true,
  "message": "Credentials issued successfully",
  "data": {
    "batchId": "batch_1779353381048_e3ixqz",
    "programId": "prog_1779172339924_j3pr93",
    "batchName": "May 2025 Cohort",
    "orgId": "org_1779085658651_hmhfv5",
    "mode": "test",
    "status": "issued",
    "recipients": [
      {
        "recipientId": "rec_1779353381048_ab12cd",
        "name": "Alice Johnson",
        "email": "alice@example.com",
        "credentialUrl": "https://app.getrecord.in/credential/rec_1779353381048_ab12cd"
      },
      {
        "recipientId": "rec_1779353381049_ef34gh",
        "name": "Bob Smith",
        "email": "bob@example.com",
        "credentialUrl": "https://app.getrecord.in/credential/rec_1779353381049_ef34gh"
      }
    ],
    "issuedAt": "2025-05-21T08:09:41.048Z"
  }
}