Criar Mensagens¶
Criar mensagens para um ticket¶
Este endpoint permite criar uma mensagem para um determinado ticket, podendo ou não incluir anexos.
Escopo requerido
Valor | Descrição |
---|---|
open:ticket-messages-seller:write |
Permite a utilização das APIs de escrita/atualização. |
Parâmetros da URL
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
ticket_uuid |
string | Chave para identificação do ticket. | Sim |
Restricoes de Anexos
- file_type
: image/png, image/jpe, image/jpeg, image/jpg, image/gif, image/vnd.ms-photo, image/pdf, application/pdf
- file_size
: 5MB
Chamada:
curl -X 'POST' \
'https://api.magalu.com/seller/v0/tickets/{ticket_uuid}/messages' \
-H 'X-CHANNEL: <Channel Id>' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <Access Token>' \
-H 'Content-Type: application/json' \ -d '{
"code": "codigo_opcional_definido_pelo_usuario",
"message": "O produto será entregue na próxima semana.",
"owner": {
"code": "j.doe",
"name": "John Doe"
},
"destination": "customer",
"attachments": [
{
"file_name": "nome_do_arquivo.png",
"file_extension": "png",
"file_type": "image/png"
},
{
"file_name": "file_name_2.png",
"file_extension": "png",
"file_type": "image/png"
}
]
}'
NOTA: Para o envio de anexos neste fluxo, esta primeira requisição apenas informa o nome e extensões dos arquivos que o usuário gostaria de enviar. Como resposta, serão recebidos links assinados para a conclusão do upload desses arquivos.
Resposta:
{
"transaction_id": "e55e7339-3cf6-4fa0-883c-e9c3e38602ec",
"data": {
"message": "Seguem os arquivos em anexo",
"code": "codigo_opcional_definido_pelo_usuario",
"ticket": {
"id": "e1faf69b-336a-5415-8c33-fc63f505b766",
"code": "4c503588-2a90-4ee4-b84b-b89d5a554f3e",
"type": "cancellation",
},
"destination": "customer",
"attachments": [
{
"id": "71b25f3a-0ae2-484f-868e-418b0c1d5991",
"file_name": "71b25f3a-0ae2-484f-868e-418b0c1d5991.png",
"provided_file_name": "nome_do_arquivo.png",
"file_extension": "png",
"file_type": "image/png",
"file_path": "e55e7339-3cf6-4fa0-883c-e9c3e38602ec/71b25f3a-0ae2-484f-868e-418b0c1d5991.png",
"signed_link": {
"url": "https://storage.googleapis.com/sac-attachments-tmp-staging/e55e7339-3cf6-4fa0-883c-e9c3e38602ec/71b25f3a-0ae2-484f-868e-418b0c1d5991.png?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=ps-core-customer-service%40maga-homolog.iam.gserviceaccount.com%2F20241108%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20241108T131525Z&X-Goog-Expires=3600&X-Goog-SignedHeaders=content-type%3Bhost%3Bx-goog-content-length-range&X-Goog-Signature=...",
"method": "PUT",
"expires_at": "2024-11-08T14:15:25.416590",
"max_size": 5242880,
"expired": false,
"headers": {
"Content-Length": "5242880",
"x-goog-content-length-range": "0,5242880"
}
}
}
],
"created_by": "17aa4169-0aee-4417-9739-d86748b330b0"
},
"links": [
{
"path": "/seller/v0/transactions/e55e7339-3cf6-4fa0-883c-e9c3e38602ec"
}
]
}
Concluir o upload de anexos¶
Caso a mensagem possua anexos, é necessário o upload dos arquivos nas URLs assinadas retornadas no payload da resposta utilizando os headers fornecidos também no payload. O fluxo de criação da mensagem será pausado até que os anexos sejam devidamente enviados.
Abaixo, um exemplo de requisição para upload de um arquivo em uma URL assinada:
curl -X PUT \
'https://storage.googleapis.com...' \
-H 'Content-Length: 5242880' \
-H 'x-goog-content-length-range: 0,5242880' \
--data-binary '@path/to/nome_do_arquivo.png'
Quando todos os uploads de anexos forem concluídos em suas respectivas URLs assinadas, o fluxo de criação da mensagem será retomado.
NOTA: Passados 15 minutos da requisição inicial, caso o upload dos arquivos não seja concluído, a mensagem expirará e não será criada.
Códigos de retorno¶
Código | Descrição |
---|---|
202 | Accepted |
400 | Bad Request |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
500 | Internal Server Error |
Acompanhar finalização da criação da mensagem¶
A criação de mensagem agora é um fluxo assíncrono e pode ser acompanhado a partir de transações. Consulte a documentação sobre fluxos assíncronos e transações para entender mais sobre o processo.