openapi: 3.0.1
info:
title: Walmart Authentication & Authorization Management
description: The Walmart Marketplace APIs use OAuth for token-based authentication and authorization.
We also introduced OAuth 2.0 for solution providers to enable new authorizations using authorization code grant type. Sellers can now connect with solution provider apps seamlessly through this new Walmart's OAuth 2.0 user experience. Refer to the [Guide section](/doc/us/mp/us-mp-auth2/#606) for comprehensive instructions. Existing seller connections using the previous authorization method will remain operational.
servers:
- url: https://marketplace.walmartapis.com
description: Production URL
- url: https://sandbox.walmartapis.com
description: Sandbox URL
security:
- basicScheme: []
paths:
"/v3/token":
post:
tags:
- Authorization
summary: Walmart Token Api
description: Get access token by providing Client ID and Client Secret.
An access token expires after a certain interval, so you will have to refresh a user's access token. You could use refresh token, obtained from the token API call using authorization code grant type, to get a new access token. Refresh tokens remain valid for a year.
[Guide reference - authorization_code](/doc/us/mp/us-mp-auth2/#606)
[Guide reference - refresh_token](/doc/us/mp/us-mp-auth2/#606)
[Guide reference - client_credentials](/doc/us/mp/us-mp-auth/#606)
operationId: tokenAPI
parameters:
- in: header
name: WM_PARTNER.ID
description: 'Partner Id registered in Walmart marketplace to identify a seller.
This field is required when **grant_type: authorization_code** and **grant_type: refresh_token**'
required: false
schema:
type: string
example: '43423324'
- in: header
name: Authorization
description: Basic authorization header. Base 64 encodes the Client ID and Client Secret retrieved in step two of the integration steps.
required: true
schema:
type: string
example: Basic YzcyOTFjNmItNzI5MC00....
- in: header
name: Content-Type
description: Content type of the request body.
required: true
schema:
type: string
example: application/x-www-form-urlencoded
- in: header
name: WM_CONSUMER.CHANNEL.TYPE
description: A unique ID to track the consumer request by channel. Use the Consumer Channel Type received during onboarding.
required: false
schema:
type: string
- in: header
name: WM_QOS.CORRELATION_ID
description: A unique ID which identifies each API call and used to track and debug issues; use a random generated GUID for this ID
required: true
schema:
type: string
example: b3261d2d-028a-4ef7-8602-633c23200af6
- in: header
name: WM_SVC.NAME
description: Walmart Service Name
required: true
schema:
type: string
example: Walmart Service Name
requestBody:
content:
application/x-www-form-urlencoded:
schema:
required:
- grant_type
type: object
properties:
grant_type:
type: string
description: Type of grant requested.
**Available grant types:** authorization_code, refresh_token and client_credentials
enum:
- authorization_code
- refresh_token
- client_credentials
default: client_credentials
code:
type: string
description: 'Authorization code obtained by your client app when the seller authorizes your app to access the seller resource.
This field is required when **grant_type: authorization_code**'
default: 65CA5DA313A549D49D15D3119D9AD85D
redirect_uri:
type: string
description: 'This should be same as one of your client app URIs provided while registering the app.
This field is required when **grant_type: authorization_code**'
default: https://example-client-app.com
refresh_token:
type: string
description: 'Refresh token received as response of Authentication API with authorization_code grant type, to be used to refresh the access token.
This field is required when **grant_type: refresh_token**'
default: APXcIoTpKMH9OQN.....
examples:
clientCredentialsReq:
summary: Token Api - Client_credentials
value:
grant_type: client_credentials
tokenAPIReq:
summary: Token Api - Authorization_code
value:
grant_type: authorization_code
code: 65CA5DA313A549D49D15D3119D9AD85D
redirect_uri: https://example-client-app.com
refreshTokenReq:
summary: Token Api - Refresh_token
value:
grant_type: refresh_token
refresh_token: APXcIoTpKMH9OQN…….
required: true
responses:
'200':
description: Successful Operation
content:
application/json:
schema:
required:
- access_token
- expires_in
- token_type
type: object
properties:
access_token:
type: string
description: Access token to be used for accessing business APIs
default: eyJraWQiOiI1MWY3MjM0Ny0wYWY5LTRhZ....
token_type:
type: string
description: Type of token according to user. (e.g., 'BEARER')
default: Bearer
expires_in:
type: integer
description: Expiry time of access token in seconds
format: int32
default: 900
refresh_token:
type: string
description: 'Token which should be used to refresh access token.
This field is present in response when **grant_type: authorization_code**'
default: APXcIoTpKMH9OQN…….
examples:
clientCredentialsRes:
summary: Token Api - Client_credentials
value:
access_token: eyJraWQiOiI1MWY3MjM0Ny0wYWY5LTRhZ.....
token_type: Bearer
expires_in: 900
tokenAPIRes:
summary: Token Api - Authorization_code
value:
access_token: eyJraWQiOiI1MWY3MjM0Ny0wYWY5LTRhZ.....
refresh_token: APXcIoTpKMH9OQN....
token_type: Bearer
expires_in: 900
refreshTokenRes:
summary: Token Api - Refresh_token
value:
access_token: eyJraWQiOiI1MWY3MjM0Ny0wYWY5LTRhZ.....
token_type: Bearer
expires_in: 900
example:
access_token: eyJraWQiOiIzN2JmOWQ5MS04ZDRkLTQwYjEtODU4NS1mNzhlZDc3MjM4MDQiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiZGlyIn0..bKkYKqJ5CP0Qb2Qz.wQ4TTa2nwL1rbT98BBdbTi_MRNMM0gW_5q8im6uX4olRwYiuOXjaG6TbnnFOK5fT0UzMEJUf-uybalogMH78cHP0ZyL6hONKJOMJ8VK3ThcZ4AUcqrMRBNIMFiAWSTvHJg1y5g-t-WwmZbaD589dMll7-aXG6PPncpeQA1zOyOTaELjDA4O4jimc2_7PnEdc6ETv89AKcnw1J1cPz6BPG9jpyLVX_zEZcQnxbAHYZiSFscFCzdMtpFDrPWIwWuRcV5qRlH4DghHMqKG7V2wqX1VYV_gUvLH5b2y8O6Y0u9nmkBpqTGNiMpWzNE7amFyqKExGk4Jc_ziJdsrj38cSz9a4KtZOrV6E3mN5gFFEQSNAGzrdEv2IdTfWdNgTnHopQecgrlP7EcsrmGh1ARGTWr-e7RaiL8m2Sx5i9odGj5FDJKXiDeohX-KEB-Vc2KJeLxvYAHA7nPT1_pkZDBCfpqq_6GAUBDEbDZ6mJH93TAE1YhFeR_jcdl_23lND9sHKlvHA97-fHAjEVTqu-4wVmFFelGyJD4VIBkieWn94jq_opMiz-RjyYn8Vj-tfdJy8azBNt5NkjjW7Rsque04LsfujrqHDcJHio3ukT5JKwxNv9PoHMxoHnQ5fUdF4pOzt6ZShkki-jSbhileDlClh0ufLSNYgBmy6Fz4wTZWgL-DhJOcv-7Cup95Rx35Wh7XDYTbdz_z_avtfF-f-JS5XyN20Hn-gioWdNA7DNhI1O6s7zKZ2s2iD9eFkprOLGtcJzvNVjrxKZKD6R0hrUUzDXRn95oWlJXfan-OsTNdRypfGWFqIes-n8cBhzVF69LEWIDMr6YfdkRkmCq_p_A.Bvyf-k_rnsiiuf0jGGVXvw
token_type: Bearer
expires_in: 900
application/xml:
schema:
required:
- accessToken
type: object
properties:
accessToken:
type: string
description: Access token to be used for accessing business APIs
xml:
namespace: http://walmart.com/
tokenType:
type: string
description: Type of token according to user. (e.g., 'BEARER')
xml:
namespace: http://walmart.com/
expiresIn:
type: integer
description: Expiry time of access token in seconds
format: int32
xml:
namespace: http://walmart.com/
refresh_token:
type: string
description: 'Token which should be used to refresh access token.
This field is present in response when **grant_type: authorization_code**'
xml:
namespace: http://walmart.com/
xml:
name: oAuthToken
example: |
eyJraWQiOiIzN2JmOWQ5MS04ZDRkLTQwYjEtODU4NS1mNzhlZDc3MjM4MDQiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiZGlyIn0..yI0d0EFgt3gpEMQj.APvV5upgh1nBRcZPG6d9a5PYNAwayZdIZc4s-J42Ol-Zk6V9liVWmgs4qyPdkghfLKWwAyOBoc5g1vxRsYQNOeDH_p7KM_dO3D80g8adtGDkcAoEimyhP0inGHOjT2PziwIWjtRbE5bm8WTZN7wwJPV5SFqBP-XvS03OdPcZ2V_f0mVln5EdzaRt0BmpvlVDgqn_9Pe_jIYadWX-qc1N_Lh6oe3Q6bUKTJIhb6N-v8dNDO6qyRbeWo0_0M1s7g_mBKIp2FeO8a_ezIkpjtRv81SwXxEDqFacT2O46GlILO0Nfh7lbI2HZK2eUPrC-XVCiLiGoKsQDxHxD_Po0QrH0OxD6jnQvUfiqpgsULsvtbsSuHpUNl-OlIFhxODRxyIILsjAoWaQi9yEEV5swLVTdCix7e8ZKJPWQKEi55e7WYZm8vJqIUaaKrgdbw8HDlOWiJcrzzKdg-Hk3QBxnuoT4wqiaJaKb3uIQUtPzo5Jn_58PIxHh1WawpJOOmTH5RFgGTHlMB-5nBKG0iW1Bzm_vlg0NU_ZlYjvTWWDGOldk18WbzBr88XUI_jyRylFp_gYxc2peAyPnhZtOJGC4-7Eudbjz7QtClntVenjcG9h0k-xUejD0fcvCQUCty8S0ZfvCMEhrOJXEYCfI9-ESFFzpRh0EDCyfllS2Ugor4ZtUBjztXsj5sz2tp1wOSG7QR22K8rBKBFSyaKdIrNoLoucCEFFqlK_WSxfgsvUhspr4ZztxzPCejv3pKu9XYOV5nM6_qRsQY9ub88kQQKf2ZwNUnuYM_JYcvr2P9R551Pqqssk2KmbU42P35a2t5xJo9h921tGxUNjS9k4LAaO9g.Em_yWzxnUwwvs90IRZzH-Q
Bearer
900
"/v3/token/detail":
get:
tags:
- Authorization
summary: Walmart Token Detail
description: 'This process retrieves the access permissions granted by sellers to applications in the context of OAuth 2.0. The scope encompasses various API categories, each with its respective access levels, for example Reports: View Only, Item: Full Access, etc.'
externalDocs:
description: View Guide
url: "/doc/us/mp/us-mp-auth2/#606"
operationId: getTokenDetail
parameters:
- in: header
name: WM_SEC.ACCESS_TOKEN
description: The access token retrieved in the Token API call
required: true
schema:
type: string
example: eyJraWQiOiIzZjVhYTFmNS1hYWE5LTQzM.....
- in: header
name: Content-Type
description: Content type of the request body.
required: true
schema:
type: string
example: application/x-www-form-urlencoded
- in: header
name: WM_CONSUMER.CHANNEL.TYPE
description: A unique ID to track the consumer request by channel. Use the Consumer Channel Type received during onboarding.
required: false
schema:
type: string
- in: header
name: WM_QOS.CORRELATION_ID
description: A unique ID which identifies each API call and used to track and debug issues; use a random generated GUID for this ID
required: true
schema:
type: string
example: b3261d2d-028a-4ef7-8602-633c23200af6
- in: header
name: WM_SVC.NAME
description: Walmart Service Name
required: true
schema:
type: string
example: Walmart Service Name
responses:
'200':
description: Successful Operation
content:
application/json:
schema:
required:
- expire_at
- is_channel_match
- is_valid
- issued_at
- scopes
type: object
properties:
scopes:
type: object
properties:
reports:
type: string
enum:
- full_access
- view_only
- no_access
item:
type: string
enum:
- full_access
- view_only
- no_access
shipping:
type: string
enum:
- full_access
- view_only
- no_access
price:
type: string
enum:
- full_access
- view_only
- no_access
lagtime:
type: string
enum:
- full_access
- view_only
- no_access
feeds:
type: string
enum:
- full_access
- view_only
- no_access
returns:
type: string
enum:
- full_access
- view_only
- no_access
orders:
type: string
enum:
- full_access
- view_only
- no_access
rules:
type: string
enum:
- full_access
- view_only
- no_access
inventory:
type: string
enum:
- full_access
- view_only
- no_access
content:
type: string
enum:
- full_access
- view_only
- no_access
description: The API categories with their corresponding access levels
default: "{“reports”: “view_only”}"
expire_at:
type: string
description: The timestamp when the token expires
default: '1560973098000'
issued_at:
type: string
description: The timestamp when the token is issued
default: '1560973098000'
is_valid:
type: boolean
description: Whether the token is valid; boolean value of true or false
default: true
is_channel_match:
type: boolean
description: Whether the keys Seller used are correctly associated
default: true
example:
expire_at: '1560973098000'
issued_at: '1560972198000'
is_valid: true
scopes:
reports: view_only
item: full_access
price: no_access
lagtime: full_access
feeds: view_only
returns: full_access
orders: full_access
inventory: full_access
content: full_access
components:
schemas:
OAuthTokenDTO:
required:
- accessToken
type: object
properties:
accessToken:
type: string
description: Access token to be used for accessing business APIs
xml:
namespace: http://walmart.com/
tokenType:
type: string
description: Type of token according to user. (e.g., 'BEARER')
xml:
namespace: http://walmart.com/
expiresIn:
type: integer
description: Expiry time of access token in seconds
format: int32
xml:
namespace: http://walmart.com/
refresh_token:
type: string
description: 'Token which should be used to refresh access token.
This field is present in response when **grant_type: authorization_code**'
xml:
namespace: http://walmart.com/
xml:
name: oAuthToken
OAuthToken:
required:
- access_token
- expires_in
- token_type
type: object
properties:
access_token:
type: string
description: Access token to be used for accessing business APIs
default: eyJraWQiOiI1MWY3MjM0Ny0wYWY5LTRhZ....
token_type:
type: string
description: Type of token according to user. (e.g., 'BEARER')
default: Bearer
expires_in:
type: integer
description: Expiry time of access token in seconds
format: int32
default: 900
refresh_token:
type: string
description: 'Token which should be used to refresh access token.
This field is present in response when **grant_type: authorization_code**'
default: APXcIoTpKMH9OQN…….
IAMTokenDTO:
required:
- grant_type
type: object
properties:
grant_type:
type: string
description: Type of grant requested.
**Available grant types:** authorization_code, refresh_token and client_credentials
enum:
- authorization_code
- refresh_token
- client_credentials
default: client_credentials
code:
type: string
description: 'Authorization code obtained by your client app when the seller authorizes your app to access the seller resource.
This field is required when **grant_type: authorization_code**'
default: 65CA5DA313A549D49D15D3119D9AD85D
redirect_uri:
type: string
description: 'This should be same as one of your client app URIs provided while registering the app.
This field is required when **grant_type: authorization_code**'
default: https://example-client-app.com
refresh_token:
type: string
description: 'Refresh token received as response of Authentication API with authorization_code grant type, to be used to refresh the access token.
This field is required when **grant_type: refresh_token**'
default: APXcIoTpKMH9OQN.....
Scopes:
type: object
properties:
reports:
type: string
enum:
- full_access
- view_only
- no_access
item:
type: string
enum:
- full_access
- view_only
- no_access
shipping:
type: string
enum:
- full_access
- view_only
- no_access
price:
type: string
enum:
- full_access
- view_only
- no_access
lagtime:
type: string
enum:
- full_access
- view_only
- no_access
feeds:
type: string
enum:
- full_access
- view_only
- no_access
returns:
type: string
enum:
- full_access
- view_only
- no_access
orders:
type: string
enum:
- full_access
- view_only
- no_access
rules:
type: string
enum:
- full_access
- view_only
- no_access
inventory:
type: string
enum:
- full_access
- view_only
- no_access
content:
type: string
enum:
- full_access
- view_only
- no_access
description: The API categories with their corresponding access levels
default: "{“reports”: “view_only”}"
TokenDetailResponse:
required:
- expire_at
- is_channel_match
- is_valid
- issued_at
- scopes
type: object
properties:
scopes:
type: object
properties:
reports:
type: string
enum:
- full_access
- view_only
- no_access
item:
type: string
enum:
- full_access
- view_only
- no_access
shipping:
type: string
enum:
- full_access
- view_only
- no_access
price:
type: string
enum:
- full_access
- view_only
- no_access
lagtime:
type: string
enum:
- full_access
- view_only
- no_access
feeds:
type: string
enum:
- full_access
- view_only
- no_access
returns:
type: string
enum:
- full_access
- view_only
- no_access
orders:
type: string
enum:
- full_access
- view_only
- no_access
rules:
type: string
enum:
- full_access
- view_only
- no_access
inventory:
type: string
enum:
- full_access
- view_only
- no_access
content:
type: string
enum:
- full_access
- view_only
- no_access
description: The API categories with their corresponding access levels
default: "{“reports”: “view_only”}"
expire_at:
type: string
description: The timestamp when the token expires
default: '1560973098000'
issued_at:
type: string
description: The timestamp when the token is issued
default: '1560973098000'
is_valid:
type: boolean
description: Whether the token is valid; boolean value of true or false
default: true
is_channel_match:
type: boolean
description: Whether the keys Seller used are correctly associated
default: true
parameters:
authorization:
name: Authorization
in: header
description: Basic authorization header. Base 64 encodes the Client ID and Client Secret retrieved in step two of the integration steps.
required: true
schema:
type: string
example: Basic YzcyOTFjNmItNzI5MC00....
accessToken:
name: WM_SEC.ACCESS_TOKEN
in: header
description: The access token retrieved in the Token API call
required: true
schema:
type: string
example: eyJraWQiOiIzZjVhYTFmNS1hYWE5LTQzM.....
channelType:
name: WM_CONSUMER.CHANNEL.TYPE
in: header
description: A unique ID to track the consumer request by channel. Use the Consumer Channel Type received during onboarding.
required: false
schema:
type: string
correlationId:
name: WM_QOS.CORRELATION_ID
in: header
description: A unique ID which identifies each API call and used to track and debug issues; use a random generated GUID for this ID
required: true
schema:
type: string
example: b3261d2d-028a-4ef7-8602-633c23200af6
svcName:
name: WM_SVC.NAME
in: header
description: Walmart Service Name
required: true
schema:
type: string
example: Walmart Service Name
content-type:
name: Content-Type
in: header
description: Content type of the request body.
required: true
schema:
type: string
example: application/x-www-form-urlencoded
wm_partner_id:
name: WM_PARTNER.ID
in: header
description: 'Partner Id registered in Walmart marketplace to identify a seller.
This field is required when **grant_type: authorization_code** and **grant_type: refresh_token**'
required: false
schema:
type: string
example: '43423324'
securitySchemes:
basicScheme:
type: http
description: ''
name: Authorization
in: header
scheme: basic
tags:
- name: Authorization