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

# Order

> Pedido de uma empresa dentro de um checkout

## Campos

| Campo                | Tipo          | Descrição                                                |
| -------------------- | ------------- | -------------------------------------------------------- |
| `orderId`            | `UUID`        | Identificador único                                      |
| `checkoutId`         | `UUID`        | Referência ao checkout da compra                         |
| `customerId`         | `UUID`        | Referência ao cliente comprador                          |
| `organizationId`     | `UUID`        | Referência à organização da empresa                      |
| `companyId`          | `UUID`        | Referência à empresa responsável pelos tickets do pedido |
| `soldById`           | `UUID`        | Referência ao usuário responsável pela criação do pedido |
| `externalProvider`   | `String`      | Nome do provedor externo                                 |
| `externalProviderId` | `String`      | ID do pedido no provedor externo                         |
| `type`               | `OrderType`   | Origem da compra                                         |
| `code`               | `String`      | Código legível único do pedido                           |
| `amount`             | `Int`         | Valor total do pedido em centavos                        |
| `status`             | `OrderStatus` | Status do pedido (default `PENDING`)                     |
| `createdBy`          | `UUID?`       | Usuário que criou o registro, quando aplicável           |
| `createdAt`          | `DateTime`    | Data de criação                                          |
| `updatedBy`          | `UUID?`       | Usuário que fez a última atualização, quando aplicável   |
| `updatedAt`          | `DateTime`    | Data da última atualização                               |

## Relacionamentos

* Relaciona-se com [Checkout](/data-modelling/sales/checkout)
* Relaciona-se com [Customer](/data-modelling/identity/customer)
* Relaciona-se com [Organization](/data-modelling/tenant/organization)
* Relaciona-se com [Company](/data-modelling/tenant/company)
* Relaciona-se com [User](/data-modelling/identity/user) (como responsável pela criação)
* Relaciona-se com múltiplos [Ticket](/data-modelling/sales/ticket)
* Relaciona-se com [Payment](/data-modelling/billing/payment) (1:1, opcional)
* Relaciona-se com múltiplos [TripReview](/data-modelling/operations/trip-review)
* Relaciona-se com múltiplos [BenefitUsageHistory](/data-modelling/benefits/benefit-usage-history), quando benefício é aplicado ao pedido
* Relaciona-se com múltiplos [PromotionalUsageHistory](/data-modelling/promotion/promotional-usage-history), quando promoções são aplicadas ao pedido ou aos tickets
* Relaciona-se com múltiplos [CreditLedgerEntry](/data-modelling/credit-grant/credit-ledger-entry), quando créditos são usados no pedido

## Regras de Negócio

* Agrupa tickets de uma única empresa dentro de um checkout.
* Um checkout com tickets de múltiplas empresas gera um Order por empresa.
* Um Order pode receber uma [TripReview](/data-modelling/operations/trip-review) por Trip comprada.
* Um checkout pode ter múltiplos TripReviews porque pode gerar múltiplos Orders e Trips.
* `customerId` é obrigatório também em vendas POS.
* Na venda POS, o sistema resolve ou cria `User` + `Customer` antes de criar o Order.
* Quando a venda POS cria uma conta nova, o sistema emite um [Invite](/data-modelling/tenant/invite) `ACCOUNT_ACTIVATION` para o customer usar o app depois.
* O valor (`amount`) é armazenado em centavos — ex.: R\$ 150,00 = `15000`.
* O `amount` do Order é a soma dos tickets daquela empresa.
* Promoções e créditos só podem ser aplicados quando pertencem à mesma `companyId` do Order.
* O campo `code` é um identificador legível único para o pedido.

## Enums

### OrderType

| Valor    | Descrição                  |
| -------- | -------------------------- |
| `ONLINE` | Venda via canal digital    |
| `POS`    | Venda presencial ou guichê |

### OrderStatus

| Valor            | Descrição                                   |
| ---------------- | ------------------------------------------- |
| `PENDING`        | Pedido pendente de confirmação de pagamento |
| `PAID`           | Pagamento confirmado                        |
| `PAYMENT_FAILED` | Pagamento recusado                          |
| `CANCELED`       | Pedido cancelado                            |

## Example

```json theme={null}
{
  "orderId": "0197a813-0fb9-7d42-9c81-50c0f6d9ae5a",
  "checkoutId": "0197a812-b835-79c4-8f0b-0e3863eb6d34",
  "customerId": "0197a7f6-4d36-7c0a-a7cb-54fcb33a3148",
  "organizationId": "0197a801-1690-7590-b3cf-19599b9be3e4",
  "companyId": "0197a801-6a42-79aa-9e56-d3c85148c0fa",
  "soldById": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "externalProvider": "billing_interface",
  "externalProviderId": "ord_6e3d7a21",
  "type": "ONLINE",
  "code": "OAB-20260703-0001",
  "amount": 11400,
  "status": "PAID",
  "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "createdAt": "2026-07-03T16:00:00.000Z",
  "updatedBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "updatedAt": "2026-07-03T16:02:00.000Z"
}
```
