> ## 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 corrida programada

> Antecipa para agora o disparo da corrida programada informada em `{id}`, com a mesma regra do disparo imediato da lista de corridas programadas do painel. 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 corrida na hora. Ele responde `202` e a corrida é criada no ciclo seguinte do agendador, em até 1 minuto. Consulte o resultado em `GET /corridas/programadas/{id}`: a programada passa para a situação `D` (disparada). Se o agendador não conseguir criar a corrida, 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.

A requisição não tem corpo. Se um corpo for enviado, ele precisa ser JSON válido e o conteúdo é ignorado.

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-corridas.json POST /corridas/programadas/{id}/despachar
openapi: 3.1.0
info:
  title: API de Integração
  description: API de Integração v2 - Corridas
  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:
  /corridas/programadas/{id}/despachar:
    post:
      summary: Despachar corrida programada
      description: >-
        Antecipa para agora o disparo da corrida programada informada em `{id}`,
        com a mesma regra do disparo imediato da lista de corridas programadas
        do painel. 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 corrida na hora. Ele responde `202` e a corrida é
        criada no ciclo seguinte do agendador, em até 1 minuto. Consulte o
        resultado em `GET /corridas/programadas/{id}`: a programada passa para a
        situação `D` (disparada). Se o agendador não conseguir criar a corrida,
        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.


        A requisição não tem corpo. Se um corpo for enviado, ele precisa ser
        JSON válido e o conteúdo é ignorado.


        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 corrida programada
          schema:
            type: integer
            example: 456
      responses:
        '202':
          description: Aceita. A corrida será criada no ciclo seguinte do agendador.
          content:
            application/json:
              example:
                success: true
                message: A corrida 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:


            - `0`: a programada foi agrupada automaticamente; a programada está
            em uso pelo processo de junção automática; o corpo, que é opcional e
            ignorado, foi enviado com JSON inválido.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespostaErro'
              examples:
                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/SemPermissao'
            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 entrega. 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. As mensagens usam o termo da
            central da Api-Key, "corrida" em central de corridas e "solicitação"
            em central de entregas.


            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 corrida.
                          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 corrida
        '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. O termo da mensagem segue
            a central da Api-Key, como no 409. 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 corrida
                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.
    SemPermissao:
      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/referencia/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.