B2B Mobility Customer Data Quickstart
Introduction
L'API B2B Mobility Customer Data est un service RESTful qui vous permet d'interroger et de gérer les détails des comptes clients, les groupes de cartes et les configurations connexes au sein de la plateforme Shell Cards. Cette API offre des capacités de recherche flexibles, prend en charge la pagination et vous permet d'extraire des informations sur les comptes, les adresses de livraison des cartes, les listes de prix et les types de cartes. Elle prend également en charge les opérations de création et de mise à jour des groupes de cartes, ainsi que le déplacement des cartes entre les groupes.
| Avantages | Description |
|---|---|
| Accéder à des informations détaillées sur les comptes clients, y compris la facturation, les résumés de cartes et le statut | Opérations de groupe de cartes | Créer, mettre à jour et mettre fin à des groupes de cartes avec des opérations flexibles de création et de mise à jour de groupes de cartes, et mettre fin à des groupes de cartes avec des capacités de déplacement de cartes flexibles | Accès aux listes de prix | Retrouver des listes de prix nationales et internationales avec des remises spécifiques aux clients |
| Appeler des données avec plusieurs critères de recherche et prise en charge de la pagination |
Authentification
Cette API prend en charge à la fois l'authentification de base et l'OAuth 2.0. OAuth 2.0 est la méthode d'authentification recommandée pour une sécurité accrue.
Note de migration
L'API prend désormais en charge l'authentification OAuth 2.0. Si vous utilisez actuellement l'authentification de base, nous vous recommandons de migrer vers OAuth 2.0 pour une meilleure sécurité. L'URL de base a été mise à jour, et tous les points d'extrémité sont maintenant versionnés sous le chemin /v1. Veuillez consulter le support de migration OAuth 2.0 pour des conseils de migration détaillés.
Flux d'autorisation
- Demande d'ID et de secret du client
Contactez l'équipe API de Shell pour demander l'accès à l'authentification OAuth. L'équipe de l'API Shell fournira un ID client et un secret.
- Demande de jeton porteur
Une fois que vous avez obtenu les informations d'identification, faites une demande à l'adresse point d'extrémité du jeton OAuth de l'API d'authentification Shell avec vos informations d'identification.
Exemple de demande:
curl --location --request POST 'https://api-test.shell.com/v2/oauth/token' \N-header 'Content-Type:'.
--header 'Content-Type : application/x-www-form-urlencoded' \N--data-urlencode
--data-urlencode 'client_id=**************' \N- --data-urlencode 'client_id=**************' \N
--data-urlencode "client_secret=**************" \N--data-urlencode "client_secret=**************" \N
--data-urlencode 'grant_type=client_credentials'Vous recevrez un jeton Bearer dans la réponse:
{
"access_token" : "**************",
"expires_in" : "899",
"token_type" : "Bearer"
}Note : Le délai d'expiration du jeton du porteur est fourni en secondes.
- Autoriser les demandes d'API
Lorsque vous appelez les API Shell, incluez ce qui suit dans l'en-tête de la demande.
Autorisation : Bearer access_tokenBase URLs
| Environnement | URL |
|---|---|
| Test | https://api-test.shell.com/test | Production | https://api.shell.com |
Intégration de base
1. Obtenir les détails de l'utilisateur connecté
Description: Ce point de terminaison récupère les données de l'utilisateur connecté, y compris les payeurs accessibles, les comptes et les rôles. Cette opération doit être appelée après une authentification réussie pour obtenir le PayerId nécessaire pour les appels API suivants.
Chemin: POST /user-management/v1/loggedinuser
Exemple de requête
curl --location 'https://api-test.shell.com/test/user-management/v1/loggedinuser' \N--Curl --location 'https://api-test.shell.com/test/user-management/v1/loggedinuser' \N--Curl --header 'RequestId:' (Requête :).
--header 'RequestId : 2b0cbe11-f109-4c43-9201-49af0370df1c' \
--header 'Authorization : Bearer YOUR_ACCESS_TOKEN' \N ---header 'Content-Type : 2b0cbe11-f109-4c43-92019-4af0370df1c
--header 'Content-Type : application/json' \N--Content-Type : application/json
--data '{
"Filters" : {
"IncludePayerGroup" : false,
"IncludeEIDDetails" : false,
"RequestedAPIName" : "v1/Card/OrderCard"
}
}'Paramètres de requête
| Paramètre | Type | Required | Description |
|---|---|---|---|
| RequestId | string | Yes | Obligatoire UUID (RFC 4122) pour le suivi de la demande |
| IncludePayerGroup | boolean | No | Inclure les informations sur le groupe de payeurs lorsque c'est vrai (par défaut : |
| IncludeEIDDetails | boolean | No | Inclure les données de la facture électronique lorsque cela est vrai (par défaut : false) |
Exemple de réponse
{
"RequestId" : "2b0cbe11-f109-4c43-9201-49af0370df1c",
"Status" : "SUCCESS",
"Données" : [
{
"UserName" : "John123",
"DisplayName" : "John A.",
"HasAPIAccess" : true,
"Payers" : [
{
"IsDefault" : true,
"ColcoId" : 1,
"ColcoCode" : 86,
"PayerId" : 1234,
"PayerNumber" : "GB000000123",
"PayerName" : "MATTHEW ALGIE & ; COMPANY LIMITED"
}
]
}
]
}Champs de réponse
| Field | Type | Description | |
|---|---|---|---|
| UserName | string | Identifiant de l'utilisateur connecté | |
| DisplayName | string | Nom de l'utilisateur connecté | |
| HasAPIAccess | booléen | ||
| HasAPIAccess | boolean | True si l'utilisateur a accès à l'API demandée | |
| PayerId | integer | Payer Id à utiliser dans les demandes ultérieures | |
| PayerNumber | string | Numéro du payeur à utiliser dans les demandes ultérieures |
2. Interrogation des comptes clients
Description: Ce point d'accès permet d'interroger les détails des comptes clients à partir de la plate-forme de cartes Shell, avec des critères de recherche souples et la prise en charge de la pagination. Utilisez le PayerId obtenu à l'étape précédente.
Chemin: POST /customer-management/v1/accounts
Exemple de requête
curl --location 'https://api-test.shell.com/test/customer-management/v1/accounts' \N--Curl --header 'RequestId:'.
--header 'RequestId : 2b0cbe11-f109-4c43-9201-49af0370df1c' \
--header 'Authorization : Bearer YOUR_ACCESS_TOKEN' \N ---header 'Content-Type : 2b0cbe11-f109-4c43-92019-4af0370df1c
--header 'Content-Type : application/json' \N--Content-Type : application/json
--data '{
"Filters" : {
"ColCoCode" : 86,
"PayerNumber" : "GB000000123",
"Status" : "ACTIVE",
"IncludeCardSummary" : true
},
"Page" : 1,
"PageSize" : 50
}'Paramètres de la demande
| Paramètre | Type | Required | Description |
|---|---|---|---|
| ColCoCode | integer | Yes | Collecter le code de l'entreprise (Shell Code) |
| PayerNumber | |||
| NuméroPayeur | Oui | NuméroPayeur du client | |
| Statut | Non | Filtre sur le statut du compte (ACTIF, BLOCKED, CANCELLED, etc.) | |
| IncludeCardSummary | No | Inclure les détails du résumé de la carte (valeur par défaut : true) | |
| Page | No | Numéro de page (valeur par défaut : | PageSize | integer | No | Enregistrements par page (par défaut : 50) |
Réponse type
{
"RequestId" : "2b0cbe11-f109-4c43-9201-49af0370df1c",
"Status" : "SUCCESS",
"Données" : [
{
"AccountId" : 1,
"AccountNumber" : "GB000000124",
"AccountFullName" : "Acme Corporation",
"Status" : "Active",
"CurrencyCode" : "EUR",
"TotalCards" : 1000,
"TotalActiveCards" : 500
}
],
"Page" : 1,
"TotalRecords" : 100,
"TotalPages" : 2,
"PageSize" : 50
}Champs de réponse
| Field | Type | Description | ||
|---|---|---|---|---|
| AccountId | integer | Identificateur de compte | ||
| AccountNumber | chaine | AccountNumber. identifiant | ||
| Numéro de compte | Chaîne | |||
| Nom complet du compte | Chaîne | Nom complet du compte | ||
| Status | Current account status | |||
| CurrencyCode | string | ISO currency code | ||
| TotalCards | integer | Total nombre de cartes sur le compte | ||
| TotalCartesActives | integer | Nombre de cartes actives |
3. Interroger les groupes de cartes
Description: Ce point d'accès permet d'extraire des détails sur les groupes de cartes de la plateforme Shell Cards avec des critères de recherche et une pagination flexibles. Les groupes de cartes permettent d'organiser les cartes au sein d'un compte.
Chemin: POST /customer-management/v1/cardgroups
Exemple de requête
curl --location 'https://api-test.shell.com/test/customer-management/v1/cardgroups' \N--Curl --header 'RequestId:'.
--header 'RequestId : 2b0cbe11-f109-4c43-9201-49af0370df1c' \
--header 'Authorization : Bearer YOUR_ACCESS_TOKEN' \N ---header 'Content-Type : 2b0cbe11-f109-4c43-92019-4af0370df1c
--header 'Content-Type : application/json' \N--Content-Type : application/json
--data '{
"Filters" : {
"ColCoCode" : 86,
"PayerNumber" : "GB000000123",
"Status" : "ACTIF"
},
"Page" : 1,
"PageSize" : 50
}'Paramètres de la demande
| Paramètre | Type | Required | Description |
|---|---|---|---|
| ColCoCode | integer | Yes | Collecte du code de l'entreprise | PayerNumber |
| Numéro du payeur | Oui | Numéro du payeur du client | |
| Status | Oui | Oui | Statut du groupe de cartes (ACTIF, TERMINATED, ALL) |
| CardGroupName | No | Filtrer par nom de groupe de cartes (min 2 caractères) |
Exemple de réponse
{
"RequestId" : "2b0cbe11-f109-4c43-9201-49af0370df1c",
"Status" : "SUCCESS",
"Données" : [
{
"CardGroupId" : 40000,
"CardGroupName" : "006240 FIRE BRIGHT SOLUTIONS",
"Status" : "ACTIVE",
"PrintOnCard" : true,
"CardTypeId" : 1234,
"TotalCards" : 1234,
"ActiveCards" : 999
}
],
"Page" : 1,
"TotalRecords" : 100,
"TotalPages" : 2,
"PageSize" : 50
}Champs de réponse
| Field | Type | Description | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CardGroupId | integer | Identifiant du groupe de cartes | CardGroupName | string | Nom du groupe de cartes | ||||||||||||
| Status | string | . groupe de cartes | |||||||||||||||
| Status | Status du groupe de cartes | ||||||||||||||||
| TotalCards | integer | Nombre total de cartes dans le groupe | |||||||||||||||
| ActiveCards | integer | Nombre de cartes actives dans le groupe |
| Paramètre | Type | Required | Description | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ColCoCode | integer | Yes | Collecting Company Code | NuméroPayeur | Oui | NuméroPayeur du client | |||||||||||
| NuméroCompte | Chaîne | Oui | Compte du client | Oui | NuméroCompte du client | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui. du client | |||
| CardGroupName | Yes | Nom du nouveau groupe de cartes (1-40 caractères) | |||||||||||||||
| PrintOnCard | boolean | Yes | Il faut embosser le nom du groupe de cartes sur les cartes | ||||||||||||||
| Cards | No | Liste de cartes à déplacer (max 500) |
| Champs | Type | Description |
|---|---|---|
| Référence principale | integer | Référence pour le suivi de la demande globale |
| NewCardGroupReference | integer | Numéro de référence pour la création du groupe de cartes |
| SuccessfulRequests | array | Liste des demandes de déplacement de cartes mises en file d'attente avec succès |
| ErrorCards | array | Liste des cartes dont la validation a échoué |
Gestion des erreurs
L'API utilise des codes d'état HTTP standard. En cas d'erreur, des détails supplémentaires seront fournis dans le corps de la réponse.
| Code d'erreur | Description | Solution |
|---|---|---|
| E0001 | Validation Error | Check the request parameters for missing or invalid values |
| E0003 | Unauthorized | Verify credentials et s'assurer que l'utilisateur a accès à l'opération |
| E0005 | Confirmer que la ressource demandée existe et est accessible | |
| 9015 | Duplicate Card Group Name | Utiliser un nom de groupe de cartes unique pour le client |
