> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.erp.olist.com/llms.txt
> Use this file to discover all available pages before exploring further.

# One Step Shipping — criar e despachar expedição em uma chamada

> Executa o fluxo completo de expedição em uma única chamada: cria a expedição, agrupa, conclui o despacho e retorna as URLs das etiquetas.

**⚠️ Este endpoint conclui o despacho logístico.** Na primeira chamada por pedido, dependendo da forma de envio, pode gerar compra de etiqueta ou postagem. Repetir a mesma chamada é seguro — o resultado será idempotente no ERP, mas custos externos dependem do provedor.

Suporta formas de envio ecommerce, gateway e logística própria. Para `TRANSPORTADORA` e `CUSTOMIZADO`, utilize o fluxo padrão: `POST /expedicao` → `POST /expedicao/{id}/concluir` → `GET /expedicao/{id}/etiquetas`.

Itens não processados dentro do orçamento de tempo retornam com código 39 e podem ser reenviados.



## OpenAPI

````yaml https://erp.olist.com/public-api/v3/swagger/swagger-mintlify.json post /expedicao/etiquetas
openapi: 3.0.0
info:
  title: Olist ERP API v3
  description: >-
    Documentação completa: <a href="https://api-docs.erp.olist.com"
    target="_blank">https://api-docs.erp.olist.com</a>
  version: '3.1'
servers:
  - url: https://api.tiny.com.br/public-api/v3
security: []
paths:
  /expedicao/etiquetas:
    post:
      tags:
        - Expedição
      summary: One Step Shipping — criar e despachar expedição em uma chamada
      description: >-
        Executa o fluxo completo de expedição em uma única chamada: cria a
        expedição, agrupa, conclui o despacho e retorna as URLs das etiquetas.


        **⚠️ Este endpoint conclui o despacho logístico.** Na primeira chamada
        por pedido, dependendo da forma de envio, pode gerar compra de etiqueta
        ou postagem. Repetir a mesma chamada é seguro — o resultado será
        idempotente no ERP, mas custos externos dependem do provedor.


        Suporta formas de envio ecommerce, gateway e logística própria. Para
        `TRANSPORTADORA` e `CUSTOMIZADO`, utilize o fluxo padrão: `POST
        /expedicao` → `POST /expedicao/{id}/concluir` → `GET
        /expedicao/{id}/etiquetas`.


        Itens não processados dentro do orçamento de tempo retornam com código
        39 e podem ser reenviados.
      operationId: OneStepShippingAction
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OneStepShippingRequestModel'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OneStepShippingResponseModel'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
        '503':
          description: Service Unavailable
      security:
        - bearerAuth: []
components:
  schemas:
    OneStepShippingRequestModel:
      title: ' '
      description: ' '
      properties:
        idsPedidos:
          description: IDs dos pedidos de venda. Limite de 10 itens no total.
          type: array
          items:
            type: integer
          maxItems: 10
      type: object
    OneStepShippingResponseModel:
      title: ' '
      description: ' '
      type: object
      allOf:
        - properties:
            itens:
              type: array
              items:
                $ref: '#/components/schemas/OneStepShippingItemModel'
          type: object
    ErrorDTO:
      title: ' '
      description: ' '
      properties:
        mensagem:
          description: Mensagem de erro geral
          type: string
          example: Ocorreram erros de validação
        detalhes:
          description: Detalhes específicos do erro
          type: array
          items:
            $ref: '#/components/schemas/ErrorDetailDTO'
          example:
            - campo: codigo
              mensagem: O campo código é obrigatório
          nullable: true
      type: object
    OneStepShippingItemModel:
      title: ' '
      description: ' '
      type: object
      allOf:
        - properties:
            idPedido:
              description: ID do pedido de venda processado
              type: integer
            idExpedicao:
              description: >-
                ID da expedição criada ou existente. Preenchido mesmo em caso de
                erro quando a expedição pôde ser identificada.
              type: integer
              nullable: true
            idAgrupamento:
              description: >-
                ID do agrupamento criado ou existente. Preenchido mesmo em caso
                de erro quando o agrupamento já existe.
              type: integer
              nullable: true
            urls:
              description: URLs das etiquetas. Vazio quando erro está presente.
              type: array
              items:
                type: string
            erro:
              description: Erro por item. Nulo quando o item foi processado com sucesso.
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/ErroItemModel'
          type: object
    ErrorDetailDTO:
      title: ' '
      description: ' '
      properties:
        campo:
          description: Campo que gerou o erro
          type: string
          example: codigo
        mensagem:
          description: Mensagem de erro específica do campo
          type: string
          example: O campo código é obrigatório
      type: object
    ErroItemModel:
      title: ' '
      description: ' '
      properties:
        codigo:
          description: Código do erro (CodigosErroApiTinyEnum)
          type: integer
        mensagem:
          description: Descrição do erro e ação sugerida ao parceiro
          type: string
      type: object
  securitySchemes:
    bearerAuth:
      type: http
      scheme: Bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.