Card Topup

Goal: add funds to a card. The total amount (topup plus fees) is charged to the master balance when the order is created.

Review the encrypted request rules in Overview before starting.

Workflow steps

  1. Create the topup order

    Submit the topup request with card_id and amount. Include the Idempotency-Key header.

  2. Track the order

    Poll until the order reaches completed or failed.

API Endpoints

  • POST/api/v1/cards/topupCreate the topup order.
  • POST/api/v1/orders/checkTrack the topup order status.

Schemas

CardTopupOrder

FieldTypeRequiredDescription
order_id
stringRequiredOrder identifier.
order_type
stringRequiredOrder type (card_issue, card_topup, etc.).
status
stringRequiredOverall order status. Enum: new, activating, processing, completed, failed
card_id
stringOptionalRelated card identifier, if applicable.
balance_before
stringOptionalProject balance before this order (decimal string).
balance_after
stringOptionalProject balance after this order (decimal string).
last_error
stringOptionalLast error message when status is failed.
last_error_slug
stringOptionalMachine-readable error code.
data
objectRequiredOrder-specific data payload.
created_at
stringRequiredOrder creation time (ISO 8601).
completed_at
stringOptionalCompletion time (ISO 8601).
failed_at
stringOptionalFailure time (ISO 8601).
topup_status
stringOptionalSub-status for topup processing. Enum: new, provider_in_progress, new_error, provider_in_progress_error, provider_verification, provider_verification_error, completed, failed

Error table

These error slugs are the most common when topping up cards.

Error SlugDescription
idempotency_key_requiredMissing Idempotency-Key header.
invalid_amountTopup amount is invalid.
amount_below_minimumAmount is below the minimum allowed.
amount_above_maximumAmount is above the maximum allowed.
card_not_foundCard not found.
card_not_activeCard is not active.
currency_mismatchTopup currency does not match card currency.
insufficient_fundsMaster balance is too low for topup and fees.
invalid_pricingPricing rules are misconfigured.