Instâncias são requisições feitas na API de SAC para tratar as ações dos pedidos que são: Cancelamento, Devolução e Troca.
A criação das instâncias para o SAC se sucede após conseguir todas os parâmetros necessários com os retornos das consultas das informações dos pedidos nos endpoints de SAC, que estão na aba Listar SAC.
A instâncias estarão disponíveis para o endpoint:
https://api.skyhub.com.br/sac/{code}/instances
Para esse endpoint estão disponíveis as ações POST, GET e PUT.
Não é possível criar uma Instância, pois entendemos que solicitação de Cancelamento, Devolução e Troca, é feita pelo cliente final, neste caso irão apenas responder a Instâncias que a B2W irá gerar para o pedido.
Caso desejem seguir com o cancelamento, é possível enviar o status de "Cancelado" para o pedido e com isso seguirá com a indisponibilidade para atendimento desse pedido via API.
--header 'x-api-key: YOUR API KEY HERE' \--header 'x-user-email: MUDAR@SEU_EMAIL.COM' \--header 'content-type: application/json' \--header 'accept: application/json' \--header 'x-accountmanager-key: SUAXACCOUNT'
Request Headers:
Name | Type | Required | Description | Example |
accept | String | Required | application/json | application/json |
Content-type | String | Required | application/json | application/json |
x-user-email | String | Required | E-mail da loja | seu@email.com |
x-api-key | String | Required | Token da loja | SuaApiKey |
x-accountmanager-key | String | Required | Código identificador da sua Integração | SUAXACCOUNT |
Example Body:
{"instance": {"items": [{"id": "158259995-1","sku_id": "120615464","product_id": "120615456","quantity": 1}],"action": {"id": "CANCEL","name": "cancelamento"},"cause": {"id": "ARP","name": "Arrependimento","reason": {"id": "183","name": "Comprei errado"}},"refunds": [{"id": "CREDIT_CARD","group": "ORIGINAL_PAYMENT"}],"additional_note": "Cancel item 158259995-1"}}
Os arrays terão os seguintes dados:
"action" terá os dados da ação escolhida (Cancelamento, Devolução e Troca);
ID | Name |
CANCEL | Cancelamento |
RETURN | Devolução |
EXCHANGE | Troca |
"cause" terá os dados da causa escolhida, o motivo de ter sido tomada a ação;
"refunds" terá os dados do reembolso escolhido, importante destacar que o "refunds" será utilizado apenas para ações de "Cancelamento" ou "Devolução".
Example Body for EXCHANGE (Troca):
{"instance": {"new_items": [{"id": "158259995-1","sku_id": "120615464","product_id": "120615456","quantity": 1}],"items": [{"id": "158259995-1","sku_id": "120615464","product_id": "120615456","quantity": 1}],"cause": {"id": "ARP","name": "Arrependimento","reason": {"id": "183","name": "Comprei errado"}},"additional_note": "Return item 158259995-1","action": {"id": "Troca","name": "EXCHANGE"}}}
Obs: Solicitações de troca só podem ser enviadas com o mesmo SKU, ou seja, não existe a possibilidade de trocar um produto por outro item do mesmo valor.
201 - Created
400 - Bad Request
404 - Not Found
422 - Unprocessable Entity
{"error": "Error message"}
Para consultar uma instância criada é necessário utilizar o método GET no seguinte endpoint:
https://api.skyhub.com.br/sac/{code}/instances
Example Request:
curl --location --request GET 'https://api.skyhub.com.br/sac/{code}/instances' \--header 'X-User-Email: MUDAR@SEU_EMAIL.COM' \--header 'x-Api-Key: YOUR API KEY HERE' \--header 'x-accountmanager-key: SUAXACCOUNT' \--header 'Accept: application/json' \--header 'Content-Type: application/json'
200 - OK
404 - Not Found
422 - Unprocessable Entity
{"error": "Error message"}
É possível realizar a consulta acrescentando o ID da instância que é encontrada dentro do retorno do GET da instância.
Example Request:
curl --location --request GET 'https://api.skyhub.com.br/sac/{code}/instances/{id_instancia}' \--header 'X-User-Email: MUDAR@SEU_EMAIL.COM' \--header 'x-Api-Key: YOUR API KEY HERE' \--header 'x-accountmanager-key: SUAXACCOUNT' \--header 'Accept: application/json' \--header 'Content-Type: application/json'
200 - OK
404 - Not Found
422 - Unprocessable Entity
{"error": "Error message"}
Para atualizarmos instâncias que foram criadas no endpoint de SAC temos o método PUT e JSONs de requisição diferentes de acordo com a necessidade, segue o exemplo de requisição para esse endpoint:
curl --location --request PUT 'https://api.skyhub.com.br/sac/{code}/instances/{id_instancia}' \--header 'X-User-Email: MUDAR@SEU_EMAIL.COM' \--header 'x-Api-Key: YOUR API KEY HERE' \--header 'x-accountmanager-key: SUAXACCOUNT' \--header 'Accept: application/json' \--header 'Content-Type: application/json'
Os JSONs de exemplos seguirão de acordo com o status que deseja atualizar para a instância, segue abaixo exemplos, para toda requisição de atualização é necessário que envie um body do status para atualização da instância.
Status "POST" refere-se a postagem da instância para o item de pedido (produto):
{"id": 1,"status": "POST","carrier": {"in_days": 1,"tracking_number": "RR1234567890BR"},"additional_note": "Postar produto..."}
Status "COLLECT" refere-se a coleta da instância para o item de pedido (produto):
Seller deverá utilizar seu próprio contrato com os Correios ou transportadora, para gerar código para o consumidor devolver o produto sem custo, depois deverá informar o código e enviar texto de orientação para consumidor devolver o produto. Recomendamos o uso de texto pré-definido, mas editável, caso o parceiro queira mudar:
“Acondicione o (s) produto (s) na embalagem original, dentro de uma caixa de papelão ou envoltório que o (s) proteja;
Devolva junto com (s) produto (s) os manuais, certificados e acessórios;
Leve o (s) produto (s) até a agência dos Correios autorizada e informe o
número do código ao atendente. ”
{"id": 1,"status": "COLLECT","carrier": {"in_days": 1},"additional_note": "Coletar produto..."}
Status "CLOSE" refere-se ao fechamento da instância:
Neste caso é possível cancelar o pedido e realizar a liberação de reembolso ou troca para o consumidor. É utilizado quando a mercadoria está com o parceiro ou ele consegue barrar antes da expedição.
{"id": 1,"status": "CLOSE","additional_note": "Fechar instância..."}
Status "CANCEL" refere-se ao cancelamento da instância:
{"id": 1,"cause_id": 131,"status": "CANCEL","additional_note": "Cancelar instância..."}
Status "REFUSE" refere-se a recusa da instância:
Quando consumidor pede reembolso ou troca e o pedido está em transporte, parceiro tem prazo (verificar campo de vencimento da API) para orientar consumidor que ele recuse a entrega da mercadoria. Quando aciona essa opção, precisa incluir orientação para o consumidor:
{"id": 1,"status": "REFUSE","additional_note": "Recusar instância..."}
Exemplo de "additional_note": "O produto já está a caminho do endereço informado. Por favor, recuse a entrega do produto para que ele possa ser devolvido. Após o registro da devolução seu atendimento será efetuado."
204 - No content
404 - Not Found
422 - Unprocessable Entity
{"error": "Error message"}
500 - Internal server error
{"error": "Error message"}