WalletAPI (1.0.0)

License: Copyright

An API to manage cards on different wallets.

Description

This API allows managing cards (loyalty, generic, ...) and lets people add their cards to their phone.

Wallets are the digital wallets of Google, Apple and other customer-specific wallets (for example MyWallet). Cards are defined by their template (CardTemplate).

Authentication

To use this API, a bearer token is required. The documentation can be found here AuthAPI documentation

Error list

Here is the list of internal error codes, these errors only appear with an HTTP 500 status.

Code HTTP Status
WAL-1 500
WAL-4 500
WAL-10 500
WAL-100 500

Here is the list of error codes

Code Description HTTP Status
WAL-2 Invalid route 404
WAL-3 A parameter is missing or invalid in the request body (e.g., parameter sent as string instead of an integer) 400 / 422
WAL-5 Missing token 401
WAL-6 Invalid token signature 400
WAL-7 Expired token 400
WAL-8 Invalid token 400
WAL-9 Unauthorized access to service (invalid token) 403
WAL-11 Rate limit exceeded 429
WAL-12 HTTP method not allowed for this route (e.g., POST instead of GET), see the Allow header 405
WAL-13 Requested resource not found (e.g., unknown identifier) 404
WAL-101 Invalid serial_number 400
WAL-102 Invalid elements in template or data 400
WAL-103 Missing elements to create a device 400
WAL-104 Unauthorized action 403

Localization

The API supports response localization based on the Accept-Language HTTP header.
Supported locales: en, fr. Defaults to en if the header is absent or contains an unsupported locale.

Request identifier

Every response (success or error) includes an x-request-id header containing a unique identifier for the request.
Please provide it when contacting support about a specific call.

Rate limiting

All routes are subject to a rate limit (requests per minute). When the limit is exceeded, the API returns an HTTP 429 with error code WAL-11.
The response includes the following headers:

  • X-RateLimit-Limit: maximum number of requests allowed per minute
  • X-RateLimit-Remaining: number of requests remaining in the current window
  • Retry-After: seconds to wait before retrying

Wallets

Liste des wallets

Liste des wallets accessible au client

Authorizations:
BearerToken

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Configurations

Récupérer la configuration client d'un wallet

Retourner la configuration spécifique au client pour le wallet donné

Authorizations:
BearerToken
path Parameters
wallet_id
required
string <uuid>

L'id du wallet

Responses

Response samples

Content type
application/json
{
  • "int": 0,
  • "label": "string",
  • "walletId": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Création d'une configuration client

Création d'une configuration client pour un wallet

Authorizations:
BearerToken
path Parameters
wallet_id
required
string <uuid>

L'id du wallet

Request Body schema: multipart/form-data
required

Les paramètres de la configuration client

Any of
required
object
google
required
file <binary> Extension : .json

Fichier de config Google Wallet

label
string

Paramètre optionnel pour distinguer les différentes configurations

Responses

Response samples

Content type
application/json
{
  • "int": 0,
  • "label": "string",
  • "walletId": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Modification d'une configuration client

Modification d'une configuration client pour un wallet

Authorizations:
BearerToken
path Parameters
wallet_id
required
string <uuid>

L'id du wallet

configuration_id
required
integer

L'id de la configuration à modifier

Request Body schema: multipart/form-data
required

Les paramètres de la configuration client

Any of
required
object
google
required
file <binary> Extension : .json

Fichier de config Google Wallet

label
string

Paramètre optionnel pour distinguer les différentes configurations

Responses

Response samples

Content type
application/json
{
  • "int": 0,
  • "label": "string",
  • "walletId": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

CardTemplates

Liste des CardTemplates

Liste des templates de cartes

Authorizations:
BearerToken

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Créer un nouveau card-template

Création d'un cardTemplate

Authorizations:
BearerToken
Request Body schema: application/json
required

Le type de cardTemplate et le template des cartes

typeCard
required
string
Enum: "GENERIC" "LOYALTY"

Le serial number de la carte

required
object (TemplateResponse)

Les données du template des cartes. Les valeurs qui doivent être modifiées par la carte seront mise en parenthèses. Ex : {{key}}

Responses

Request samples

Content type
application/json
{
  • "typeCard": "GENERIC",
  • "template": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "typeCard": "GENERIC",
  • "status": "ACTIVE",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "template": {
    }
}

Récupération d'un CardTemplate

Récupérer un templates de cartes

Authorizations:
BearerToken
path Parameters
card_template_id
required
string

L'id du CardTemplate à récupérer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "typeCard": "GENERIC",
  • "status": "ACTIVE",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "template": {
    }
}

Modifier le CardTemplate

Modifier le template du CardTemplate

Authorizations:
BearerToken
path Parameters
card_template_id
required
string

L'id du CardTemplate à modifier

Request Body schema: application/json
required

Le template du CardTemplate

required
object (TemplateResponse)

Les données du template des cartes. Les valeurs qui doivent être modifiées par la carte seront mise en parenthèses. Ex : {{key}}

Responses

Request samples

Content type
application/json
{
  • "template": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "typeCard": "GENERIC",
  • "status": "ACTIVE",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "template": {
    }
}

Cards

Récupération d'une carte

Récupération d'une carte

Authorizations:
BearerToken
path Parameters
card_template_id
required
string

L'id du card_template

serial_number
required
string

Le serial_number de la carte

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "serialNumber": "string",
  • "status": "ACTIVE",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

Ajouter une carte

Ajouter une carte pour un template donné

Authorizations:
BearerToken
path Parameters
card_template_id
required
string

L'id du CardTemplate

Request Body schema: application/json
required

La serial number et les datas de la carte

serialNumber
required
string

Le serial number de la carte

required
object (DataResponse)

Les datas de la carte

Responses

Request samples

Content type
application/json
{
  • "serialNumber": "string",
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "serialNumber": "string",
  • "status": "ACTIVE",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

Modifier une carte

Modifier les datas de la carte

Authorizations:
BearerToken
path Parameters
card_template_id
required
string

L'id du card template

serial_number
required
string

Le serial number de la carte

Request Body schema: application/json
required

Data de la carte

required
object (DataResponse)

Les datas de la carte

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "serialNumber": "string",
  • "status": "ACTIVE",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

Ajout de la carte à Google wallet

Récupérer l'url pour ajouter une carte à Google wallet

Authorizations:
BearerToken
path Parameters
serialNumber
required
string

Le serial number de la carte

Responses

Response samples

Content type
application/json
{
  • "url": "string"
}

Télécharger le pass générique

Télécharger le pass générique

Authorizations:
BearerToken
path Parameters
serialNumber
required
string

Le serial number de la carte

Responses

Response samples

Content type
application/json
{
  • "message": "The bearer token is missing",
  • "code": "WAL-5"
}

Télécharger le pass Apple

Télécharger le pass Apple

Authorizations:
BearerToken
path Parameters
serialNumber
required
string

Le serial number de la carte

Responses

Response samples

Content type
application/json
{
  • "message": "The bearer token is missing",
  • "code": "WAL-5"
}

Devices

Créer un device et/ou lier le device avec une carte

Ajouter un nouveau device sur un wallet et/ou associer un device à une carte existante.

Authorizations:
BearerToken
path Parameters
wallet_id
required
string

L'id du wallet

Request Body schema: application/json
required

Les éléments à mettre pour créer un device et/ou lier une carte à un device

deviceType
string
Enum: "Android" "iOS"

Le type de device

token
string

Le token du device

serialNumber
string

Le serialNumber de la carte

pushToken
string

Le pushToken du device pour cette carte

Responses

Request samples

Content type
application/json
{
  • "deviceType": "Android",
  • "token": "string",
  • "serialNumber": "string",
  • "pushToken": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "wallet_id": 0,
  • "token": "string",
  • "device_type": "iOS",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Usages

Get API usages

Get API usages for a given period

Authorizations:
BearerToken
query Parameters
start_date
required
string <date>
Example: start_date=2024-01-01
end_date
required
string <date>
Example: end_date=2024-01-31
header Parameters
Accept-Language
string
Example: fr

Locale for response messages. Supported: en, fr. Defaults to en.

Responses

Response samples

Content type
application/json
{
  • "message": "The bearer token is missing",
  • "code": "WAL-5"
}

Status

Check that the API is available

Responses

Response samples

Content type
application/json
{
  • "OK": true
}