---
title: "Issue Badge"
method: PUT
path: "/v1/badge/{badge_id}/issue"
tags: ["Badge"]
---

# Issue Badge

`PUT /v1/badge/{badge_id}/issue`

Create a badge assertion and issue a badge to a user (or organisation).

Issuing to an organisation follows the same functionally as issuing to a user,
except that the user will be accepting the badge on behalf of their organisation.

Required:
- `provider_id` - Assertions are issued from a provider. This ID must be one of the badge's providers.

If the user ID is known (the user has a Navigatr account):
- `recipient_id`

If the user ID is not known (the user may or may not have a Navigatr account):
- `recipient_email`
- `recipient_firstname`
- `recipient_lastname`

If the user QR code is known (the user has a Navigatr account):
- `qr_id`

If the user's Spydus library card barcode ID is known (the user has a Navigatr account):
- `spydus_barcode_id`

If the assertion is for an organisation:
- `recipient_organisation` - Name of the organisation (as it should appear on the assertion).

Optional:
- `issue_date` - the date when the assertion will become valid.
- `end_date` - the date when this assertion should expire.
- `evidence_text` - a plain text field to add evidence e.g. Recipient completed the course XYZ on ABC.
- `evidence_url` - a URL linking to the evidence. It should be a valid URL, otherwise the badge will not be issued.
- `score` - the score the user achieved. This is used to determine if the badge should be issued. Leave blank if the badge should be issued regardless of the score.
- `min_score` - the minimum score required to issue the badge. If the score is lower than this, the badge will not be issued. Leave blank if the badge should be issued regardless of the score.

## Path parameters

- `badge_id` integer, required

## Headers

- `X-Access-Token` string, nullable

## Request body

- BodyBadgeIssueBadge
  - `provider_id` integer, required
  - `qr_id` string
  - `spydus_barcode_id` string
  - `recipient_id` integer
  - `recipient_firstname` string
  - `recipient_lastname` string
  - `recipient_organisation` string
  - `recipient_email` string
  - `issue_date` string, date-time
  - `end_date` string, date-time
  - `evidence_text` string
  - `evidence_url` string
  - `score` integer
  - `min_score` integer

## Response `200`

Successful Response

- BadgeAssertion
  - `recipient_email` string, nullable
  - `recipient_firstname` string, nullable
  - `recipient_lastname` string, nullable
  - `recipient_organisation` string, nullable
  - `recipient_id` integer, nullable
  - `end_date` string, date-time, nullable
  - `image_url` string, nullable
  - `image_url_2x` string, nullable
  - `image_url_original` string, nullable
  - `narrative` string, nullable
  - `source` 'Internal' | 'Credly' | 'Open_University' | 'Imported'
  - `external_id` string, nullable
  - `external_url` string, nullable
  - `badge_issuer_id` integer, nullable
  - `provider_id` integer, nullable
  - `evidence` BadgeAssertionEvidence[], nullable, required
    - `name` string, nullable
    - `description` string, nullable
    - `type` 'UrlEvidence' | 'PlainTextEvidence' | 'IdEvidence' | 'KeyValueGroupEvidence'
    - `narrative` string, nullable
    - `genre` string, nullable
    - `audience` string, nullable
    - `value` string, nullable
    - `external_id` string, nullable
    - `id` integer, required
    - `badge_assertion_id` integer
    - `values` BadgeAssertionEvidenceValues[], nullable, required
      - `key` string, nullable
      - `value` string, nullable
      - `url` string, nullable
  - `issue_date` string, date-time, nullable
  - `time_verified` string, date-time, nullable
  - `id` integer
  - `status` 'Pending' | 'Claimed' | 'Expired' | 'Revoked' | 'Deleted' | 'Failed' | 'Complained'
  - `issuing_method` 'Email' | 'Activity' | 'Autobadge' | 'Bulk' | 'API' | 'Pushed' | 'Migrated' | 'QR' | 'Library_Card' | 'Riddle' | 'Typeform' | 'Zoho_Forms' | 'Tally' | 'Imported' | 'Pathway'
  - `seo_keywords` string[], nullable
  - `seo_title` string, nullable
  - `seo_description` string, nullable
  - `recipient` UserDetailPublic
    - `id` integer
    - `firstname` string, nullable, required
    - `lastname` string, nullable, required
    - `avatar_url` string, nullable
    - `avatar_url_2x` string, nullable
    - `avatar_url_original` string, nullable
    - `interests` string[], nullable
    - `noindex_enabled` boolean, nullable
    - `time_created` string, date-time
    - `time_updated` string, date-time, nullable
    - `seo_keywords` string[], nullable
    - `seo_title` string, nullable
    - `seo_description` string, nullable
    - `social_handle_linkedin` string, nullable
    - `social_handle_twitter` string, nullable
    - `social_handle_facebook` string, nullable
    - `social_handle_instagram` string, nullable
  - `issuer` BadgeIssuer
    - `name` string, nullable
    - `type` 'Employer' | 'Learning_Provider' | 'Other'
    - `description` string, nullable
    - `address` string, nullable
    - `source` 'Internal' | 'Credly' | 'Open_University' | 'Imported'
    - `source_credly_id` integer, nullable
    - `external_id` string, nullable
    - `external_url` string, nullable
    - `email` string, nullable
    - `image_url` string, nullable
    - `banner_url` string, nullable
    - `image_url_2x` string, nullable
    - `banner_url_2x` string, nullable
    - `id` integer
    - `status` 'Active' | 'Suspended' | 'Deleted'
    - `created_by_id` integer, nullable
    - `updated_by_id` integer, nullable
    - `time_created` string, date-time
    - `time_updated` string, date-time, nullable
  - `provider` ProviderPublic
    - `id` integer
    - `status` 'Active' | 'Suspended' | 'Deleted'
    - `type` 'Learning_Provider' | 'Training_Provider' | 'Awarding_Body' | 'Employer' | 'Local_Authority' | 'University' | 'College' | 'Charity' | 'Department' | 'Project' | 'Other'
    - `name` string, nullable
    - `short_name` string, nullable
    - `description` string, nullable
    - `external_url` string, nullable
    - `is_verified` boolean, nullable
    - `verification_text` string, nullable
    - `verification_url` string, nullable
    - `is_demo` boolean, nullable
    - `open_access` boolean
    - `community_id` integer, nullable
    - `community` CommunityPublic, required
      - `id` integer
      - `status` 'Active' | 'Suspended' | 'Deleted'
      - `type` 'City' | 'Region' | 'Local_Authority' | 'Membership_Organisation' | 'Awarding_Body' | 'Partnership' | 'Corporate' | 'Association' | 'University' | 'College' | 'Charity' | 'Other'
      - `name` string, nullable
      - `short_name` string, nullable
      - `description` string, nullable
      - `external_url` string, nullable
      - `address` string, nullable
      - `latitude` number, nullable
      - `longitude` number, nullable
      - `is_verified` boolean, nullable
      - `verification_text` string, nullable
      - `verification_url` string, nullable
      - `is_demo` boolean, nullable
      - `colour` string, nullable
      - `spydus_library_url` string, nullable
      - `referral_code` string, nullable
      - `image_url` string, nullable
      - `banner_url` string, nullable
      - `image_url_2x` string, nullable
      - `banner_url_2x` string, nullable
      - `image_url_original` string, nullable
      - `banner_url_original` string, nullable
      - `linkedin_organisation_id` integer, nullable
      - `social_handle_linkedin` string, nullable
      - `social_handle_twitter` string, nullable
      - `social_handle_facebook` string, nullable
      - `social_handle_instagram` string, nullable
      - `seo_title` string, nullable
      - `seo_description` string, nullable
      - `seo_keywords` string[], nullable
      - `url` string, nullable
    - `latitude` number, nullable
    - `longitude` number, nullable
    - `image_url` string, nullable
    - `banner_url` string, nullable
    - `image_url_2x` string, nullable
    - `banner_url_2x` string, nullable
    - `image_url_original` string, nullable
    - `banner_url_original` string, nullable
    - `brand_colours` string[], nullable
    - `qa_community_id` integer, nullable
    - `linkedin_organisation_id` integer, nullable
    - `social_handle_linkedin` string, nullable
    - `social_handle_twitter` string, nullable
    - `social_handle_facebook` string, nullable
    - `social_handle_instagram` string, nullable
    - `seo_title` string, nullable
    - `seo_description` string, nullable
    - `seo_keywords` string[], nullable
    - `url` string, nullable
  - `badge` Badge
    - `name` string, nullable
    - `design_standard` 'Generic' | 'Navigatr'
    - `type` 'Experience' | 'Learning' | 'Validation' | 'Certification' | 'Attendance' | 'Work_Experience' | 'Volunteering' | 'Job' | 'Apprenticeship' | 'Course' | 'Internship' | 'Workshop' | 'Campaigning' | 'Activism' | 'Other' | 'Informal_Learning' | 'Training' | 'Certified' | 'Qualification' | 'Membership'
    - `language` 'Arabic_Modern_Standard' | 'Bengali' | 'Bulgarian' | 'Chinese_Cantonese' | 'Chinese_Mandarin' | 'Chinese_Simplified' | 'Chinese_Traditional' | 'Croatian' | 'Czech' | 'Dutch' | 'English' | 'French' | 'German' | 'Greek' | 'Hungarian' | 'Irish_Gaeilge' | 'Italian' | 'Kurdish_Kurmanji' | 'Kurdish_Sorani' | 'Latvian' | 'Lithuanian' | 'Pashto' | 'Persian' | 'Polish' | 'Portuguese' | 'Punjabi' | 'Romanian' | 'Scottish_Gaelic_Gaidhlig' | 'Slovak' | 'Somali' | 'Spanish' | 'Tigrinya' | 'Turkish' | 'Ukrainian' | 'Urdu' | 'Welsh_Cymraeg'
    - `provider_ids` integer[], nullable
    - `community_ids` integer[], nullable
    - `recipient_type` 'User' | 'Organisation'
    - `description` string, nullable
    - `issuer_id` integer, nullable
    - `image_url` string, nullable
    - `image_url_2x` string, nullable
    - `image_url_original` string, nullable
    - `design_parameters` unknown
    - `source` 'Internal' | 'Credly' | 'Open_University' | 'Imported'
    - `earn_url` string, nullable
    - `external_url` string, nullable
    - `information_url` string, nullable
    - `embed` string, nullable
    - `external_id` string, nullable
    - `latitude` number, nullable
    - `longitude` number, nullable
    - `city` string, nullable
    - `country` string, nullable
    - `config` unknown
    - `address` string, nullable
    - `available_to_all` boolean, nullable
    - `availability` string, nullable
    - `end_date` string, date-time, nullable
    - `cost` 'Free' | 'Paid' | 'Other'
    - `level` 'Foundational' | 'Intermediate' | 'Advanced' | 'Other' | 'Explore' | 'Deepen' | 'Apply' | 'Teach' | 'Lead'
    - `time_to_earn` 'Hours' | 'Days' | 'Weeks' | 'Months' | 'Years' | 'Other'
    - `participation_type` 'Online' | 'Hybrid' | 'In_Person'
    - `qa_required` boolean, nullable
    - `job_feed_enabled` boolean, nullable
    - `job_feed_levels` JobLevel[], nullable
    - `job_feed_companies` string[], nullable
    - `job_titles` string[], nullable
    - `is_demo` boolean, nullable
    - `industries` string[], nullable
    - `occupation_groups` string[], nullable
    - `skill_category_names` string[], nullable
    - `edu_levels` string[], nullable
    - `id` integer
    - `status` 'Initialising' | 'Draft' | 'Awaiting_Approval' | 'Published' | 'Deleted' | 'Expired'
    - `created_by` UserDetailPublic
      - `id` integer
      - `firstname` string, nullable, required
      - `lastname` string, nullable, required
      - `avatar_url` string, nullable
      - `avatar_url_2x` string, nullable
      - `avatar_url_original` string, nullable
      - `interests` string[], nullable
      - `noindex_enabled` boolean, nullable
      - `time_created` string, date-time
      - `time_updated` string, date-time, nullable
      - `seo_keywords` string[], nullable
      - `seo_title` string, nullable
      - `seo_description` string, nullable
      - `social_handle_linkedin` string, nullable
      - `social_handle_twitter` string, nullable
      - `social_handle_facebook` string, nullable
      - `social_handle_instagram` string, nullable
    - `submitted_by` UserDetailPublic
      - `id` integer
      - `firstname` string, nullable, required
      - `lastname` string, nullable, required
      - `avatar_url` string, nullable
      - `avatar_url_2x` string, nullable
      - `avatar_url_original` string, nullable
      - `interests` string[], nullable
      - `noindex_enabled` boolean, nullable
      - `time_created` string, date-time
      - `time_updated` string, date-time, nullable
      - `seo_keywords` string[], nullable
      - `seo_title` string, nullable
      - `seo_description` string, nullable
      - `social_handle_linkedin` string, nullable
      - `social_handle_twitter` string, nullable
      - `social_handle_facebook` string, nullable
      - `social_handle_instagram` string, nullable
    - `published_by` UserDetailPublic
      - `id` integer
      - `firstname` string, nullable, required
      - `lastname` string, nullable, required
      - `avatar_url` string, nullable
      - `avatar_url_2x` string, nullable
      - `avatar_url_original` string, nullable
      - `interests` string[], nullable
      - `noindex_enabled` boolean, nullable
      - `time_created` string, date-time
      - `time_updated` string, date-time, nullable
      - `seo_keywords` string[], nullable
      - `seo_title` string, nullable
      - `seo_description` string, nullable
      - `social_handle_linkedin` string, nullable
      - `social_handle_twitter` string, nullable
      - `social_handle_facebook` string, nullable
      - `social_handle_instagram` string, nullable
    - `updated_by` UserDetailPublic
      - `id` integer
      - `firstname` string, nullable, required
      - `lastname` string, nullable, required
      - `avatar_url` string, nullable
      - `avatar_url_2x` string, nullable
      - `avatar_url_original` string, nullable
      - `interests` string[], nullable
      - `noindex_enabled` boolean, nullable
      - `time_created` string, date-time
      - `time_updated` string, date-time, nullable
      - `seo_keywords` string[], nullable
      - `seo_title` string, nullable
      - `seo_description` string, nullable
      - `social_handle_linkedin` string, nullable
      - `social_handle_twitter` string, nullable
      - `social_handle_facebook` string, nullable
      - `social_handle_instagram` string, nullable
    - `issuer` BadgeIssuerPublic
      - `id` integer
      - `name` string, nullable
      - `type` 'Employer' | 'Learning_Provider' | 'Other'
      - `status` 'Active' | 'Suspended' | 'Deleted'
      - `external_url` string, nullable
      - `email` string, nullable
      - `image_url` string, nullable
      - `banner_url` string, nullable
      - `image_url_2x` string, nullable
      - `banner_url_2x` string, nullable
    - `ranking` integer, nullable
    - `time_created` string, date-time
    - `time_updated` string, date-time, nullable
    - `time_submitted` string, date-time, nullable
    - `time_published` string, date-time, nullable
    - `time_issued` string, date-time, nullable
    - `postal_address` Address
      - `full_address` string, nullable
      - `name` string, nullable
      - `number` string, nullable
      - `street` string, nullable
      - `postcode` string, nullable
      - `locality` string, nullable
      - `city` string, nullable
      - `district` string, nullable
      - `region` string, nullable
      - `country` string, nullable
    - `created_by_id` integer, nullable
    - `submitted_by_id` integer, nullable
    - `published_by_id` integer, nullable
    - `updated_by_id` integer, nullable
    - `criteria` BadgeCriteria[], nullable
      - `external_id` string, nullable
      - `description` string, nullable
      - `type` 'Application' | 'Assessment' | 'Award' | 'Badge' | 'Course' | 'Credential' | 'Education_Experience' | 'Leadership' | 'Member' | 'Participant' | 'Pathway' | 'Payment' | 'Portfolio' | 'Presenter' | 'Project' | 'Professional_Experience' | 'Schedule_Registration' | 'Volunteer' | 'Other'
      - `external_url` string, nullable
      - `badge_id` integer, nullable
      - `id` integer, nullable
    - `tags` BadgeTag[], nullable
      - `name` string, nullable
      - `external_id` string, nullable
      - `type` string, nullable
      - `source` string, nullable
    - `alignments` BadgeAlignment[], nullable
      - `external_id` string, nullable
      - `name` string, nullable
      - `description` string, nullable
      - `url` string, nullable
      - `framework` string, nullable
      - `code` string, nullable
      - `id` integer, nullable
      - `badge_id` integer, nullable
    - `endorsements` BadgeEndorsement[], nullable
      - `external_id` string, nullable
      - `name` string, nullable
      - `description` string, nullable
      - `url` string, nullable
      - `image_url` string, nullable
      - `image_url_2x` string, nullable
      - `image_url_original` string, nullable
      - `id` integer, nullable
      - `badge_id` integer, nullable
    - `collections` CollectionLight[], nullable
      - `id` integer, required
      - `name` string, nullable
      - `badge_issuer_id` integer, nullable
    - `providers` ProviderLight[], nullable
      - `id` integer, required
      - `status` 'Active' | 'Suspended' | 'Deleted'
      - `type` 'Learning_Provider' | 'Training_Provider' | 'Awarding_Body' | 'Employer' | 'Local_Authority' | 'University' | 'College' | 'Charity' | 'Department' | 'Project' | 'Other'
      - `name` string, nullable
      - `short_name` string, nullable
      - `external_url` string, nullable
      - `is_verified` boolean, nullable
      - `verification_text` string, nullable
      - `verification_url` string, nullable
      - `is_demo` boolean, nullable
      - `open_access` boolean
      - `community_id` integer, nullable
      - `community` CommunityLight, required
        - `id` integer, required
        - `status` 'Active' | 'Suspended' | 'Deleted'
        - `type` 'City' | 'Region' | 'Local_Authority' | 'Membership_Organisation' | 'Awarding_Body' | 'Partnership' | 'Corporate' | 'Association' | 'University' | 'College' | 'Charity' | 'Other'
        - `name` string, nullable
        - `short_name` string, nullable
        - `is_verified` boolean, nullable
        - `image_url` string, nullable
        - `image_url_2x` string, nullable
        - `image_url_original` string, nullable
        - `linkedin_organisation_id` integer, nullable
        - `social_handle_linkedin` string, nullable
        - `social_handle_twitter` string, nullable
        - `social_handle_facebook` string, nullable
        - `social_handle_instagram` string, nullable
        - `url` string, nullable
      - `image_url` string, nullable
      - `banner_url` string, nullable
      - `image_url_2x` string, nullable
      - `banner_url_2x` string, nullable
      - `image_url_original` string, nullable
      - `banner_url_original` string, nullable
      - `qa_community_id` integer, nullable
      - `linkedin_organisation_id` integer, nullable
      - `social_handle_linkedin` string, nullable
      - `social_handle_twitter` string, nullable
      - `social_handle_facebook` string, nullable
      - `social_handle_instagram` string, nullable
      - `url` string, nullable
    - `interacted_with` boolean, nullable
    - `featured` boolean
    - `ai_generated` boolean
    - `url` string
    - `seo_keywords` string[], nullable
    - `seo_title` string, nullable
    - `seo_description` string, nullable
  - `time_created` string, date-time
  - `time_updated` string, date-time, nullable
  - `created_by_id` integer, nullable
  - `updated_by_id` integer, nullable
  - `reject_code` string, nullable, required
  - `revocation_reason` string, nullable
  - `url` string, nullable
  - `badge_id` integer, nullable
  - `reminder_emails_sent` integer, nullable
  - `time_claimed` string, date-time, nullable
  - `change_request` BadgeAssertionChangeRequest[], nullable
    - `id` string, required
    - `changes` BadgeAssertionChangeRequestItem[], required
      - `field` 'recipient_firstname' | 'recipient_lastname' | 'recipient_organisation' | 'extend_expiry', required
      - `value` string, nullable
      - `status` 'requested' | 'approved' | 'rejected'
      - `reason` string, nullable
    - `note` string, nullable
    - `time_created` string, date-time, required
    - `last_reminded_at` string, date-time, nullable
    - `reminder_count` integer, nullable

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Unprocessable Content

---

[API](https://skmtc.net/navigatr/apis/navigatr-api.md) · [All operations](https://skmtc.net/navigatr/apis/navigatr-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/navigatr/navigatr-api/revisions/4039d06e340b/schema)
