Volumes e emissão
Lista os volumes (pacotes) de um pedido e emite a pré-postagem de um volume nos Correios.
Listar volumes do pedido
Devolve os volumes do pedido que pertencem ao seller, cada um com a emissão atual e o histórico. Um pedido de outro seller, ou sem Correios, devolve lista vazia.
/api/v1/vendor/shipping/correios/orders/{orderId}/volumesSellerLista os volumes Correios de um pedido do seller
Parâmetros de caminho
orderIduuidobrigatórioId do pedido.
Exemplo de requisição: listar
bash
curl "$BASE_URL/api/v1/vendor/shipping/correios/orders/b4d2f0a8-6c1e-4b3d-9a7f-2e5c8d1b0a96/volumes" \
-H "Authorization: Bearer $TOKEN"Resposta: listar
200Volumes
json
{
"items": [
{
"id": "4e5d6c7b-8a9f-4e1d-b2c3-a4b5c6d7e8f9",
"order_id": "b4d2f0a8-6c1e-4b3d-9a7f-2e5c8d1b0a96",
"vendor_id": "5f1c2d3e-4a5b-4c6d-8e7f-9a0b1c2d3e4f",
"quote_snapshot_id": "0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
"shipping_method_id": "3a7d9e10-2b4c-4f6a-9c1d-5e8f7a6b4c21",
"service_code": "03298",
"acceptance_profile_id": "5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a",
"acceptance_profile_version": 3,
"package_index": 1,
"package_snapshot": {
"items": [],
"weight_grams": 1350,
"length_mm": 300,
"width_mm": 200,
"height_mm": 100,
"declared_value_cents": 18900,
"box_name": "Caixa M"
},
"state": "open",
"logistics_state": "pending",
"created_at": "2026-10-11T13:30:00Z",
"updated_at": "2026-10-11T14:00:05Z",
"current_posting": {
"id": "8f7e6d5c-4b3a-4291-a0b1-c2d3e4f5a6b7",
"volume_id": "4e5d6c7b-8a9f-4e1d-b2c3-a4b5c6d7e8f9",
"revision": 1,
"provider_preposting_id": "PR1234567890",
"tracking_code": "AA123456789BR",
"provider_state": "ACTIVE",
"lifecycle_state": "active",
"validity_expires_at": "2026-10-20T23:59:59Z",
"automatic_renewal_count": 0,
"create_attempts": 1,
"reconcile_attempts": 0,
"document_attempts": 1,
"manual_cancel_block": false,
"has_label": true,
"has_declaration": false,
"has_ar": false,
"created_at": "2026-10-11T14:00:00Z",
"updated_at": "2026-10-11T14:00:05Z",
"documents": [
{
"type": "label",
"available": true,
"downloads": []
}
],
"can_renew": false,
"can_cancel": true,
"can_download": true
},
"can_issue": false
}
]
}Campos da resposta
itemsarrayVolumes do pedido.
iduuidId do volume (pacote físico).
order_iduuidPedido do volume.
vendor_iduuidSeller dono.
quote_snapshot_iduuidCotação do checkout que originou o volume.
shipping_method_iduuidForma de envio escolhida.
service_codestringCódigo do serviço Correios contratado (ex.:
03298).package_indexintegerPosição do volume no pedido (1, 2, 3...).
package_snapshotobjectDados físicos do volume quando foi cotado:
weight_grams, length_mm, width_mm, height_mm, declared_value_cents (centavos), box_name e items. Use só para exibir.statestringEstado do volume.
logistics_statestringEstado logístico, atualizado pelo rastreio.
shipment_iduuidEnvio do pedido ligado ao volume, quando existe.
current_postingobjectA emissão atual (campos em Emissões). Ausente se nunca emitiu.
iduuidId da emissão (pré-postagem).
volume_iduuidVolume ao qual a emissão pertence.
revisionintegerNúmero da emissão no volume:
1 é a primeira; uma renovação cria a 2 e assim por diante.provider_preposting_idstringId da pré-postagem nos Correios. Ausente até criar.
tracking_codestringCódigo de rastreio do objeto (ex.:
AA123456789BR). Ausente até criar.provider_statestringEstado informado pelos Correios.
lifecycle_statestringcreatinguncertainactivepdf_pendingcanceledpostedexpiredreplacederrorEstado da emissão na plataforma:
creating, uncertain, active, pdf_pending, canceled, posted, expired, replaced ou error.validity_expires_atstringAté quando a pré-postagem vale (RFC 3339). Depois disso o objeto não pode mais ser postado sem renovar. Ausente quando desconhecido.
automatic_renewal_countintegerQuantas vezes a plataforma renovou sozinha.
create_attempts, reconcile_attempts, document_attemptsintegerContadores de tentativas.
next_attempt_atstringPróxima tentativa automática, quando há uma agendada.
manual_cancel_blockbooleantrue quando um cancelamento pede confirmação humana antes de qualquer reemissão.pending_type, pending_code, pending_message, recommended_actionstringPendência que exige atenção, em português, e a ação recomendada. Ausentes quando não há pendência.
has_label, has_declaration, has_arbooleanQuais documentos existem: etiqueta, declaração de conteúdo e aviso de recebimento.
label_downloaded_atstringÚltima vez que a etiqueta foi baixada.
replaced_by_iduuidEmissão que substituiu esta. Ausente se não foi substituída.
documentsarrayPor tipo (
label, declaration, ar): available e a lista downloads (quem baixou e quando).eventsarrayLinha do tempo da emissão. Aparece no detalhe do volume.
can_renew, can_cancel, can_downloadbooleanO que a interface pode oferecer agora para esta emissão.
created_at, updated_atstringCriação e última alteração, RFC 3339.
historyarrayEmissões anteriores do volume (renovadas ou canceladas).
can_issuebooleantrue quando faz sentido mostrar "Emitir": não há emissão viva e a anterior (se houve) falhou antes de chegar aos Correios.created_at, updated_atstringCriação e alteração, RFC 3339.
Erros: listar
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem cabeçalho Authorization, ou token inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O token não é de um usuário seller (por exemplo, é um token de administrador). | {"error":"insufficient permissions"} |
| 403 | O módulo correios-shipping está desligado na loja. | {"error":"module_disabled","module":"correios-shipping"} |
| 403 | O usuário não tem conta de seller. | {"error":"no vendor account associated with this user"} |
| 403 | O usuário não tem o privilégio necessário (qualquer privilégio de pedidos). | {"error":"insufficient vendor privileges","privilege_required_any":["..."]} |
| 503 | Falha ao consultar. | {"error":"failed to list Correios volumes","detail":"..."} |
Emitir a pré-postagem
Cria a pré-postagem do volume nos Correios usando as credenciais do seller e devolve a emissão com o código de rastreio. Só funciona se o pedido estiver num status que a loja configurou como "pode emitir" e o volume ainda não tiver uma emissão viva. O corpo é vazio.
/api/v1/vendor/shipping/correios/volumes/{volumeId}/prepostingSellerEmite a pré-postagem de um volume
Parâmetros de caminho
volumeIduuidobrigatórioId do volume.
Exemplo de requisição: emitir
bash
curl -X POST "$BASE_URL/api/v1/vendor/shipping/correios/volumes/4e5d6c7b-8a9f-4e1d-b2c3-a4b5c6d7e8f9/preposting" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}'Resposta: emitir
201Emissão criada
json
{
"id": "8f7e6d5c-4b3a-4291-a0b1-c2d3e4f5a6b7",
"volume_id": "4e5d6c7b-8a9f-4e1d-b2c3-a4b5c6d7e8f9",
"revision": 1,
"provider_preposting_id": "PR1234567890",
"tracking_code": "AA123456789BR",
"provider_state": "ACTIVE",
"lifecycle_state": "active",
"validity_expires_at": "2026-10-20T23:59:59Z",
"automatic_renewal_count": 0,
"create_attempts": 1,
"reconcile_attempts": 0,
"document_attempts": 1,
"manual_cancel_block": false,
"has_label": true,
"has_declaration": false,
"has_ar": false,
"created_at": "2026-10-11T14:00:00Z",
"updated_at": "2026-10-11T14:00:05Z",
"documents": [
{
"type": "label",
"available": true,
"downloads": []
}
],
"can_renew": false,
"can_cancel": true,
"can_download": true
}Campos da resposta
iduuidId da emissão (pré-postagem).
volume_iduuidVolume ao qual a emissão pertence.
revisionintegerNúmero da emissão no volume:
1 é a primeira; uma renovação cria a 2 e assim por diante.provider_preposting_idstringId da pré-postagem nos Correios. Ausente até criar.
tracking_codestringCódigo de rastreio do objeto (ex.:
AA123456789BR). Ausente até criar.provider_statestringEstado informado pelos Correios.
lifecycle_statestringcreatinguncertainactivepdf_pendingcanceledpostedexpiredreplacederrorEstado da emissão na plataforma:
creating, uncertain, active, pdf_pending, canceled, posted, expired, replaced ou error.validity_expires_atstringAté quando a pré-postagem vale (RFC 3339). Depois disso o objeto não pode mais ser postado sem renovar. Ausente quando desconhecido.
automatic_renewal_countintegerQuantas vezes a plataforma renovou sozinha.
create_attempts, reconcile_attempts, document_attemptsintegerContadores de tentativas.
next_attempt_atstringPróxima tentativa automática, quando há uma agendada.
manual_cancel_blockbooleantrue quando um cancelamento pede confirmação humana antes de qualquer reemissão.pending_type, pending_code, pending_message, recommended_actionstringPendência que exige atenção, em português, e a ação recomendada. Ausentes quando não há pendência.
has_label, has_declaration, has_arbooleanQuais documentos existem: etiqueta, declaração de conteúdo e aviso de recebimento.
label_downloaded_atstringÚltima vez que a etiqueta foi baixada.
replaced_by_iduuidEmissão que substituiu esta. Ausente se não foi substituída.
documentsarrayPor tipo (
label, declaration, ar): available e a lista downloads (quem baixou e quando).eventsarrayLinha do tempo da emissão. Aparece no detalhe do volume.
can_renew, can_cancel, can_downloadbooleanO que a interface pode oferecer agora para esta emissão.
created_at, updated_atstringCriação e última alteração, RFC 3339.
Erros: emitir
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 409 | Qualquer recusa: o volume não existe ou não é seu, o pedido não está num status de emissão, os dados do destinatário ou do pacote estão incompletos, o volume já tem emissão, ou os Correios recusaram. O detail explica em português. | {"error":"failed to create Correios preposting","detail":"O volume já possui uma emissão. Use Consultar ou Renovar conforme o estado."} |
| 401 | Sem cabeçalho Authorization, ou token inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O token não é de um usuário seller (por exemplo, é um token de administrador). | {"error":"insufficient permissions"} |
| 403 | O módulo correios-shipping está desligado na loja. | {"error":"module_disabled","module":"correios-shipping"} |
| 403 | O usuário não tem conta de seller. | {"error":"no vendor account associated with this user"} |
| 403 | O usuário não tem o privilégio necessário (vendor_orders, vendor_manage_orders, vendor_manage_fulfillments). | {"error":"insufficient vendor privileges","privilege_required_any":["..."]} |