Accept a withdrawal draft
/v1/blockchain-manager/order/withdrawal/draft/acceptConfirms and submits a previously created withdrawal draft, creating the actual withdrawal order on the blockchain. The draft must belong to the authenticated user and must not have expired.
Every acceptance requires a second-factor code in the x-totp header. The first request is
usually sent without it and answered with 428:
- For stablecoin withdrawals, the
428means a code has just been sent to the user, and its body says through which channel (sfaType) and which phone channels are available (availableChannels,defaultChannel). - For any other currency, the
428only says that the code is needed.
Then repeat the same request with the code in x-totp and the channel it came through in
x-totp-type. A wrong code returns 420 and nothing is executed.
Authorization
ApiKeyAuth For accessing these endpoints a valid API key must be sent in the X-Api-Key header.
In: header
Header Parameters
Second-factor code. Without it the response is 428.
^[0-9]{4,6}$Channel through which the code in x-totp was received (e.g. sms, whatsapp, email, gauth).
Value in
- "gauth"
- "sms"
- "email"
- "call"
- "whatsapp"
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Request to accept (confirm) a previously created withdrawal draft.
Response Body
application/json
application/json
application/json
application/json
application/json
curl --request POST \ --url 'https://gateway.bit2me.com/v1/blockchain-manager/order/withdrawal/draft/accept' \ --header 'x-totp: 123456' \ --header 'x-totp-type: sms' \ --header 'Content-Type: application/json' \ --data '{ "draftId": "550e8400-e29b-41d4-a716-446655440010"}'{ "amount": "0.5", "chargedFee": "0.0001", "chargedFeeCurrency": "BTC", "createdAt": "2026-06-02T12:00:00.000Z", "currency": "BTC", "destinationAddress": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh", "network": "bitcoin", "orderId": "550e8400-e29b-41d4-a716-446655440020", "status": "created", "tag": null, "type": "withdrawal", "userId": "550e8400-e29b-41d4-a716-446655440099", "walletPocketId": "550e8400-e29b-41d4-a716-446655440002"}Create a withdrawal draft POST
Creates a draft withdrawal order that must be accepted before it is submitted to the blockchain. The draft takes the destination address, network, tag and fees from the address book entry referenced by `addressBookId`, and debits the user's pocket of that currency with the highest balance; the caller only specifies how much to withdraw, either in the cryptocurrency or in a fiat currency. Checks the balance (including the network fee), the minimum amount for the network and that the user is allowed to withdraw. Nothing is debited yet. The draft expires at `expiresAt`; after that it cannot be accepted and a new one has to be created.
Check if iban is valid POST
Checks whether an IBAN is well formed and its check digits are correct. It does not check that the account exists or who holds it. Send `iban` (required) and `countryCode` (optional) in the JSON body. This operation does not accept query parameters. An invalid IBAN is not an error: the response is `200` with `result: false`.