Api de Sac

Esta documentação traz as orientações a respeito da API de SAC do Magalu Marketplace. Com ela é possível fazer as seguintes ações:

● Buscar Tickets de Atendimento
● Enviar Mensagens para tickets de atendimento

OBS: Ainda não temos disponível na API recursos para a criação de protocolos de atendimento. Deste modo, quando um novo cliente abre um protocolo de atendimento no site do Magalu, o seller consegue realizar algumas ações de atendimento deste ticket via API, entretanto, para outras determinadas ações o seller terá de realizar o atendimento via tela através do Portal do Seller.

sacorganograma

Buscar Tickets de Atendimento
Este recurso permite a consulta de protocolos de atendimento já abertos

Padrões de Implementação
Rota - https://in.integracommerce.com.br/api/v1/legacy/tickets/< filter>
Metodo - GET
Ratelimit - 100 requisições/minuto
Autenticação - OAuth2 via IDMagalu
Filtros Aceitos - createdat_greater | createdat_lesser | updatedat_greate | updatedat_lesse | sladat_greater | sladat_lesser | order.id | status | limit | offset | service_protocol


Buscar tickets por quantidade - GET Tickets By Limit

            Request:
            curl -X GET \
            'https://in.integracommerce.com.br/api/v1/legacy/tickets?limit=1' \
            -H 'Authorization: Bearer ' \
            -H 'Cache-Control: no-cache' \
            -H 'Content-Type: application/json' \
            -H 'cache-control: no-cache'
          
Response 200 - Success

            Body:
            {
              "count": 138907,
              "next": "https://giba.luizalabs.com/api/v2/tickets?limit=1",
              "previous": null,
              "results": [
                {
                  "protocol": "2017041375312950",
                    "order": {
                    "id": "5281500255421355",
                    "seller": {
                        "id": "openapi"
                      },
                    "customer": {
                        "name": "evandro lopes santana"
                      }
                    },
                  "status": {
                    "id": "closed",
                    "description": "Fechado"
                    },
                  "reason": {
                  "id": "mktplace-duvidas-gerais",
                  "description": "Dúvidas gerais sobre pedido, produto e troca"
                  },
                  "sla": {
                    "deadline": {
                      "date": null
                      }
                    },
                  "created_at": "2017-04-14T00:18:24+0000",
                  "updated_at": "2017-04-14T00:19:44+0000"
                }
              ]
            }
              
          


Buscar tickets por pedido - GET Tickets By Order

            Request:
            curl -X GET \
            'https://in.integracommerce.com.br/api/v1/legacy/tickets?order.id=5281500255421355 \
            -H 'Authorization: Bearer ' \
            -H 'Cache-Control: no-cache' \
            -H 'Content-Type: application/json' \
            -H 'cache-control: no-cache'
          
Response 200 - Success

            Body:
            {
              "count": 2,
              "next": null,
              "previous": null,
              "results": [{
                  "protocol": "2017041375312950",
                  "order": {
                    "id": "5281500255421355",
                  "seller": {
                    "id": "openapi"
                    },
                  "customer": {
                    "name": "evandro lopes santana"
                    }
                  },
                  "status": {
                      "id": "closed",
                      "description": "Fechado"
                    },
                  "reason": {
                      "id": "mktplace-duvidas-gerais",
                      "description": "Dúvidas gerais sobre pedido, produto e troca"
                    },
                  "sla": {
                      "deadline": {
                      "date": null
                      }
                    },
                  "created_at": "2017-04-14T00:18:24+0000",
                  "updated_at": "2017-04-14T00:19:44+0000"
                },
                {
                  "protocol": "2017041366403070",
                  "order": {
                    "id": "5281500255421355",
                    "seller": {
                    "id": "openapi"
                  },
                "customer": {
                    "name": "evandro lopes santana"
                    }
                  },
                "status": {
                    "id": "closed",
                    "description": "Fechado"
                  },
                "reason": {
                    "id": "mktplace-cancelamento-de-pedido",
                    "description": "Cancelamento de um ou mais itens de um pedido"
                  },
                "sla": {
                "deadline": {
                    "date": null
                  }
                },
                "created_at": "2017-04-14T00:19:44+0000",
                "updated_at": "2018-07-05T17:49:31+0000"
              }]
            }
              
          


Detalhes do ticket - GET Details By Service_Protocol

            Request:
            'https://in.integracommerce.com.br/api/v1/legacy/tickets/2018110827174580/' \
            -H 'Authorization: Bearer  \
            -H 'Cache-Control: no-cache' \
            -H 'Content-Type: application/json' \
            -H 'cache-control: no-cache'
          
Response 200 - Success

            Body:
            {
              "protocol": "2018110827174580",
              "order": {
                  "id": "6850500402188953",
                  "seller": {
                  "id": "openapi"
                },
              "customer": {
                  "name": "Bruno Henrique de Oliveira"
                }
              },
              "status": {
                  "id": "closed",
                  "description": "Fechado"
                },
              "reason": {
                  "id": "mktplace-duvidas-gerais",
                  "description": "Dúvidas gerais sobre pedido, produto e troca"
                },
              "sla": {
                  "deadline": {
                    "date": "2018-11-24T13:54:27+0000"
                  }
                },
              "created_at": "2018-11-08T15:22:48+0000",
              "updated_at": "2018-11-30T19:30:46+0000",
              "messages": [{
                    "text": "Apenas teste, não é necessário responder. Bruno
                    Oliveira",
                    "sender": "customer",
                    "private": false,
                    "createdAt": "2018-11-08T15:22:50+0000"
                  },
                    {
                    "text": "Teste",
                    "sender": "customer",
                    "private": false,
                    "createdAt": "2018-11-08T15:23:25+0000"
                  }],           
              "mediated": true
            }
          


Enviar Mensagens para Tickets de Atendimento
Este recurso permite enviar mensagens para protocolos já abertos.

Padrões de Implementação
Rota - https://in.integracommerce.com.br/api/v1/legacy/tickets/< service_protocol> /messages
Metodo - POST
Ratelimit - 100 requisições/minuto
Autenticação - OAuth2 via IDMagalu


Enviar mensagem para o ticket - POST Messages By Protocol

            Request:
            curl -X POST \
            https://in.integracommerce.com.br/api/v1/legacy/tickets/2018110827174580/messages \
            -H 'Authorization: Bearer ' \
            -H 'Cache-Control: no-cache' \
            -H 'Content-Type: application/json'
            -H 'cache-control: no-cache' \
            -d '{
            "message": ,
            "private": false
            }            
          


Response 200 - Success

            Body:
            {
              "id": 4560628,
              "ticket": "2018110827174580",
              "created": "2018-11-13T17:22:27+0000",
              "role": "seller",
              "private": false,
              "created_by": "apigee"
            }              
          


Autorizar estorno de um ticket por mensagem via API
Para estornar um pedido, você pode mandar uma nova mensagem com a chave extra preenchida no payload da mensagem. O conteúdo da chave deve ser um objeto javascript, respeitando as regras abaixo para cada uma das situações.

Para informar que o produto já foi enviado para o cliente:

              Body:
              {
                “productSent”: Boolean
              }                           
            


Para informar que o código de reversa já foi enviado ao cliente:

                Body:
                {
                  “returnInfoSent”: Boolean
                }
              


Para confirmar o recebimento da reversa e autorizar o estorno:

                Body:
                {
                  “productReceived”: Boolean,
                  “authorizedRefund”: Boolean
                }                
              


Exemplo - Request

              
                curl -X POST \
                https://in.integracommerce.com.br/api/v1/legacy/tickets/2018110827174580
                /messages \
                -H 'Authorization: Bearer ' \
                -H 'Cache-Control: no-cache' \
                -H 'Content-Type: application/json' \
                -H 'cache-control: no-cache' \
                -d '{
                "message": ,
                "private": false,
                "extra": {
                "productReceived": Boolean,
                "authorizeRefund": Boolean
                }
                }