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.
 
Copie o link e salve-o. Você realizará a importação deste modelo no Postman.
 
No Postman, realize os seguintes passos:
- Clique em 'Import'
- Selecione 'Link'
- Cole o link 'Raw' do modelo anteriormente selecionado
 
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.
 
Na aba Body especifique os seguintes parâmetros:
| Key | Value | 
|---|---|
| grant_type | authorization_code | 
| code | (Aqui você irá colar o código OAUTH 2.0 recebido na link de callback de autorização) | 
| client_id | sellercentral.amazon.com > Aplicativos e Serviços > Desenvolver Aplicativos > Credenciais LWA (Visualizar) > Identificador de Cliente | 
| client_secret | sellercentral.amazon.com > Aplicativos e Serviços > Desenvolver Aplicativos > Credenciais LWA (Visualizar) > Segredo do Cliente | 
| redirect_url | Aqui você vai colocar a mesma URI de callback cadastrada no processo de autorização | 
 
Envie a solicitação do Postman clicando em SEND e capturando o refresh_token conforme ilustra a imagem abaixo:
 
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.
| Key | Value | 
|---|---|
| grant_type | refresh_token | 
| refresh_token | (Aqui você coloca o refresh_token que obteve no Passo 2) | 
| client_id | sellercentral.amazon.com > Aplicativos e Serviços > Desenvolver Aplicativos > Credenciais LWA (Visualizar) > Identificador de Cliente | 
| client_secret | sellercentral.amazon.com > Aplicativos e Serviços > Desenvolver Aplicativos > Credenciais LWA (Visualizar) > Segredo do Cliente | 
| redirect_url | Aqui você vai colocar a mesma URI de call back cadastrada no processo de autorização | 
Especifique os parâmetros conforme a imagem abaixo:
 
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:
 
A chamada a ser realizada no Postman deverá ser GET na seguinte URL:
https://sts.amazonaws.com/
| Key | Value | 
|---|---|
| Version | 2011-06-15 | 
| Action | AssumeRole | 
| 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:
 
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
 
Guarde essas informações!
- AccessKeyId
- SecretAccessKey
- 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.
| Key | Value | 
|---|---|
| MarketplaceId | A2Q3Y263D00KWC | 
| EAN | 7898558570334 | 
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
 
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:
- AccessKeyID > AccessKey
- SecretAccessKeyId > SecretKey
- SessionToken > Session Token
A figura abaixo ilustra detalhadamente quais campos devem ser copiados na aba de autorização.
 
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:
| Key | Value | 
|---|---|
| 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:
 
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
 
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
 
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
 
Passando os dados obtidos
 
4. Headers
Na aba "Headers" devemos incluir a chave "x-amz-access-token", que criamos em 3. Refresh Token.
 
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"
 
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=="
}
Updated about 3 years ago
