---
title: "Issue badge to multiple customers"
method: POST
path: "/api_gateway/v1/badges/customer/earnBulk"
---

# Issue badge to multiple customers

`POST /api_gateway/v1/badges/customer/earnBulk`

## Request body

- object
  - `badgeMetaId` string, required — Unique identifier ("id") generated during the creation of the badge.
  - `customerId` number, required — Unique identifier for the customer.
  - `requestId` string, required — Enter a unique identifier to identify the request.
  - `earnEventDate` string, date — Defines the date on which the customer performed the activity. This date can be set up to 24 hours in the future from the current time, which allows badges to be earned based on when the customer's action occurred, not just when the system processes it. * The earn event date has to be between the badge start date and end date if it is a direct earn type of badge. * The earn event date has to be set between the badge issual start date and end date if it is an issue & earn type of badge. * You can enter a past date to issue a badge against an older transaction. * This field will be deprecated in the future and is being replaced by earnEventDateISO.
  - `earnEventDateISO` string — Defines the date on which the customer performed the activity in ISO 8601 format in UTC and is independent of the user's local time zone. For example: The activity was performed at 11:20:00 on March 15, 2026. Format for the request parameter: 2026-03-15T11:20:00Z. Notes: * This date can be set up to 24 hours in the future from the current time. * For direct earn badges, the date must be between the badge start and end date. * For issue & earn badges, the date must be between the badge issue's start and end date. * A past date can be entered to issue a badge against an older transaction. * Only if earnEventDateISO is null, earnEventDate parameter will be used. Time format: ISO 8601 time format eg. "2025-09-10T15:00:00+05:30"
  - `triggeredBy` object, required — The object containing information about what triggered the action.
    - `ownerType` 'Loyalty' | 'Loyalty_Promotion' | 'Referral_Campaigns' | 'Journeys' | 'Audience_Campaigns' | 'Rewards_Catalog' | 'Goodwill_Module' | 'Milestones' | 'Historical_Import', required — The module for which the badge is being issued. Supported values: Loyalty, Loyalty_Promotion, Referral_Campaigns, Journeys, Audience_Campaigns, Rewards_Catalog, Goodwill_Module, Milestones, Historical_Import
    - `referenceId` string, required — Enter a unique identifier to identify the owner (ownerType). The referenceId passed here should be the same as the referenceId in the claim badge API.
  - `issueEventDate` string — Specifies when the badge issuance event happened, in ISO 8601 format, including the region offset. (Optional: defaults to current time). For example, the badge issuance event happened at 14:30:45 on December 16, 2025, in India. Format for the request parameter: 2025-12-16T14:30:45+05:30. Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.

## Response `200`

200

- union
  - object
    - `data` object
      - `badgeMetaId` string
      - `triggeredBy` object
        - `ownerType` string
        - `referenceId` string
      - `expiresOn` number
      - `issuedBadges` object[]
        - `customerId` integer
        - `issuedId` string
        - `error` unknown
      - `requestId` string
    - `errors` unknown[]
      - unknown
    - `warnings` unknown[]
      - unknown
  - object
    - `data` object
      - `badgeMetaId` string
      - `triggeredBy` object
        - `ownerType` string
        - `referenceId` string
      - `expiresOn` integer
      - `issuedBadges` object[]
        - `customerId` integer
        - `issuedId` string
        - `error` object
          - `code` integer
          - `message` string
          - `reference` unknown
        - `status` string
      - `requestId` string
    - `errors` unknown[]
      - unknown
    - `warnings` unknown[]
      - unknown

## Other responses

- `409` — 409

---

[API](https://skmtc.dev/capillarytech/apis/sample-api.md) · [All operations](https://skmtc.dev/capillarytech/apis/sample-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/capillarytech/sample-api/revisions/de241f2ed9b3/schema)
