Закрытие карты — асинхронная операция: вы отправляете запрос, карта переходит в статус closing, а после завершения — в closed. Остаток средств на карте на момент закрытия за вычетом комиссии за закрытие возвращается на баланс компании.
POST /cards/{id}/retireНужно право cards.retire. Заголовок Idempotency-Key необязателен.
curl -X POST 'https://b2b.lumowallet.io/cards/8c7f1823-.../retire' \
-H 'X-API-Key: YOUR_API_KEY'Возвращается карта в статусе closing (или сразу closed, если закрытие прошло мгновенно — например, в тестовом режиме). Ответ — 201.
{
"id": "8c7f1823-...",
"externalId": "user-42-card-1",
"status": "closing",
"maskedPan": "4466********1234",
"expiry": "03/29",
"assignedAt": "2026-04-23T12:00:00.000Z",
"createdAt": "2026-04-23T11:59:00.000Z",
"upayState": null,
"upayStateName": null
}- Карта переходит в
closing— пополнения по ней запрещены (POST /cards/rechargeвернётCARD_RECHARGE_INVALIDс сообщениемCARD_RETIRED: …). - Закрытие обрабатывается на нашей стороне (может занять некоторое время).
- После завершения карта переходит в
closed, а остаток на карте за вычетомcardClosureFeeUsdtзачисляется на баланс компании. - Приходит webhook
card.closedс итоговыми суммами.
{
"event": "card.closed",
"cardId": "8c7f1823-...",
"maskedPan": "4466********1234",
"closingBalance": 24.5,
"feeUsdt": 1,
"refundUsdt": 23.5,
"createdAt": "2026-04-24T09:30:00.000Z"
}closingBalance— остаток на карте на момент закрытия.feeUsdt— комиссия за закрытие (cardClosureFeeUsdt).refundUsdt— сумма, возвращённая на баланс компании (closingBalance − feeUsdt, не меньше 0).
- Повторный запрос. Для карты в статусе
closedповтор просто возвращает карту. Дляclosingповтор не запускает второе закрытие и второй возврат; если закрытие уже в работе, он может завершиться ошибкой422— это не повод повторять дальше, дождитесьcard.closed. - Возврат один раз. Средства возвращаются ровно один раз — в момент перехода в
closed. Ориентируйтесь на webhookcard.closedи статус карты, а не на ответ исходного запроса. - Только выданные карты. Закрыть можно карту в статусе
assigned; дляclosing,closedиretiredзапрос безопасно повторять, см. выше. - Если карта надолго осталась в
closing, напишите в поддержку. - Комиссия за закрытие по умолчанию 1 USDT, если для компании не задана другая.
При cardsTestMode = true закрытие происходит мгновенно: карта сразу получает статус closed, возврат зачисляется на баланс, и webhook card.closed отправляется без задержки.