Wallet Provider
API Reference
GET /card/scan

GET /card/scan

This is the endpoint that is returned by the NFC card and supports both standard boltcard (opens in a new tab)

Query parameters:

  • p: string: the PICC data returned by the NTAG.
  • c: string: the HMAC returned by the NTAG.

Headers:

X-LaWallet-Action: extendedScan
X-LaWallet-Param: federationId=<federation_id>
X-LaWallet-Param: tokens=<token>:<token>:...:<token>

Where:

  • federation_id: string: the ID used to identify modules in the same "federation".
  • token: string: the token names the POS is interested in.

Standard LUD-03 (opens in a new tab) result (returned when the header above IS NOT present, or present, but with a different federation ID):

{
    "tag": "withdrawRequest",               // type of LNURL
    "callback": "<API_BASE_URL>/card/pay",  // The URL which LN SERVICE would accept a withdrawal Lightning invoice as query parameter
    "k1": string,                           // Random or non-random string to identify the user's LN WALLET when using the callback URL
    "defaultDescription": "LaWallet",       // A default withdrawal invoice description
    "minWithdrawable": 0,                   // Min amount (in millisatoshis) the user can withdraw
    "maxWithdrawable": number,              // Max amount (in millisatoshis) the user can withdraw
}

Extended LUD-03 (opens in a new tab) result (returned when the header above IS present and contains the same federation ID):

{
    "tag": "laWallet:withdrawRequest",      // type of LNURL
    "callback": "<API_BASE_URL>/card/pay",  // The URL which LN SERVICE would accept a withdrawal extended invoice as request body
    "k1": string,                           // Random or non-random string to identify the user's LN WALLET when using the callback URL
    "defaultDescription": "LaWallet",       // A default withdrawal invoice description
    "tokens": {                             // A list of tokens available for withdrawal (a subset of the tokens given in the extension header)
        string: {                           // The token name to provide extrema for
            "minWithdrawable": 0,           // Min amount (in the given token) the user can withdraw from LN SERVICE, or 0
            "maxWithdrawable": number       // Max amount (in the given token) the user can withdraw from LN SERVICE, or equal to minWithdrawable if the user has no choice over the amounts
        },
        ...
    }
}