- Выпустить карту
Резервирует cardOpeningFeeUsdt + cardMinInitialDepositUsdt на балансе компании (frozenBalance += reserve). Если карта есть в стоке — возвращает status: assigned; резерв снимается, openingFee списывается, а minInitialDeposit возвращается в доступный баланс. Иначе возвращает status: pending, и заявка исполняется асинхронно — с вебхуком card.assigned (выданная карта закрывает самую раннюю заявку компании в очереди). card.assigned приходит и при мгновенной выдаче, с requestId: null, — кроме cardsTestMode. Нужно право cards.create.
Idempotency-Key защищает от второй карты и второй комиссии, но повтор не всегда возвращает первый результат: карта, выданная сразу без externalId, вернётся снова; с externalId повтор отвечает 409 CARD_EXTERNAL_ID_TAKEN с картой или заявкой в details; если заявка ушла в очередь, первый запрос ещё выполняется или на балансе не хватает средств на временный резерв, повтор завершится ошибкой. После 502 карта, которая всё же выдана, придёт вебхуком card.assigned без requestId и externalId.
Необязательный externalId в теле привязывает карту к идентификатору в вашей системе: он возвращается в GET /cards, GET /cards/{id} и в webhook card.assigned, по нему же можно искать карту (GET /cards?externalId=…). Значение уникально в рамках компании — повторная заявка с занятым externalId вернёт 409 CARD_EXTERNAL_ID_TAKEN (у разных компаний значения не пересекаются).
- Мок-серверhttps://b2b-app.lumowallet.io/_mock/apis/cards/request
- https://b2b.lumowallet.iohttps://b2b.lumowallet.io/cards/request
- https://b2b-staging.lumowallet.iohttps://b2b-staging.lumowallet.io/cards/request
curl -i -X POST \
https://b2b-app.lumowallet.io/_mock/apis/cards/request \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: string' \
-H 'X-API-Key: YOUR_API_KEY_HERE' \
-d '{
"externalId": "user-42-card-1"
}'{ "status": "assigned", "card": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "externalId": "user-42-card-1", "status": "requested", "maskedPan": "4466********1234", "expiry": "03/29", "assignedAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z", "upayState": 1, "upayStateName": "Normal" } }