Last updated June 2026 · eBay Sell Fulfillment API v1 · Sell Inventory API v1
https://your-ecomcentral-domain/oauth/ebay/callback).
eBay calls this a RuName. Note it for the authorization URL.
| Scope | Purpose | Required? |
|---|---|---|
https://api.ebay.com/oauth/api_scope/sell.fulfillment |
Read & write orders, create shipping fulfillments | Required |
https://api.ebay.com/oauth/api_scope/sell.fulfillment.readonly |
Read orders only (if write not needed) | Alternative |
https://api.ebay.com/oauth/api_scope/sell.inventory |
Read & update inventory items and stock | Required |
https://api.ebay.com/oauth/api_scope/sell.inventory.readonly |
Read inventory only | Alternative |
https://auth.ebay.com/oauth2/authorize
?client_id=YOUR_APP_ID
&redirect_uri=YOUR_RUNAME
&response_type=code
&scope=https://api.ebay.com/oauth/api_scope/sell.fulfillment
https://api.ebay.com/oauth/api_scope/sell.inventory
After the seller authorizes, eBay redirects with a code parameter.
Exchange it for tokens:
POST https://api.ebay.com/identity/v1/oauth2/token
Content-Type: application/x-www-form-urlencoded
Authorization: Basic base64(client_id:client_secret)
grant_type=authorization_code
&code=YOUR_CODE
&redirect_uri=YOUR_RUNAME
The response includes an access_token (valid ~2 hours) and a
refresh_token (valid ~18 months).
access_token credential.
You will need to refresh it periodically using the refresh token — access tokens expire after ~2 hours.
| Field | Value |
|---|---|
access_token |
OAuth2 user access token (without the "Bearer " prefix) |
marketplace_id (optional) |
eBay marketplace (default: EBAY_US). See table below. |
content_language (optional) |
Content-Language header (default: en-US). Match your marketplace locale. |
sandbox if using sandbox credentials.
| Marketplace | ID | Content-Language |
|---|---|---|
| eBay United States | EBAY_US | en-US |
| eBay United Kingdom | EBAY_GB | en-GB |
| eBay Germany | EBAY_DE | de-DE |
| eBay France | EBAY_FR | fr-FR |
| eBay Italy | EBAY_IT | it-IT |
| eBay Spain | EBAY_ES | es-ES |
| eBay Australia | EBAY_AU | en-AU |
| eBay Canada (English) | EBAY_CA | en-CA |
| eBay Netherlands | EBAY_NL | nl-NL |
| eBay Belgium (FR) | EBAY_BE | fr-BE |
| eBay Poland | EBAY_PL | pl-PL |
| eBay Singapore | EBAY_SG | en-SG |
| Status | Meaning | Action in EcomCentral |
|---|---|---|
| Not Started | Order received, no shipment created yet | Create Fulfillment available |
| In Progress | Partially shipped or fulfillment in progress | Create Fulfillment available |
| Fulfilled | All items shipped with tracking | No action needed |
| Cancelled | Order cancelled by buyer or eBay | — |
When you click Create Fulfillment in EcomCentral:
lineItemId valuescreateShippingFulfillment request
(required by the eBay Sell Fulfillment API)USPS, UPS, FedEx, DHL,
Royal Mail, Hermes, DPD, TNT,
Australia Post, Deutsche Post.
If the carrier is not recognized, eBay returns a 400 error.
Use Other as a fallback for unknown carriers.
eBay's Inventory API uses a full-record PUT (createOrReplaceInventoryItem) —
there is no partial update endpoint for quantity alone.
EcomCentral handles this safely by:
eBay access tokens expire after approximately 2 hours. When an API call fails with a 401, the token has expired. To refresh:
POST https://api.ebay.com/identity/v1/oauth2/token
Content-Type: application/x-www-form-urlencoded
Authorization: Basic base64(client_id:client_secret)
grant_type=refresh_token
&refresh_token=YOUR_REFRESH_TOKEN
&scope=https://api.ebay.com/oauth/api_scope/sell.fulfillment
https://api.ebay.com/oauth/api_scope/sell.inventory
Update the access_token value in the EcomCentral connection with the new token.
Refresh tokens last ~18 months but must also be renewed before expiry.
No access_token credential is set. Edit the connection and add the OAuth token.
The access token has expired (~2 hours). Refresh it using the refresh_token and update the connection.
The OAuth token was not granted the required scopes. Re-authorize the app and request
sell.fulfillment and sell.inventory scopes.
Most commonly caused by an unrecognized shippingCarrierCode. Check eBay's list of
accepted carrier codes for your marketplace, or use Other as a fallback.
The Sell Inventory API only shows items created or migrated to the Inventory API. Older listings created via the Trading API or Seller Hub may not appear here. Use eBay's Inventory Item Migration tool to move them.
EcomCentral · eBay Sell Fulfillment API v1 & Inventory API v1 · Official eBay Sell API Docs