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

# Despachar entrega programada

> Antecipa para agora o disparo da entrega programada informada em `{id}`, com a mesma regra do **Despachar agora** da Gestão de Pedidos. A data e a hora da programada passam a ser as do momento da chamada, no horário local da central, e a estimativa é recalculada.

O endpoint não cria a entrega na hora. Ele responde `202` e a entrega é criada no ciclo seguinte do agendador, em até 1 minuto. Consulte o resultado em `GET /entregas/programadas/{id}`: a programada passa para a situação `D` (disparada). Se o agendador não conseguir criar a entrega, por exemplo por falha na pré-autorização do pagamento, a programada fica na situação `X` (erro) e não é disparada de novo.

Só é possível despachar a programada que está aguardando o disparo (situação `A`). Programada agrupada automaticamente ou em uso pela junção automática é recusada.

Quando a empresa da entrega está em um período com entregadores dedicados e nenhum deles está livre, a entrega fica restrita aos dedicados. Envie `ignorar_periodo_dedicado` como `true` para que ela possa ir também para entregadores de fora do período.

O gestor de empresa só encontra as programadas da própria empresa.

Para acessar este endpoint, o usuário autenticado deve ter a permissão `API - Corrida/Entrega`.



## OpenAPI

````yaml pages/v2/openapi-entregas.json POST /entregas/programadas/{id}/despachar
openapi: 3.1.0
info:
  title: API de Integração
  description: API de Integração v2 - Entregas
  license:
    name: MIT
  version: 2.0.0
servers:
  - url: https://api.taximachine.com.br/api/v2/integracao
  - url: https://api-vendas.taximachine.com.br/api/v2/integracao
security:
  - basicAuth: []
    ApiKeyAuth: []
paths:
  /entregas/programadas/{id}/despachar:
    post:
      summary: Despachar entrega programada
      description: >-
        Antecipa para agora o disparo da entrega programada informada em `{id}`,
        com a mesma regra do **Despachar agora** da Gestão de Pedidos. A data e
        a hora da programada passam a ser as do momento da chamada, no horário
        local da central, e a estimativa é recalculada.


        O endpoint não cria a entrega na hora. Ele responde `202` e a entrega é
        criada no ciclo seguinte do agendador, em até 1 minuto. Consulte o
        resultado em `GET /entregas/programadas/{id}`: a programada passa para a
        situação `D` (disparada). Se o agendador não conseguir criar a entrega,
        por exemplo por falha na pré-autorização do pagamento, a programada fica
        na situação `X` (erro) e não é disparada de novo.


        Só é possível despachar a programada que está aguardando o disparo
        (situação `A`). Programada agrupada automaticamente ou em uso pela
        junção automática é recusada.


        Quando a empresa da entrega está em um período com entregadores
        dedicados e nenhum deles está livre, a entrega fica restrita aos
        dedicados. Envie `ignorar_periodo_dedicado` como `true` para que ela
        possa ir também para entregadores de fora do período.


        O gestor de empresa só encontra as programadas da própria empresa.


        Para acessar este endpoint, o usuário autenticado deve ter a permissão
        `API - Corrida/Entrega`.
      parameters:
        - name: id
          in: path
          required: true
          description: ID da entrega programada
          schema:
            type: integer
            example: 456
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                ignorar_periodo_dedicado:
                  type: boolean
                  default: false
                  description: >-
                    Permite que a entrega vá para entregadores de fora do
                    período dedicado da empresa quando nenhum entregador
                    dedicado está livre. Equivale a confirmar **Solicitar outros
                    entregadores** no painel. Sem período dedicado ativo, não
                    tem efeito.
                  example: false
            example:
              ignorar_periodo_dedicado: false
      responses:
        '202':
          description: Aceita. A entrega será criada no ciclo seguinte do agendador.
          content:
            application/json:
              example:
                success: true
                message: A entrega programada será disparada a seguir.
        '400':
          description: >-
            A requisição foi recusada na validação da v2 ou porque a programada
            está bloqueada pela junção automática.


            Outros `code` deste status:


            - `223`: `ignorar_periodo_dedicado` com valor que não é booleano.

            - `0`: a programada foi agrupada automaticamente; a programada está
            em uso pelo processo de junção automática; o corpo não é um JSON
            válido.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespostaErro'
              examples:
                flag_invalida:
                  summary: ignorar_periodo_dedicado com valor que não é booleano
                  value:
                    success: false
                    errors:
                      - code: 223
                        message: >-
                          'ignorar_periodo_dedicado': Deve ser um valor booleano
                          (true ou false).
                agrupada_automaticamente:
                  summary: Programada agrupada automaticamente
                  value:
                    success: false
                    errors:
                      - code: 0
                        message: >-
                          A solicitação que você tentou alterar foi agrupada
                          automaticamente e nenhuma alteração pode ser feita.
                em_juncao_automatica:
                  summary: Programada em uso pela junção automática
                  value:
                    success: false
                    errors:
                      - code: 0
                        message: >-
                          A solicitação que você tentou alterar está sendo
                          utilizada no processo de junção automática e será
                          liberada em instantes.
                chave_nao_informada:
                  $ref: '#/components/examples/ChaveNaoInformada'
                json_invalido:
                  $ref: '#/components/examples/JsonInvalido'
        '401':
          description: >-
            O login ou a senha do gestor não conferem, ou a `api-key` não foi
            aceita.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespostaErro'
              examples:
                gestor_nao_autenticado:
                  $ref: '#/components/examples/GestorNaoAutenticado'
                api_key_invalida:
                  $ref: '#/components/examples/ApiKeyInvalida'
        '403':
          description: >-
            O usuário autenticado não tem a permissão `API - Corrida/Entrega` no
            cargo da central nem no da empresa, ou a `api-key` não é
            reconhecida.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespostaErro'
              examples:
                sem_permissao:
                  $ref: '#/components/examples/SemPermissaoCode68'
            text/plain:
              schema:
                type: string
              examples:
                api_key_nao_reconhecida:
                  $ref: '#/components/examples/ApiKeyNaoReconhecida'
        '404':
          description: >-
            Programada não encontrada para quem chama: inexistente, de outra
            central, de outra empresa (gestor de empresa) ou de corrida. A
            resposta é sempre `code` 0.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespostaErro'
              examples:
                programada_nao_encontrada:
                  value:
                    success: false
                    errors:
                      - code: 0
                        message: Não foi possível encontrar a solicitação programada
        '409':
          description: >-
            Conflito com o estado da programada.


            Outros `code` deste status:


            - `0`: outro disparo da mesma programada está em andamento (bloqueio
            de até 10 segundos); a programada não está aguardando o disparo (já
            disparada, cancelada ou agrupada).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespostaErro'
              examples:
                disparo_em_andamento:
                  summary: Outro disparo da mesma programada em andamento
                  value:
                    success: false
                    errors:
                      - code: 0
                        message: >-
                          Já existe um disparo em andamento para essa
                          solicitação. Aguarde alguns segundos e tente
                          novamente.
                situacao_invalida:
                  summary: Programada que não está aguardando o disparo
                  value:
                    success: false
                    errors:
                      - code: 0
                        message: Não foi possível disparar a solicitação
        '429':
          $ref: '#/components/responses/ErroLimite429'
        '500':
          description: >-
            Falha ao gravar o despacho, e nada é alterado na programada. A
            mensagem é a mesma do 409 de programada que não está aguardando;
            diferencie os dois casos pelo status HTTP. Falhas inesperadas chegam
            com "Falha na operação".
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespostaErro'
              examples:
                falha_gravacao:
                  summary: Falha ao gravar o despacho
                  value:
                    success: false
                    errors:
                      - code: 0
                        message: Não foi possível disparar a solicitação
                falha_operacao:
                  $ref: '#/components/examples/FalhaOperacao'
components:
  schemas:
    RespostaErro:
      type: object
      description: Corpo das respostas de erro da API.
      required:
        - success
        - errors
      properties:
        success:
          type: boolean
          const: false
        errors:
          type: array
          description: >-
            Lista de erros. O formato usual de cada item é `{code, message}`.
            Algumas operações devolvem o item como `{field, error}`, como texto
            solto ou dentro de uma lista aninhada; a descrição e os exemplos de
            cada resposta indicam o formato.
          items:
            anyOf:
              - $ref: '#/components/schemas/ErroItem'
              - $ref: '#/components/schemas/ErroCampo'
              - type: string
              - type: array
                items:
                  anyOf:
                    - $ref: '#/components/schemas/ErroItem'
                    - type: string
    ErroItem:
      type: object
      description: Um erro da requisição.
      required:
        - message
      properties:
        code:
          type:
            - integer
            - string
          description: >-
            Código do erro. É numérico na maioria dos casos e texto (`B1`, `B4`,
            `B5` e `B6`) nos erros de chave e de usuário da v2. Trate o erro por
            este campo, não pela mensagem.
        message:
          type: string
          description: >-
            Descrição do erro em português. O texto pode trazer valores da
            requisição e variar conforme o tipo da central.
        field:
          type: string
          description: >-
            Campo da requisição que causou o erro. Só vem em alguns erros de
            validação.
    ErroCampo:
      type: object
      description: >-
        Erro de um campo do corpo, sem `code`. Algumas operações devolvem este
        formato.
      required:
        - field
        - error
      properties:
        field:
          type: string
          description: Campo da requisição que causou o erro.
        error:
          type: string
          description: Descrição do erro em português.
    RespostaLimiteExcedido:
      type: object
      description: Corpo da resposta `429`, sem a lista `errors`.
      required:
        - success
      properties:
        success:
          type: boolean
          const: false
  examples:
    ChaveNaoInformada:
      summary: Nenhuma chave de API enviada
      description: A requisição não trouxe o header `api-key`.
      value:
        success: false
        errors:
          - code: B1
            message: Chave da api não informada.
    JsonInvalido:
      summary: Corpo com JSON malformado
      description: O corpo da requisição não é um JSON válido.
      value:
        success: false
        errors:
          - code: 0
            message: JSON inválido
    GestorNaoAutenticado:
      summary: Login ou senha do usuário inválidos
      description: >-
        O endpoint exige usuário autenticado por Basic Auth, e o login ou a
        senha não conferem, ou o usuário não foi enviado.
      value:
        success: false
        errors:
          - code: B5
            message: Usuário e/ou senhas inválidos.
    ApiKeyInvalida:
      summary: api-key inexistente
      description: >-
        A `api-key` não está cadastrada. Normalmente uma chave não reconhecida
        recebe `403`; este `401` aparece só em situações excepcionais.
      value:
        success: false
        errors:
          - code: B4
            message: Você não está autorizado a acessar este recurso.
    SemPermissaoCode68:
      value:
        errors:
          - code: 68
            message: O usuário informado não tem permissão para realizar essa operação.
        success: false
    ApiKeyNaoReconhecida:
      summary: api-key não reconhecida
      description: >-
        A `api-key` enviada não é reconhecida, e a requisição é recusada antes
        de ser processada. A resposta vem em texto puro, sem o envelope JSON.
      value: '-'
    FalhaOperacao:
      summary: Falha inesperada
      description: Ocorreu uma falha não prevista ao processar a requisição.
      value:
        success: false
        errors:
          - code: 0
            message: Falha na operação
    LimiteExcedido:
      summary: Limite de requisições excedido
      description: >-
        O consumo da janela passou do limite de bloqueio do grupo de endpoints
        ou do recurso.
      value:
        success: false
  responses:
    ErroLimite429:
      description: >-
        O limite de requisições foi excedido. Espere os segundos do header
        `Retry-After` antes de repetir. Os limites estão em [Rate
        limit](/pages/v2/entregas/rate-limit).
      headers:
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
        X-RateLimit-Limit:
          $ref: '#/components/headers/XRateLimitLimit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/XRateLimitRemaining'
        X-Total-Period:
          $ref: '#/components/headers/XTotalPeriod'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RespostaLimiteExcedido'
          examples:
            limite_excedido:
              $ref: '#/components/examples/LimiteExcedido'
  headers:
    RetryAfter:
      description: Segundos a esperar antes de repetir a requisição.
      schema:
        type: integer
    XRateLimitLimit:
      description: Limite efetivo do grupo de endpoints na janela.
      schema:
        type: integer
    XRateLimitRemaining:
      description: >-
        Requisições ainda disponíveis na janela atual. Vale `0` na resposta
        `429`.
      schema:
        type: integer
    XTotalPeriod:
      description: Duração da janela em segundos.
      schema:
        type: integer
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api-key
      description: Obrigatório. Sua chave API.

````

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