Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
Mobilum documentation
Light Logo Dark Logo
  • Back to mobilum.com
  • API Authentication
  • Wallet App
  • Server2Server API
  • Business cards
  • On Ramp Widget
Back to top
View this page

Server2Server API¶

API docs: api.mobilum.com

Authentication: HMACSHA256 Authentication

Registration¶

skinparam monochrome true

participant User
participant App
participant API
participant KYC as "KYC provider"

==Registration==

User -> App : Enter data
App -> API : POST /s2s/users \n //User's data//
API --> App : //id, required registration consents//

alt User has unsigned consents
    App --> User : List of consents
    User -> App : Sign consents
    loop for each consent
        App -> API : POST /s2s/users/{userId}/consents/{consentId}/sign
    end
end

note over API: Registration completed

==User data==

User -> App : Get user's data
App -> API : GET /s2s/users/{userId}
API --> App : //User's data//
App --> User : //User's data//

Issuing card¶

skinparam monochrome true

participant User
participant App
participant API

==Create card==

User -> App : Claim new card
App -> API : GET /s2s/users/{userId}/cards/configs
API --> App : //card configs, required card's consents, KYC URL//

alt User has not verified e-mail
    App --> API: POST /s2s/users/{userId}/email/otp
    API --> User: //verification code//
    User -> App : Enter verification code
    App --> API : POST /s2s/users/{userId}/email/confirm
end

alt User has not passed KYC
    App --> User : KYC URL
    User -> User : KYC + SMS verification \n //KYC provider//
end

alt User has unsigned consents
    App --> User : List of consents
    User -> App : Sign consents
    loop for each consent
        App -> API : POST /s2s/users/{userId}/consents/{consentId}/sign
    end
end

User -> App : Select card type
App -> API : POST /s2s/users/{userId}/cards \n //configId, visualId//
API --> App : //card or draft data//

alt Payment needed
    User -> User : Top up balance

    User -> App : Pay for card
    App -> API : POST /s2s/cards/{cardId}/charge-draft
    API --> App : //draft data//

    User -> App : Issue card
    App -> API : POST /s2s/cards/{cardId}/complete-draft
    API --> App : //card or draft data//
end

alt Activation needed
    note over App: For physical cards only
    User -> User : Wait for order completed
    User -> App : Activate card
    App -> API : POST /s2s/cards/{cardId}/activation
    API --> App : //card data//
end

==Get card data==

User -> App : Get user's balances
App -> API : GET /s2s/balances \n //userId//
API --> App : //list of balances//
App --> User : //list of balances//

User -> App : Get user cards
App -> API : GET /s2s/cards \n //userId//
API --> App : //list of cards//
App --> User : //list of cards//

User -> App : Get card's details \n //public key//
App -> API : GET /s2s/cards/{cardId}/details \n //cardId, public key//
API --> App : //encrypted card's details//
App --> User : //encrypted card's details//

Deposits¶

skinparam monochrome true

participant User
participant App
participant API

==Claim deposit address==

User -> App : Show deposit methods
App -> API : GET /s2s/deposits/{balanceId}/types
return //types of deposits//

User -> App : Select deposit method

alt User has unsigned consents
    App --> User : List of consents
    User -> App : Sign consents
    loop for each consent
        App -> API : POST /s2s/users/{userId}/consents/{consentId}/sign
    end
end

App -> API : GET /s2s/deposits/{balanceId}/{type} \n
return //list of addresses//
User -> App : Select deposit options

alt Address not generated

    App -> API : POST /s2s/deposits/{balanceId}/{type} \n //deposit options//
    API --> App : //address data//

end

App --> User : Show deposit address

==Deposit crypto==

User -> User: Deposit crypto
App -> API : GET /s2s/deposits/verifications
API -> App : //list of verifications//

alt Verification needed

    User -> App : Verify deposit \n //verification data//
    App -> API : POST /s2s/deposits/verifications/{id}/approval \n //verification data//

end

API -> API : Credit balance

Next
Business cards
Previous
Wallet App
Copyright © 2023-2025, Mobilum
Made with Sphinx and @pradyunsg's Furo
On this page
  • Server2Server API
    • Registration
    • Issuing card
    • Deposits