5.9 KiB
Amazon SP-API — Documentation de référence
Authentification LWA (Login with Amazon)
OAuth2 standard. 3 credentials nécessaires :
client_id(LWA Client ID) — depuis Seller Central > Developerclient_secret(LWA Client Secret) — expire tous les 180 joursrefresh_token— obtenu après auto-autorisation de l'app privée
Obtenir un access_token
POST https://api.amazon.com/auth/o2/token
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token
&refresh_token=Atzr|...
&client_id=amzn1.application-oa2-client.xxx
&client_secret=xxx
Réponse :
{
"access_token": "Atza|...",
"token_type": "bearer",
"expires_in": 3600
}
L'access_token expire après 1 heure.
Endpoints
Base URL Europe : https://sellingpartnerapi-eu.amazon.com
URL LWA (globale) : https://api.amazon.com/auth/o2/token
Marketplace IDs
| Pays | MarketplaceId |
|---|---|
| France | A13V1IB3VIYZZH |
| Allemagne | A1PA6795UKMFR9 |
| Italie | APJ6JRA9NG5V4 |
| Espagne | A1RKKUPIHCS9HS |
| Belgique | AMEN7PMS3EDWL |
Orders API
GET /orders/v0/orders
Récupère la liste des commandes.
Paramètres obligatoires :
MarketplaceIds— ex:A13V1IB3VIYZZHCreatedAfterOULastUpdatedAfter— date ISO 8601
Paramètres optionnels :
OrderStatuses—Unshipped,PartiallyShipped,Shipped,Pending,Canceled...FulfillmentChannels—MFN(expédié par le vendeur) ouAFN(FBA)MaxResultsPerPage— défaut 100NextToken— pagination
Réponse : response.payload.Orders (tableau)
GET /orders/v0/orders/{orderId}/orderItems
Récupère les articles d'une commande.
Réponse : response.payload.OrderItems (tableau)
Structure des données
Order
{
"AmazonOrderId": "123-4567890-1234567",
"PurchaseDate": "2026-02-18T14:30:00Z",
"LastUpdateDate": "2026-02-18T15:00:00Z",
"OrderStatus": "Unshipped",
"FulfillmentChannel": "MFN",
"SalesChannel": "Amazon.fr",
"OrderTotal": { "CurrencyCode": "EUR", "Amount": "129.99" },
"NumberOfItemsShipped": 0,
"NumberOfItemsUnshipped": 2,
"MarketplaceId": "A13V1IB3VIYZZH",
"EarliestShipDate": "2026-02-19T00:00:00Z",
"LatestShipDate": "2026-02-21T23:59:59Z"
}
OrderItem
{
"ASIN": "B09XXXXXXXXX",
"SellerSKU": "FMC920-FR-01",
"OrderItemId": "12345678901234",
"Title": "Traceur GPS FMC920",
"QuantityOrdered": 2,
"QuantityShipped": 0,
"ItemPrice": { "CurrencyCode": "EUR", "Amount": "99.99" }
}
Rate Limits
| Endpoint | Rate | Burst |
|---|---|---|
getOrders |
1 req / 60 sec | 20 |
getOrder |
1 req / 2 sec | 30 |
getOrderItems |
1 req / 2 sec | 30 |
HTTP 429 en cas de throttling. Header x-amzn-RateLimit-Limit.
SDK Node.js recommandé
Package amazon-sp-api (le plus simple, gestion auto du throttling + tokens) :
pnpm add amazon-sp-api
import { SellingPartner } from 'amazon-sp-api'
const spClient = new SellingPartner({
region: 'eu',
refresh_token: '<REFRESH_TOKEN>',
credentials: {
SELLING_PARTNER_APP_CLIENT_ID: '<CLIENT_ID>',
SELLING_PARTNER_APP_CLIENT_SECRET: '<CLIENT_SECRET>'
},
options: {
auto_request_throttled: true
}
})
const orders = await spClient.callAPI({
operation: 'getOrders',
endpoint: 'orders',
query: {
MarketplaceIds: ['A13V1IB3VIYZZH'],
CreatedAfter: '2026-02-01T00:00:00Z',
OrderStatuses: ['Unshipped', 'PartiallyShipped']
}
})
const items = await spClient.callAPI({
operation: 'getOrderItems',
endpoint: 'orders',
path: { orderId: '123-4567890-1234567' }
})
Statuts de commande pertinents
Unshipped— payée, rien expédié → à traiterPartiallyShipped— partiellement expédiéShipped— tout expédiéCanceled— annulée
Stockage des credentials (notre app)
Dans la table api_keys, même pattern qu'Axonaut :
provider=amazon,label=client_idprovider=amazon,label=client_secretprovider=amazon,label=refresh_token
Adresse de livraison
GET /orders/v0/orders/{orderId}/address — nécessite un Restricted Data Token (RDT) pour accéder aux PII (données personnelles).
L'adresse est nécessaire pour générer les étiquettes Colissimo.
Notes vendeur / commentaires internes
IMPORTANT : L'API SP-API ne permet PAS d'ajouter des notes vendeur ou commentaires internes sur une commande.
Ce qui n'existe PAS
- Aucun endpoint pour créer/modifier des notes sur une commande
- Aucun champ
seller_note,internal_noteoucommentdans l'API Orders v0 ou v2026-01-01 - Aucun feed POST_ORDER_ACKNOWLEDGEMENT_DATA avec support de notes personnalisées
- Les opérations disponibles se limitent à :
updateShipmentStatus,updateVerificationStatus,confirmShipment
Alternatives recommandées
-
Stockage en base de données locale (recommandé pour notre projet)
- Créer une table
order_notesliée àordersviaamazon_order_id - Permet de stocker commentaires, IMEI scannés, statuts de traitement internes
- Indépendant d'Amazon — aucune synchronisation possible
- Créer une table
-
Seller Central web interface (manuel)
- Seller Central propose une interface web pour ajouter des notes sur les commandes MFN
- Ces notes ne sont PAS accessibles via l'API SP-API (lecture ni écriture)
- Utilisation manuelle uniquement
-
Champ BuyerCustomizedInfo (lecture seule)
- Contient des informations de personnalisation côté acheteur (texte gravure, etc.)
- Nécessite un Restricted Data Token (RDT)
- Lecture seule — ne peut pas être modifié par le vendeur
Conclusion
Pour tracker les IMEI scannés, les statuts de préparation ou toute donnée interne liée à une commande Amazon, il est nécessaire de gérer ces informations dans notre propre base de données. Amazon SP-API ne fournit aucun mécanisme pour stocker des métadonnées vendeur personnalisées.