Partner API

Issue digital card

Creates a Taappa digital card for a customer phone number. If a verified card already exists for that phone under your provider, the existing card is returned.

POST/partner/v1/digital-cards

Request

http
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json
Idempotency-Key: <optional>
FieldTypeRequiredDescription
phonestringYesCustomer mobile number (normalized to E.164)
cardholder_namestringYesCardholder display name (1–120 characters)
json
{
  "phone": "+251911234567",
  "cardholder_name": "Amina Hassan"
}

In test mode, only predefined phone and name pairs are accepted.

Response

json
{
  "wallet_id": "6a959342454db4ecdc9fef5d",
  "provider": "telebirr",
  "phone_e164": "+251911234567",
  "masked_phone": "+251911234567",
  "card_number": "6288882195295846",
  "masked_card_number": "•••• •••• •••• 5846",
  "card_series": "3GGEN3QVVV",
  "card_issued_at": "2026-08-31T14:44:18.330000",
  "issued_on": "digital",
  "status": "verified",
  "is_default": true,
  "cardholder_name": "Amina Hassan",
  "created_at": "2026-08-31T14:44:18.326623",
  "unlinked_at": null
}
FieldTypeDescription
wallet_idstringWallet identifier for subsequent Partner API calls
providerstringProvider slug for your API key
phone_e164stringNormalized phone number
card_numberstringFull 16-digit PAN
masked_card_numberstringDisplay-safe PAN
card_seriesstring10-character series of the active digital card
statusstringverified or unlinked
cardholder_namestringCardholder name
created_atstringISO 8601 creation time
unlinked_atstring | nullPresent when the wallet is unlinked

Errors

StatusDetail
400Invalid phone number
400cardholder_name is required
401Not authenticated / Invalid API key

Example

bash
curl https://api.taappa.com/partner/v1/digital-cards \
  -H "Authorization: Bearer $TAAPPA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "+251911234567",
    "cardholder_name": "Amina Hassan"
  }'