Endpoints de Quote
Os quotes representam propostas enviadas a organizações. Eles seguem um ciclo de vida desde rascunho até o cumprimento, com provisionamento automático de entitlements após o pagamento.
Caminho base: /wp-json/middag-account/v1/quotes
Endpoints
| Método | Endpoint | Auth | Escopo | Descrição |
|---|---|---|---|---|
| GET | /quotes | JWT + Org | quotes | Listar quotes |
| GET | /quotes/{id} | JWT + Org | quotes | Detalhes do quote |
| POST | /quotes/{id}/accept | JWT + Org | quotes | Aceitar quote |
| POST | /quotes/{id}/reject | JWT + Org | quotes | Rejeitar quote |
| GET | /quotes/{id}/payment | JWT + Org | quotes + finances | Status do pagamento |
GET /quotes
Listar quotes da organização atual.
Headers: X-Middag-Organization: {org_id}
Filtros de query:
| Parâmetro | Tipo | Valores |
|---|---|---|
status | string | draft, sent, viewed, accepted, paid, fulfilled, expired, rejected, cancelled |
Resposta (200):
{
"success": true,
"data": [
{
"id": 201,
"status": "sent",
"total": "5400.00",
"currency": "BRL",
"valid_until": "2026-05-15",
"organization_id": 42,
"line_items": [
{
"product_name": "Campus EAD - Annual",
"quantity": 1,
"unit_price": "5400.00",
"entitlement_class": "PLG"
}
],
"created_at": "2026-04-01T10:00:00Z"
}
],
"meta": {
"page": 1,
"per_page": 20,
"total": 1,
"pages": 1
}
}GET /quotes/:id
Detalhes completos do quote incluindo itens, observacoes e dados de pedido/entitlement vinculados.
Campos de resposta: id, status, total, subtotal, currency, valid_until, organization_id, company, line_items[], order_id, entitlement_ids[], notes, rejection_reason, created_at, updated_at.
POST /quotes/:id/accept
Aceitar um quote. Isso aciona a criação do pedido WooCommerce. O quote deve estar no status sent ou viewed.
Resposta (200):
{
"success": true,
"data": {
"quote_id": 201,
"status": "accepted",
"order_id": 502
},
"message": "Quote accepted"
}Retorna 409 CONFLICT se o quote esta expirado, rejeitado ou já aceito.
POST /quotes/:id/reject
Rejeitar um quote com motivo opcional. O quote deve estar no status sent ou viewed.
Request:
{
"reason": "Budget constraints for this quarter"
}Resposta (200):
{
"success": true,
"message": "Quote rejected"
}GET /quotes/:id/payment
Verificar o status de pagamento de um quote aceito. Requer os escopos quotes e finances.
Ciclo de Vida do Quote
draft -> sent -> viewed -> accepted -> paid -> fulfilled
| |
+-> expired +-> cancelled
|
+-> rejectedQuando um quote atinge o status paid, o hook middag/quote/paid e disparado e provisiona automaticamente entitlements com base nos itens.
Status
| Status | Descrição |
|---|---|
draft | Criado pelo admin, ainda não enviado ao cliente |
sent | Entregue ao cliente |
viewed | Cliente abriu o quote |
accepted | Cliente aceitou, pedido WC criado |
paid | Pagamento confirmado |
fulfilled | Entitlements provisionados (terminal) |
expired | Após data de validade sem aceite (terminal) |
rejected | Cliente rejeitou o quote (terminal) |
cancelled | Cancelado pelo admin (terminal) |
Relacionados
- Endpoints de Entitlement -- Entitlements criados a partir de quotes pagos
- Endpoints de Order -- Pedidos criados a partir de quotes aceitos
- Estados de Ciclo de Vida