Home/Docs

Gift Cards

Gift cards are the core resource in Link App. Create one for a customer, store the returned card_number, and use that card number later when initiating payments or payouts.

Variables

Create Gift Card

Creates a gift card for a customer identified by phone number. The API returns the card details.

Endpoint

POST https://api.chapa.link/card
Authorization: Bearer {{API_KEY}}
Content-Type: application/json

Request Body

{
  "first_name": "Abebe",
  "last_name": "Bikila",
  "phone_number": "+251960724272",
  "currency": "ETB"
}
FieldRequiredDescription
phone_numberYesCustomer phone, e.g. +251...
currencyYesETB, USD, DJF, or UGX
first_nameSometimesRequired if this phone number is new to Link
last_nameNoCustomer last name

Each customer can only have one card per currency on your account. If a card already exists, you'll get an error — use the existing card_number instead.

Success Response

{
  "status": "success",
  "message": "Gift card created successfully",
  "data": {
    "ref_id": "GCP81523171v",
    "name": "Abebe Bikila",
    "card_number": "9285944660",
    "currency": "ETB",
    "status": 1,
    "last_four": "4660",
    "is_scoped": 1,
    "business_id": 467736,
    "available_amount": 0,
    "created_at": "2026-06-15T11:32:51.740639545Z",
    "updated_at": "2026-06-15T11:32:51.740639545Z"
  }
}

status: 1 means the card is active.

Error Responses

StatusMessageWhen
400Validation errorMissing or invalid fields (e.g. unsupported currency)
400Invalid phone numberPhone number is not in a valid international format
404User not foundPhone number is new and first_name was not provided
409Gift card already existsCustomer already has a card for this currency on your account
{
  "status": "error",
  "message": "Validation error",
  "error": {
    "currency": "Currency must be one of: ETB, USD, DJF, UGX"
  }
}
{
  "status": "error",
  "message": "Gift card already exists. A gift card already exists for this user, currency, and business",
  "error": "A gift card already exists for this user, currency, and business"
}

List Gift Cards

This returns gift cards created under that business for it's customers.

GET https://api.chapa.link/card?page=1&limit=15
Authorization: Bearer {{API_KEY}}
QueryDescription
pagePage number (default 1)
limitItems per page (default 15)
phone_numberFilter by phone number(9...)

No country code when filtering gift cards with phone number.

Success Response

{
  "status": "success",
  "message": "Gift cards fetched successfully",
  "data": {
    "items": [
      {
        "ref_id": "GCP81523171v",
        "name": "Abebe Bikila",
        "card_number": "9285944660",
        "currency": "ETB",
        "status": 1,
        "last_four": "4660",
        "is_scoped": 1,
        "business_id": 467736,
        "available_amount": 1000,
        "created_at": "2026-06-15T03:52:25.663456Z",
        "updated_at": "2026-06-15T03:52:25.663456Z"
      },
      {
        "ref_id": "GCP81523171v",
        "name": "Derartu Tulu",
        "card_number": "911123456",
        "currency": "ETB",
        "status": 1,
        "last_four": "4660",
        "is_scoped": 1,
        "business_id": 467736,
        "available_amount": 0,
        "created_at": "2026-06-15T11:32:51.740639Z",
        "updated_at": "2026-06-15T11:32:51.740639Z"
      },
    ],
    "page": 1,
    "pages": 1,
    "size": 15,
    "total": 2
  }
}

Error Responses

StatusMessageWhen
401UnauthorizedMissing or invalid API key
403ForbiddenAPI key is inactive or not set up for gift cards

Gift Card Detail

returns one gift card identified by its card number

GET https://api.chapa.link/card/9580246965
Authorization: Bearer {{API_KEY}}
{
  "status": "success",
  "message": "Gift card fetched successfully",
  "data": {
    "ref_id": "GCP81523171v",
    "name": "Abebe Bikila",
    "card_number": "9285944660",
    "currency": "ETB",
    "status": 1,
    "last_four": "4660",
    "is_scoped": 1,
    "business_id": 467736,
    "available_amount": 1000,
    "created_at": "2026-06-15T03:52:25.663456Z",
    "updated_at": "2026-06-15T03:52:25.663456Z"
  }
}

Error Responses

StatusMessageWhen
400Invalid card numbercard_number path parameter is missing
404Gift card not foundCard does not exist or does not belong to your business
{
  "status": "error",
  "message": "Gift card not found. The provided gift card does not exist",
  "error": "The provided gift card does not exist"
}

Enable or Disable a Card

PATCH https://api.chapa.link/card/5610764625
Authorization: Bearer {{API_KEY}}
Content-Type: application/json
{
  "status": "disable"
}

Successful Response

{
  "status": "success",
  "message": "Gift card disabled successfully",
  "data": {
    "ref_id": "GCP81523171v",
    "name": "Abebe Bikila",
    "card_number": "9285944660",
    "currency": "ETB",
    "status": 3,
    "last_four": "4660",
    "is_scoped": 1,
    "business_id": 467736,
    "available_amount": 0,
    "created_at": "2026-06-15T11:32:51.740639Z",
    "updated_at": "2026-06-15T11:38:53.778477Z"
  }
}

Use "enable" to turn the card back on. Disabled cards cannot be used for payments or payouts.

{
  "status": "enable"
}

Successful Response

{
  "status": "success",
  "message": "Gift card enabled successfully",
  "data": {
    "ref_id": "GCP81523171v",
    "name": "Abebe Bikila",
    "card_number": "9285944660",
    "currency": "ETB",
    "status": 1,
    "last_four": "4660",
    "is_scoped": 1,
    "business_id": 467736,
    "available_amount": 0,
    "created_at": "2026-06-15T11:32:51.740639Z",
    "updated_at": "2026-06-15T11:38:53.778477Z"
  }
}

Error Responses

StatusMessageWhen
400Validation errorstatus is missing or not enable / disable
400Invalid card numbercard_number path parameter is missing
404Gift card not foundCard does not exist or does not belong to your business
403Cannot enableCard was disabled by another actor and only they can re-enable it
409Already disabledCard is already disabled
{
  "status": "error",
  "message": "Validation error",
  "error": {
    "status": "Status must be one of: enable, disable"
  }
}
{
  "status": "error",
  "message": "Cannot enable. Only merchant may re-enable this card",
  "error": "Only merchant may re-enable this card"
}

Cancel Gift Card

Cancels a gift card identified by its card number. The card must belong to your business. After cancellation, the card no longer appears in list or detail responses and cannot be used for payments or payouts.

You can create a new card for the same customer and currency after cancelling the previous one.

Endpoint

DELETE https://api.chapa.link/card/9285944660
Authorization: Bearer {{API_KEY}}

No request body.

Success Response

{
  "status": "success",
  "message": "Gift card cancelled successfully",
  "data": null
}

Error Responses

StatusMessageWhen
400Invalid card numbercard_number path parameter is missing
404Gift card not foundCard does not exist or does not belong to your business
{
  "status": "error",
  "message": "Gift card not found. The provided gift card does not exist",
  "error": "The provided gift card does not exist"
}

Tips