Skip to content

Lumo B2B Platform API (1.0.0)

API reference for company-facing endpoints of Lumo B2B platform.

Scope of this reference:

  • Company auth/profile
  • Orders (prepare/accept/list/get)
  • Company disputes
  • Company wallet + deposits
  • User wallets (per externalId) + user deposits

Not included:

  • Admin endpoints
Download OpenAPI description
Languages
Servers
Mock server
https://b2b-app.lumowallet.io/_mock/apis
Production
https://b2b.lumowallet.io
Staging
https://b2b-staging.lumowallet.io

Company Auth

Company registration, login, and profile management.

Operations

Orders

Quote preparation and order lifecycle operations.

Operations

Disputes

Company dispute creation and listing.

Operations

Company Wallet

Company deposit wallet, balances, and deposit history.

Operations

User Wallets

Per-user wallet management and user deposit history.

Operations

Create user wallet

Request

Creates or returns wallet for given externalId within company scope.

Security
apiKeyAuth
Bodyapplication/jsonrequired
externalIdstringrequired

User ID in merchant system

curl -i -X POST \
  https://b2b-app.lumowallet.io/_mock/apis/user-wallets \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "externalId": "string"
  }'

Responses

User wallet created or returned

Bodyapplication/json
idstring(uuid)required
companyIdstring(uuid)required
externalIdstringrequired
addressstringrequired
isBlockedbooleanrequired
blockReasonstring or null
lastUsdtBalancenumberrequired
lastTrxBalancenumberrequired
createdAtstring(date-time)required
Response
application/json
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "companyId": "8bb73d03-06b4-47c7-80c7-59301f770eda", "externalId": "string", "address": "string", "isBlocked": true, "blockReason": "string", "lastUsdtBalance": 0, "lastTrxBalance": 0, "createdAt": "2019-08-24T14:15:22Z" }

List user wallets

Request

Security
apiKeyAuth
Query
externalIdstring
limitinteger[ 1 .. 200 ]
offsetinteger>= 0
curl -i -X GET \
  'https://b2b-app.lumowallet.io/_mock/apis/user-wallets?externalId=string&limit=1&offset=0' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

Wallets list

Bodyapplication/json
walletsArray of objects(UserWallet)required
wallets[].​idstring(uuid)required
wallets[].​companyIdstring(uuid)required
wallets[].​externalIdstringrequired
wallets[].​addressstringrequired
wallets[].​isBlockedbooleanrequired
wallets[].​blockReasonstring or null
wallets[].​lastUsdtBalancenumberrequired
wallets[].​lastTrxBalancenumberrequired
wallets[].​createdAtstring(date-time)required
totalintegerrequired
Response
application/json
{ "wallets": [ {} ], "total": 0 }

List blocked user wallets

Request

Security
apiKeyAuth
Query
externalIdstring
limitinteger[ 1 .. 200 ]
offsetinteger>= 0
curl -i -X GET \
  'https://b2b-app.lumowallet.io/_mock/apis/user-wallets/blocked?externalId=string&limit=1&offset=0' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

Blocked wallets list

Bodyapplication/json
walletsArray of objects(UserWallet)required
wallets[].​idstring(uuid)required
wallets[].​companyIdstring(uuid)required
wallets[].​externalIdstringrequired
wallets[].​addressstringrequired
wallets[].​isBlockedbooleanrequired
wallets[].​blockReasonstring or null
wallets[].​lastUsdtBalancenumberrequired
wallets[].​lastTrxBalancenumberrequired
wallets[].​createdAtstring(date-time)required
totalintegerrequired
Response
application/json
{ "wallets": [ {} ], "total": 0 }

Block user wallet

Request

Security
apiKeyAuth
Path
walletIdstring(uuid)required
Bodyapplication/jsonrequired
reasonstringrequired
curl -i -X POST \
  'https://b2b-app.lumowallet.io/_mock/apis/user-wallets/{walletId}/block' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "reason": "string"
  }'

Responses

Wallet blocked

Bodyapplication/json
idstring(uuid)required
companyIdstring(uuid)required
externalIdstringrequired
addressstringrequired
isBlockedbooleanrequired
blockReasonstring or null
lastUsdtBalancenumberrequired
lastTrxBalancenumberrequired
createdAtstring(date-time)required
Response
application/json
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "companyId": "8bb73d03-06b4-47c7-80c7-59301f770eda", "externalId": "string", "address": "string", "isBlocked": true, "blockReason": "string", "lastUsdtBalance": 0, "lastTrxBalance": 0, "createdAt": "2019-08-24T14:15:22Z" }

Replace user wallet

Request

Blocks old wallet and creates a new one for the same external user.

Security
apiKeyAuth
Path
walletIdstring(uuid)required
Bodyapplication/json
reasonstring
curl -i -X POST \
  'https://b2b-app.lumowallet.io/_mock/apis/user-wallets/{walletId}/replace' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "reason": "string"
  }'

Responses

New wallet created

Bodyapplication/json
idstring(uuid)required
companyIdstring(uuid)required
externalIdstringrequired
addressstringrequired
isBlockedbooleanrequired
blockReasonstring or null
lastUsdtBalancenumberrequired
lastTrxBalancenumberrequired
createdAtstring(date-time)required
Response
application/json
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "companyId": "8bb73d03-06b4-47c7-80c7-59301f770eda", "externalId": "string", "address": "string", "isBlocked": true, "blockReason": "string", "lastUsdtBalance": 0, "lastTrxBalance": 0, "createdAt": "2019-08-24T14:15:22Z" }

List user-wallet deposits

Request

Security
apiKeyAuth
Query
externalIdstring
statusstring(UserDepositStatus)

Wallet-backend statuses may include legacy and normalized values.

Enum"new""aml_pending""aml_pass""aml_fail""aml_passed""aml_failed""sweeping""completed""failed"
limitinteger[ 1 .. 200 ]
offsetinteger>= 0
curl -i -X GET \
  'https://b2b-app.lumowallet.io/_mock/apis/user-wallets/deposits?externalId=string&status=new&limit=1&offset=0' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

User deposits list

Bodyapplication/json
depositsArray of objects(UserDeposit)required
deposits[].​idstring(uuid)required
deposits[].​companyIdstring(uuid)required
deposits[].​walletIdstring(uuid)required
deposits[].​externalIdstringrequired
deposits[].​walletAddressstringrequired
deposits[].​txHashstringrequired
deposits[].​fromAddressstring or null
deposits[].​amountnumberrequired
deposits[].​statusstring(UserDepositStatus)required

Wallet-backend statuses may include legacy and normalized values.

Enum"new""aml_pending""aml_pass""aml_fail""aml_passed""aml_failed""sweeping""completed""failed"
deposits[].​amlCheckIdstring or null
deposits[].​amlRiskIndicatorstring or null
deposits[].​sweepTxHashstring or null
deposits[].​errorstring or null
deposits[].​blockTimestampstring or null(date-time)
deposits[].​createdAtstring(date-time)required
totalintegerrequired
Response
application/json
{ "deposits": [ {} ], "total": 0 }