{
  "meta": {
    "schemaVersion": 24,
    "createdAt": "2026-07-12T20:21:51.878Z",
    "updatedAt": "2026-07-12T20:28:10.543Z"
  },
  "customers": [],
  "objects": [],
  "attendances": [],
  "expeditions": [],
  "expeditionDraft": null,
  "events": [],
  "users": [
    {
      "id": "USR-ADMIN",
      "name": "Administrador",
      "login": "admin",
      "pin": "1234",
      "role": "ADMIN",
      "active": true,
      "permissions": {
        "coleta": true,
        "objetos": true,
        "conferencia": true,
        "expedicao": true,
        "retorno": true,
        "retirada": true,
        "usuarios": true,
        "configuracoes": true,
        "alterarStatus": true,
        "excluirMovimento": true,
        "cancelarAtendimento": true,
        "cancelarObjeto": true,
        "gerarExpedicao": true
      },
      "createdAt": "2026-07-12T20:21:51.878Z",
      "updatedAt": "2026-07-12T20:26:36.545Z",
      "lastLoginAt": "2026-07-12T20:26:36.545Z"
    }
  ],
  "settings": {
    "attendanceStart": 10099,
    "expeditionStart": 11,
    "objectSequence": 53,
    "guardDays": 30,
    "company": {
      "name": "Speedbox Envios",
      "branch": "",
      "cnpj": "50.058.946/0001-87",
      "phone": "(31) 2552-0060",
      "whatsapp": "(31) 98878-5261",
      "logradouro": "Rua Pará de Minas",
      "numero": "55",
      "semNumero": false,
      "complemento": "Loja 04",
      "bairro": "Padre Eustáquio",
      "cidade": "Belo Horizonte",
      "uf": "MG",
      "cep": "30730-440",
      "pontoReferencia": "",
      "addressLine1": "Rua Pará de Minas",
      "addressLine2": "Loja 04",
      "cityState": "Belo Horizonte/MG",
      "address": "Rua Pará de Minas - Loja 04 - CEP: 30730-440",
      "contactName": "",
      "email": "atendimento@speedboxenvios.com.br"
    },
    "receipt": {
      "template": "{{kv:Atendimento|{{atendimento_numero}}}}\n{{kv:Data/Hora|{{atendimento_data_hora}}}}\n{{line}}\n{{center:{{empresa_nome}}}}\n{{center:CNPJ: {{empresa_cnpj}}}}\n{{center:{{empresa_logradouro}}, {{empresa_numero}} - {{empresa_complemento}}}}\n{{center:{{empresa_bairro}} - {{empresa_cidade}}/{{empresa_uf}}}}\n{{center:CEP: {{empresa_cep}}}}\n{{center:Telefone:{{empresa_telefone}}}}\n{{center:Whatsapp:{{empresa_whatsapp}}}}\n{{line}}\n{{center:COMPROVANTE DE RECEBIMENTO DE OBJETOS}}\n{{line}}\nRemetente: {{cliente_nome}}\nDocumento: {{cliente_documento}}\nCelular: {{cliente_telefone}}\n{{line}}\n{{center:OBJETOS RECEBIDOS}}\n{{line}}\n{{#objetos}}\n{{indice}}. {{codigo_formatado}}\n{{/objetos}}\n{{line}}\nQuantidade total: {{total_objetos}}",
      "extraFooterEnabled": true,
      "extraFooterText": "{{line}}\n{{wrap:Recebemos os objetos listados acima para processamento. Caso algum código de devolução ou PLP esteja inválido, expirado, cancelado ou ilegível, entraremos em contato para solicitar novo código ou retirada do objeto.}}\n{{wrap:O prazo inicial de guarda é de {{prazo_guarda}} dias corridos após a comunicação ao cliente.}}\n{{line}}",
      "widthMm": 79,
      "charWidth": 48,
      "profile": "epson_tm_t20x_ii",
      "cutEnabled": true,
      "feedBeforeCut": 3,
      "feedAfterCut": 0,
      "encoding": "CP850",
      "objectListTitle": "LISTA DE OBJETOS (correios)",
      "headerTemplate": "{{empresa_nome}} ({{empresa_filial}})\nCNPJ: {{empresa_cnpj}}\nTelefone: {{empresa_telefone}}\n{{empresa_endereco_formatado}}\n---------------------------------------\nCOMPROVANTE DE RECEBIMENTO\n---------------------------------------\nNº atendimento: {{atendimento_numero}}\nData/Hora: {{atendimento_data}}",
      "customerTemplate": "Remetente: {{cliente_nome}}\nCelular....: {{cliente_celular}}",
      "objectLineTemplate": "{{/objetos}}",
      "footerTemplate": "Prezado cliente, caso o seu código de devolução ou PLP esteja inválido, expirado, cancelado ou ilegível, entraremos em contato para solicitar novo código ou retirada do objeto. O prazo inicial de guarda é de {GUARD_DAYS} dias corridos após a comunicação ao cliente.",
      "title": "COMPROVANTE DE ENTREGA",
      "showSecondCopy": false,
      "footerMessage": "Prezado cliente, caso o seu código de devolução ou PLP esteja inválido, expirado, cancelado ou ilegível, entraremos em contato para solicitar novo código ou retirada do objeto. O prazo inicial de guarda é de {GUARD_DAYS} dias corridos após a comunicação ao cliente.",
      "removeAccents": false,
      "initCommand": "1B40",
      "codepageCommand": "1B7410",
      "cutCommand": "0A1D564200",
      "notes": "Perfil ajustado conforme teste real: 48 caracteres, CP850, corte ativo, sem avanço e sem remover acentos.",
      "sendMode": "BASE64_BYTES"
    },
    "chatwoot": {
      "enabled": false,
      "baseUrl": "",
      "accountId": "",
      "inboxId": "",
      "token": "",
      "receiptMessageTemplate": "MSG-RECEBIMENTO",
      "returnMessageTemplate": "MSG-CODIGO-INVALIDO"
    },
    "printers": {
      "labelMode": "QZ_ZPL",
      "receiptMode": "QZ_ESCPOS",
      "label60": {
        "widthMm": 60,
        "heightMm": 40,
        "dpi": 203,
        "language": "ZPL",
        "supportedLanguages": [
          "ZPL",
          "TSPL"
        ]
      },
      "label100x150": {
        "widthMm": 100,
        "heightMm": 150,
        "dpi": 203,
        "language": "ZPL"
      },
      "receipt": {
        "widthMm": 79,
        "language": "BROWSER"
      },
      "qzEnabled": false
    },
    "labelTemplates": {
      "zpl60": "^XA\n^CI28\n^PW479\n^LL320\n^LH0,0\n^LS0\n^BY2,2,10\n^FX 1. TEXTOS LATERAIS\n^FO150,18^A0N,34,34^FDSPEEDBOX^FS\n^FO150,58^A0N,24,24^FDID: {{objeto_id}}^FS\n^FO150,86^A0N,21,21^FDTipo: {{tipo}}^FS\n^FO150,112^A0N,19,19^FDDoc: {{cliente_documento}}^FS\n^FX 2. QR CODE\n^FO20,20\n^BQN,3,3\n^FDQA,{{qr_payload}}^FS\n^FX 3. TEXTO DO CÓDIGO CENTRALIZADO ACIMA DO CÓDIGO DE BARRAS\n^FO0,158^A0N,22,22^FB479,1,0,C^FD{{codigo_formatado}}^FS\n^FX 4. CÓDIGO DE BARRAS CENTRALIZADO\n^FO60,185\n^BY2,2,70\n^BCN,70,N,N,N\n^FD{{barcode_payload}}^FS\n^FX 5. RODAPÉ\n^FO28,285^A0N,23,23^FDVol: {{volume}}^FS\n^FO250,285^A0N,23,23^FDRecebido: {{recebido_curto}}^FS\n^PQ1\n^XZ",
      "tspl60": "SIZE 60 mm,40 mm\nGAP 2 mm,0\nDIRECTION 0,0\nREFERENCE 0,0\nSPEED 5\nDENSITY 8\nCLS\nCODEPAGE UTF-8\n\nTEXT 150,18,\"0\",0,2,2,\"SPEEDBOX\"\nTEXT 150,58,\"0\",0,1,1,\"ID: {{objeto_id}}\"\nTEXT 150,86,\"0\",0,1,1,\"Tipo: {{tipo}}\"\nTEXT 150,112,\"0\",0,1,1,\"Doc: {{cliente_documento}}\"\n\nQRCODE 20,20,L,3,A,0,\"{{qr_payload}}\"\n\nTEXT 0,158,\"0\",0,1,1,\"{{codigo_formatado}}\"\nBARCODE 60,185,\"128\",70,0,0,2,2,\"{{barcode_payload}}\"\n\nTEXT 28,285,\"0\",0,1,1,\"Vol: {{volume}}\"\nTEXT 250,285,\"0\",0,1,1,\"Recebido: {{recebido_curto}}\"\n\nPRINT 1",
      "qrPayload": "S|I={{objeto_id}}|O={{oid}}|C={{codigo_cru}}|T={{tipo_1}}|V={{volume}}",
      "barcodePayload": "{{codigo_cru}}"
    },
    "messageTemplates": [
      {
        "id": "MSG-RECEBIMENTO",
        "name": "Comprovante de recebimento",
        "event": "recebimento",
        "active": true,
        "body": "{COMPROVANTE}"
      },
      {
        "id": "MSG-CODIGO-INVALIDO",
        "name": "Código inválido ou expirado",
        "event": "retorno",
        "active": true,
        "body": "Olá, tudo bem?\nNão conseguimos realizar a postagem do objeto {{codigo_formatado}}.\nMotivo: {{motivo}}.\nPor favor, envie um novo código ou retire o objeto na SpeedBox."
      },
      {
        "id": "MSG-AGUARDANDO-RETIRADA",
        "name": "Aguardando retirada",
        "event": "retirada",
        "active": true,
        "body": "Olá, tudo bem? Seu objeto {{codigo_formatado}} está disponível para retirada na {{empresa_nome}}. Atendimento: {{atendimento_id}}."
      }
    ],
    "destinations": [],
    "alerts": {
      "receivedNotExpeditedHours": 4,
      "expeditedNotPostedHours": 4,
      "returnedNoContactHours": 24,
      "waitingClientNoUpdateDays": 2,
      "readyForResendNotExpeditedHours": 4,
      "retentionDaysAfterReturn": 30
    },
    "manifest": {
      "headerTemplate": "{{right:Data: {{expedicao_data_hora}} -  Lote: {{expedicao_numero}} -  Itens: {{primeiro_item_pagina}} a {{ultimo_item_pagina}} - Pagina: {{pagina}} / {{total_paginas}}}}\n{{line:=}}\n{{center:MANIFESTO DE EXPEDIÇÃO}}\n{{line:=}}\nEmpresa: {{empresa_nome}} | CNPJ: {{empresa_cnpj}}\nDestino: {{destino_nome}} | CNPJ: {{destino_documento}} | Logística: {{destino_operador}}\nLote: {{expedicao_numero}} | Data/Hora: {{expedicao_data_hora}} | Operador: {{operador_nome}}\n{{line}}\n{{center:LISTA DE OBJETOS}}\n{{line}}",
      "bodyTemplate": "{{item}}. {{codigo_formatado}}",
      "itemTemplate": "{{item}}. {{codigo_formatado}}",
      "signatureTemplate": "{{line}}\nDeclaro que recebi fisicamente os {{total_objetos}} objetos listados neste manifesto.\n\nEntregue por: ______________________________________\n\nRecebido por: ______________________________________\n\nDocumento: _________________________________________\n\nData/Hora: {{expedicao_data}} as  ____:____\n\nAssinatura: ________________________________________",
      "footerTemplate": "{{line}}\n{{right:Data: {{expedicao_data_hora}} -  Lote: {{expedicao_numero}} -  Itens: {{primeiro_item_pagina}} a {{ultimo_item_pagina}} - Pagina: {{pagina}} / {{total_paginas}}}}",
      "columns": 4,
      "rowsPerPage": 56,
      "density": "compact",
      "repeatHeader": true,
      "repeatFooter": true,
      "signatureOnlyLastPage": true,
      "listMode": "structured",
      "showItemNumber": true,
      "numberWidth": "4ch",
      "helperWidth": 119,
      "pageSize": "A4",
      "orientation": "portrait",
      "fontSize": 10,
      "operationalTemplate": "Lote: {{expedicao_numero}}\nData/Hora: {{expedicao_data_hora}}\nGerado em: {{data_hora_geracao}}\nOperador: {{operador_nome}}\nTotal de objetos: {{total_objetos}}",
      "destinationTemplate": "Operador logístico: {{destino_operador}}\nUnidade: {{destino_nome}}\nContato: {{destino_contato}}\nTelefone: {{destino_telefone}}",
      "objectsTemplate": "OBJETOS\n{{#objetos}}\n{{indice}}. Atendimento {{atendimento_numero}} | Objeto {{objeto_id}} | Código {{codigo}}\n{{/objetos}}\n\nTotal de objetos: {{total_objetos}}"
    },
    "thermalProfiles": [
      {
        "id": "epson_tm_t20x_ii",
        "name": "Epson TM-T20X II",
        "charWidth": 48,
        "encoding": "CP850",
        "autoCut": true,
        "feedBeforeCut": 0,
        "feedAfterCut": 0,
        "removeAccents": false,
        "sendMode": "BASE64_BYTES",
        "initCommand": "1B40",
        "codepageCommand": "1B7410",
        "cutCommand": "0A1D564200",
        "notes": "Perfil testado: RAW bytes/base64, CP850, 48 caracteres, corte automático com avanço embutido no HEX, sem remover acentos."
      },
      {
        "id": "perto_printer_4051",
        "name": "PertoPrinter 4051",
        "charWidth": 48,
        "encoding": "CP850",
        "autoCut": true,
        "feedBeforeCut": 0,
        "feedAfterCut": 0,
        "removeAccents": false,
        "sendMode": "PLAIN_QZ_ENCODING",
        "initCommand": "1B40",
        "codepageCommand": "1B7410",
        "cutCommand": "1D5601",
        "notes": "Perfil testado: encoding do QZ, CP850, 48 caracteres, acentos preservados, corte automático ativo, sem avanço antes/depois."
      },
      {
        "id": "generic",
        "name": "Genérica ESC/POS",
        "charWidth": 48,
        "encoding": "CP850",
        "autoCut": true,
        "feedBeforeCut": 3,
        "feedAfterCut": 0,
        "removeAccents": true,
        "sendMode": "PLAIN_QZ_ENCODING",
        "initCommand": "1B40",
        "codepageCommand": "1B7410",
        "cutCommand": "1D5600",
        "notes": "Perfil genérico ESC/POS."
      }
    ],
    "trackingMonitor": {
      "enabled": false,
      "intervalSeconds": 5,
      "maxChecksPerCycle": 1,
      "noDataFirstRetryMinutes": 15,
      "noDataSecondRetryMinutes": 60,
      "noDataLaterRetryHours": 6,
      "errorRetryMinutes": 15,
      "requestTimeoutSeconds": 15,
      "dailyLimit": 2000,
      "checkMissingPostedAt": true,
      "checkPostedWithoutTime": true,
      "checkMissingSroStatus": true,
      "onlyCurrentTrackingCode": true
    },
    "receiptStart": 10099,
    "returnStart": 5
  },
  "entities": [],
  "returns": []
}