UPP Docs
Card

Get card details

GET
/cards/{cardId}

Authorization

merchantApiKeymerchantTimestampmerchantNoncemerchantSignature
headerX-API-KEY<token>

Merchant API key (starts with upk_, also accepts api-key); signing headers are also required

headerX-Timestamp<token>

Unix timestamp in seconds, within 300 seconds of server time

headerX-Nonce<token>

Unique per request; cannot be reused with the same credential during the timestamp validity window

headerX-Signature<token>

Hex HMAC-SHA256 signature (either letter case) of the method, full path, timestamp, nonce and body digest

Path Parameters

cardId*string

Response Body

Card, with the most recently synced balance

application/json
  1. response
id*string

Card ID (starts with card_)

card_product_id*|

Card product ID, same as id in GET /card-products

application_id*|

The card application that issued this card (starts with cap_)

order_no*|

Order number of the card application

cardholder_id*|

Cardholder (starts with chd_); null when the product does not need cardholders

customer_id*|

The cardholder's customer (starts with cus_)

currency*|

Card currency

status*CardStatus
  • pending_active: issued, not yet activated by the issuer
  • active: usable
  • freezing / unfreezing: freeze or unfreeze in progress
  • frozen: frozen
  • terminating: termination in progress
  • terminated: terminated (cards terminated at the issuer or bank also become terminated after a sync)

To freeze, unfreeze or terminate, see POST /cards/{cardId}/freeze, /unfreeze and /terminate.

Value in"pending_active""active""freezing""unfreezing""frozen""terminating""terminated"
created_at*string

Issued at

Formatdate-time
updated_at*string
Formatdate-time
balance*|

Available balance last synced from the issuer, in the card currency at its precision; null if never synced. It is synced automatically after issuing, after a top-up or withdrawal concludes, and after a card transaction moves forward. This endpoint does not query the issuer, so the balance may be stale; check synced_at

synced_at*|

Last sync time; null if never synced

Formatdate-time
returned_balance*|

Card balance the issuer returned after termination and credited to the available balance, in the card currency at its precision; null until returned

balance_returned_at*|

When the returned balance was credited; null until returned

Formatdate-time
balance_return_transaction_id*|

The card_refund transaction that credited the returned balance (starts with txn_, readable with GET /transactions/{transactionId}); null until returned or when nothing is returned

Example Request
curl -X GET 'https://sandbox.getupp.net/api/v1/cards/string'
Example Response
{  "id": "card_01m5nspbjc0ar8vsnxqc1e0wgp",  "card_product_id": "cpd_01JBXA3M6N8Q2R4T6V8W0Y2Z4K",  "application_id": "cap_01m5nsnf0fpnsynqtrp00eb6yz",  "order_no": "MP01M5NSNF0BDEF371CNVVCS5D0G",  "cardholder_id": null,  "customer_id": null,  "currency": "USD",  "status": "active",  "created_at": "2026-10-24T01:51:34.000000Z",  "updated_at": "2026-10-24T02:00:05.000000Z",  "balance": "40.00",  "synced_at": "2026-10-24T02:00:05.000000Z",  "returned_balance": null,  "balance_returned_at": null,  "balance_return_transaction_id": null}