v1.0.02026-03-17
  • HTTP 401 now returned when API-KEY header is missing (was 404)
  • HTTP 403 now uniformly means invalid API key / project not found (was also used for "Insufficient funds")
  • 502 responses removed across all endpoints; provider errors now surfaced as 400 or 500
  • Idempotency-Key header removed from POST /cards/create and POST /cards/topup — pass idempotency_key in the request body instead
  • POST /users/get — request field renamed: user_idexternal_user_id
  • POST /users/create and GET /users/get responses now include user_id, project_id, usdt_balance, deposit_addresses, created_at, updated_at
  • POST /cardholders/createsubprovider_id and kyc_data no longer required; subprovider_code accepted as alternative to subprovider_id
  • POST /cardholders/get — can now look up by cardholder_id directly; response includes kyc_level, activated_at, project_id, user_id (replaces project_user_id)
  • POST /cards/createproduct_id no longer required; product_code accepted as alternative; kyc_data added as optional field; response now includes card_id and status
  • POST /cards/get — response now includes user_id, project_id, external_user_id, product_code, balance, label, lifecycle timestamps (issued_at, activated_at, frozen_at, closed_at); internal IDs (project_user_id, card_product_id, subprovider_id) removed
  • POST /cards/freeze and POST /cards/unfreeze — response no longer returns order_id; returns {success, card_id, status} instead
  • POST /cards/details — sensitive fields (card_number, cvv, expiry_month/year, billing_address) moved into nested details object; response now also includes card_id and status
  • POST /cards/balanceis_from_cache field removed; oneOf live/cached schema collapsed to a single unified schema
  • POST /cards/txs — added slug (type filter), limit, skip pagination fields; response now includes total count; card_id removed from response
  • POST /orders/check — response unified into single schema (was oneOf[IssueOrder, TopupOrder, StatusChangeOrder]); type-specific fields now in data: object; added balance_before, balance_after, last_error, last_error_slug
  • All find endpoints (/users/find, /cards/find, /cardholders/find) now return total, skip, limit in response
  • POST /wh/subscribe response now includes title field
  • Enum schemas removed from spec (values documented inline): CardStatus, OrderStatus, OrderType, CardHolderKYCStatus, CardHolderRegistrationStatus, CurrencyCode, KYCLevel
  • Webhook event payload schemas removed from spec: WebhookCardTransactionPayload, WebhookCardTopupPayload, WebhookCardStatusChangePayload, WebhookCardOtpPayload
  • All DTO schemas renamed to Verb + Noun convention (e.g. CardCreateRequestCreateCardRequest)