Guia de implementação

Importar modelos do repositório no POSTMAN

O primeiro passo para importar modelos de referência da SP-API no Postman é encontrá-los!
Os modelos da SP-API se encontram no seguinte link:
https://github.com/amzn/selling-partner-api-models/tree/main/models

Assim que você escolher a modal que você deseja utilizar, você pode importá-la, selecionando o link 'raw' do modelo.

2854

Copie o link e salve-o. Você realizará a importação deste modelo no Postman.

2878

No Postman, realize os seguintes passos:

  • Clique em 'Import'
  • Selecione 'Link'
  • Cole o link 'Raw' do modelo anteriormente selecionado
2876

Access Token

Assim que for obtido o código de OAUTH 2.0 será necessário utilizá-lo para criar o código de Refresh Token.

Para isso é necessário importar o modelo de Autorização conforme ilustrado no Passo 1

O Refresh Token não expira e será utilizado constantemente para gerar o Access Token.

A chamada POST deverá apontar para a seguinte URL:

https://api.amazon.com/auth/o2/token

🚧

Authorization

Na aba Authorization selecione TYPE como AWS Signature.

É necessário especificar as suas credenciais AWS (Que foram geradas no CSV durante a criação da role de acesso) nos campos AccessKey e SecretKey.

AWS Region e Service Name são opcionais mas podem ser utilizados como us-east-1 e execute-api respectivamente.

2150

Na aba Body especifique os seguintes parâmetros:

KeyValue
grant_typeauthorization_code
code(Aqui você irá colar o código OAUTH 2.0 recebido na link de callback de autorização)
client_idsellercentral.amazon.com > Aplicativos e Serviços > Desenvolver Aplicativos > Credenciais LWA (Visualizar) > Identificador de Cliente
client_secretsellercentral.amazon.com > Aplicativos e Serviços > Desenvolver Aplicativos > Credenciais LWA (Visualizar) > Segredo do Cliente
redirect_urlAqui você vai colocar a mesma URI de callback cadastrada no processo de autorização
2152

Envie a solicitação do Postman clicando em SEND e capturando o refresh_token conforme ilustra a imagem abaixo:

1966

Refresh Token

Após ter obtido o Refresh_Token é necessário criar uma chamada que através dele possa gerar o token de acesso (Access_Token), que é necessário nas chamadas da SP-API.

Diferente do refresh_token, o access_token expira (a cada hora) e precisa ser renovado regularmente.

A chamada POST deverá apontar para a seguinte URL:

https://api.amazon.com/auth/o2/token

🚧

Authorization

Na aba Authorization selecione TYPE como AWS Signature e especifique os parâmetros conforme o Passo 2.

KeyValue
grant_typerefresh_token
refresh_token(Aqui você coloca o refresh_token que obteve no Passo 2)
client_idsellercentral.amazon.com > Aplicativos e Serviços > Desenvolver Aplicativos > Credenciais LWA (Visualizar) > Identificador de Cliente
client_secretsellercentral.amazon.com > Aplicativos e Serviços > Desenvolver Aplicativos > Credenciais LWA (Visualizar) > Segredo do Cliente
redirect_urlAqui você vai colocar a mesma URI de call back cadastrada no processo de autorização

Especifique os parâmetros conforme a imagem abaixo:

2152

👍

Guarde essa informação!

Guarde o access_token obtido para realizarmos a chamada da API no Passo 5!

Sessions Token

Gerar e configurar o Session Token (STS)

Além do access_token, é necessário configurar o token de seção da API. Para mais informações, utilize este link de referência.

Para isso é necessário realizar as seguintes configurações no seu Postman:

🚧

Authorization

Na aba Authorization selecione TYPE como AWS Signature e especifique os parâmetros conforme o Passo 2.

❗️

Importante

Ainda na aba Authorization é necessário especificar Service Name com o parâmetro sts conforme ilustra a figura abaixo. Se este parâmetro não for especificado, a chamada não funcionará corretamente.

Configurando o service name em sts:

2116

A chamada a ser realizada no Postman deverá ser GET na seguinte URL:

https://sts.amazonaws.com/
KeyValue
Version2011-06-15
ActionAssumeRole
RoleArn(Aqui você utiliza a role que você configurou na sua conta de desenvolvedor AWS)
arn:aws:iam::12345:role/role_xyz
DurationSeconds(Tempo de duração da sessão em segundos)
3600
RoleSessionName(Qualquer nome aqui)
Teste

Com todos os parâmetros configurados, sua chamada deve ficar semelhante ao exemplo abaixo:

https://sts.amazonaws.com/?Version=2011-06-15&Action=AssumeRole&RoleArn=arn:aws:iam::12345:role/role_xyz&DurationSeconds=3600&RoleSessionName=Teste

Conforme ilustra a imagem abaixo:

2152

O resultado dessa chamada pode ser dividida em 3 informações que deverão ser utilizadas na chamada da API no Passo 5, são elas:

  • AccessKeyId
  • SecretAccessKey
  • SessionToken
2156

👍

Guarde essas informações!

  1. AccessKeyId
  2. SecretAccessKey
  3. SessionToken

Para utilizarmos no Passo 5.

Chamada da API

Agora que já possuímos o Access_Token (Passo 3) e também as informações da Session_Token (Passo 4), será possível realizar uma chamada na API de catálogo para realizarmos um teste.

O primeiro passo é importar o modelo da API de catálogos de produto conforme especificado no Passo 1.

No nosso exemplo, utilizamos o Marketplace do Brasil e um EAN exemplo para obtermos a informação de um produto.

KeyValue
MarketplaceIdA2Q3Y263D00KWC
EAN7898558570334

Deste modo a URL base GET, inicialmente configurada em:

https://sellingpartnerapi-na.amazon.com/catalog/v0/items/:asin

Conforme ilustra a imagem:

https://sellingpartnerapi-na.amazon.com/catalog/v0/items/:asin?MarketplaceId=A2Q3Y263D00KWC&EAN=7898558570334
2156

Agora precisamos utilizar as configurações de seção que obtivemos no Passo 4.

🚧

Authorization

Na Aba Authorization, copie as credenciais da seção nas credenciais de usuário do seguinte modo:

  1. AccessKeyID > AccessKey
  2. SecretAccessKeyId > SecretKey
  3. SessionToken > Session Token

A figura abaixo ilustra detalhadamente quais campos devem ser copiados na aba de autorização.

2494

Assim que isso tiver sido realizado, é necessário configurar no header da chamada o Access_Token obtido no Passo 3.

Para isso, na aba Header, crie o seguinte item:

KeyValue
x-amz-access-token(Aqui você deve inserir o accesstoken que você gerou no Passo 3. Ex.

**Atza|IwEBICt2IIjf4SJpsLt4mP2V2y6cyfUnQZf8nmDqdEDTrWnTVbgs_M7P
...**

Conforme ilustra a imagem abaixo:

2154

Agora é só clicar em SEND e enviar sua requisição para a API!
A API deste exemplo trouxe o seguinte resultado:

{
    "payload": {
        "Items": [
            {
                "Identifiers": {
                    "MarketplaceASIN": {
                        "MarketplaceId": "A2Q3Y263D00KWC",
                        "ASIN": "B07JM9487B"
                    }
                },
                "AttributeSets": [
                    {
                        "MaterialType": [
                            "Couro sintético"
                        ],
                        "Brand": "Phoenix Puff",
                        "ItemDimensions": {
                            "Height": {
                                "value": 18.11023620200,
                                "Units": "inches"
                            },
                            "Length": {
                                "value": 18.11023620200,
                                "Units": "inches"
                            },
                            "Width": {
                                "value": 18.11023620200,
                                "Units": "inches"
                            },
                            "Weight": {
                                "value": 7.8264103010000,
                                "Units": "pounds"
                            }
                        },
                        "Label": "Mobly",
                        "Manufacturer": "Mobly",
                        "NumberOfItems": 1,
                        "PackageDimensions": {
                            "Height": {
                                "value": 18.11023620200,
                                "Units": "inches"
                            },
                            "Length": {
                                "value": 18.11023620200,
                                "Units": "inches"
                            },
                            "Width": {
                                "value": 18.11023620200,
                                "Units": "inches"
                            },
                            "Weight": {
                                "value": 7.8264103010000,
                                "Units": "pounds"
                            }
                        },
                        "PackageQuantity": 1,
                        "ProductGroup": "Home",
                        "ProductTypeName": "BEAN_BAG_CHAIR",
                        "Publisher": "Mobly",
                        "SmallImage": {
                            "URL": "https://m.media-amazon.com/images/I/41QfRz4baKL._SL75_.jpg",
                            "Height": {
                                "Units": "pixels",
                                "value": 75
                            },
                            "Width": {
                                "Units": "pixels",
                                "value": 75
                            }
                        },
                        "Studio": "Mobly",
                        "Title": "Puff Infantil Banana Grande Unissex em Corino"
                    }
                ],
                "Relationships": [],
                "SalesRankings": [
                    {
                        "ProductCategoryId": "furniture_display_on_website",
                        "Rank": 2631
                    },
                    {
                        "ProductCategoryId": "17351366011",
                        "Rank": 24
                    }
                ]
            }
        ]
    }
}

Que por acaso é o seguinte produto (Caso você queira comprá-lo na Amazon!) :

https://www.amazon.com.br/Puff-Infantil-Banana-Grande-Unissex/dp/B07JM9487B

Exemplo RDT

Para completar esta etapa, os passos anteriores de setup devem ter sido finalizados. Esta etapa trará instruções para fazer chamadas na SP-API.

1. Adicione uma nova requisição

No canto superior esquerdo, clique em "New" e adicione uma nova requisição HTTP

333

2. Requisição POST

A requisição deve ser do tipo POST para a seguinte URL:

https://sellingpartnerapi-na.amazon.com/tokens/2021-03-01/restrictedDataToken
130

3. Authorization

Na aba "Authorization" devemos incluir os dados do Session Token, que criamos em 2. Session Token (STS), passe esses dados em "AccessKey", "SecretKey" e "Session Token".

Exemplo de Session Token

266

Passando os dados obtidos

752

4. Headers

Na aba "Headers" devemos incluir a chave "x-amz-access-token", que criamos em 3. Refresh Token.

416

5. Body

No corpo da requisição é necessário o envio do seguinte JSON:

{
  "restrictedResources": [
    {
      "method": "GET",
      "path": "/orders/v0/orders/",
      "dataElements": ["buyerInfo", "shippingAddress"]
    }
  ]
}

6. Send

Faça a criação do Feed clicando no botão "Send"

116

7. Sucesso na criação

Se você obteve êxito na criação você deve receber um restrictedDataToken e expiresIn, como no exemplo, esse Token deve ser passado nas chamadas de Order na chave x-amz-access-token do Headers.

{
    "expiresIn": 3600,
    "restrictedDataToken": "Atz.sprdt|AYABeCv+cTIjsYiLjsOOwPz8kikAAAABAAdhd3Mta21=="
}