Compras programadas
Lista, antecipa a agenda, detalha e cancela as compras programadas dos produtos do seller.
Mesma lógica das assinaturas, para o outro tipo de recorrência. O módulo é o mesmo (recurring-payments) e o seller também só vê e cancela.
Listar compras programadas
Uma compra programada repete um pedido a cada ciclo, com desconto, sem cartão salvo: a plataforma gera um pedido novo na data. Lista as compras programadas dos produtos do seller.
/api/v1/vendor/recurring/scheduledSellerCompras programadas dos produtos do seller
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (veja Tokens).Parâmetros de consulta
statusstringactivepausedcancelledqstringproduct_iduuidcustomer_iduuidnext_fromstringYYYY-MM-DD.next_tostringYYYY-MM-DD.overdueboolean1 ou true: só ativas cuja próxima data já passou.sortstringnextnext ordena pela próxima data; sem isso, mais novas primeiro.pageintegerpadrão: 1per_pageintegerpadrão: 25Exemplo de requisição
curl "$BASE_URL/api/v1/vendor/recurring/scheduled?status=active&sort=next" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"items": [
{
"id": "sch:8f0d5c32-2b8e-4b27-9a0d-4c4f5a9a7e22",
"kind": "scheduled",
"status": "active",
"customer_name": "Maria Souza",
"customer_email": "maria.souza@example.com",
"product_name": "Café em grãos 1 kg",
"frequency": "mensal",
"cycle_days": 30,
"quantity": 1,
"price_cents": 4990,
"price_formatted": "R$ 49,90",
"next_date": "2026-11-05",
"last_date": "2026-10-05",
"retry_count": 0,
"created_at": "2026-08-05T12:00:00Z",
"actions": {
"cancel": true,
"pause": false,
"resume": false,
"skip": false,
"retry": false
}
}
],
"pagination": {
"page": 1,
"per_page": 25,
"total": 1,
"total_pages": 1
}
}Campos da resposta
itemsobject[]Compras programadas da página (mesmos campos das assinaturas).
idstringsub:<uuid> (assinatura), sch:<uuid> ou app:<número> (compra programada). Use-a como está nas rotas de detalhe e cancelamento.kindstringsubscriptionscheduledstatusstringactive, paused, past_due, suspended, cancelled; compra programada active, paused, cancelled.customer_namestringcustomer_emailstringproduct_namestringfrequencystringsemanal, quinzenal, mensal...).cycle_daysintegerquantityintegerprice_centsintegerprice_formattedstringR$ 49,90.next_datestringYYYY-MM-DD. Omitido se não houver.last_datestringYYYY-MM-DD. Omitido se não houver.card_last_fourstringcancellation_reasonstringretry_countintegerlast_attempt_atstringsuspended_atstringcreated_atstringactionsobjectQuais botões fazem sentido. No escopo do seller só cancel pode ser true; pause, resume, skip e retry vêm sempre false.
cancelbooleanpausebooleanresumebooleanskipbooleanretrybooleanpaginationobjectpage, per_page, total, total_pages.Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Token ausente, inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador), ou o usuário não está vinculado a nenhum seller. | {"error":"insufficient permissions"} |
| 403 | O módulo recurring-payments está desligado nesta loja. | {"error":"module_disabled","module":"recurring-payments"} |
| 403 | O usuário não está vinculado a nenhum seller. | {"error":"no vendor account"} |
Próximas entregas
Lista, da mais próxima para a mais distante, as compras programadas ativas com data de entrega entre hoje e daqui a days dias. Máximo de 100 itens, sem paginação. Use para planejar estoque.
/api/v1/vendor/recurring/scheduled/upcomingSellerCompras programadas que vencem nos próximos dias
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (veja Tokens).Parâmetros de consulta
daysintegerpadrão: 7Exemplo de requisição
curl "$BASE_URL/api/v1/vendor/recurring/scheduled/upcoming?days=14" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"items": [
{
"id": "sch:8f0d5c32-2b8e-4b27-9a0d-4c4f5a9a7e22",
"kind": "scheduled",
"status": "active",
"customer_name": "Maria Souza",
"customer_email": "maria.souza@example.com",
"product_name": "Café em grãos 1 kg",
"frequency": "mensal",
"cycle_days": 30,
"quantity": 1,
"price_cents": 4990,
"price_formatted": "R$ 49,90",
"next_date": "2026-11-05",
"last_date": "2026-10-05",
"retry_count": 0,
"created_at": "2026-08-05T12:00:00Z",
"actions": {
"cancel": true,
"pause": false,
"resume": false,
"skip": false,
"retry": false
}
}
]
}Campos da resposta
itemsobject[]Compras programadas, mesmos campos da listagem.
idstringsub:<uuid> (assinatura), sch:<uuid> ou app:<número> (compra programada). Use-a como está nas rotas de detalhe e cancelamento.kindstringsubscriptionscheduledstatusstringactive, paused, past_due, suspended, cancelled; compra programada active, paused, cancelled.customer_namestringcustomer_emailstringproduct_namestringfrequencystringsemanal, quinzenal, mensal...).cycle_daysintegerquantityintegerprice_centsintegerprice_formattedstringR$ 49,90.next_datestringYYYY-MM-DD. Omitido se não houver.last_datestringYYYY-MM-DD. Omitido se não houver.card_last_fourstringcancellation_reasonstringretry_countintegerlast_attempt_atstringsuspended_atstringcreated_atstringactionsobjectQuais botões fazem sentido. No escopo do seller só cancel pode ser true; pause, resume, skip e retry vêm sempre false.
cancelbooleanpausebooleanresumebooleanskipbooleanretrybooleanErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Token ausente, inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador), ou o usuário não está vinculado a nenhum seller. | {"error":"insufficient permissions"} |
| 403 | O módulo recurring-payments está desligado nesta loja. | {"error":"module_disabled","module":"recurring-payments"} |
| 403 | O usuário não está vinculado a nenhum seller. | {"error":"no vendor account"} |
Ver compra programada
Devolve a compra programada com as tentativas de cobrança (incluindo o pedido gerado em cada ciclo, quando houver) e a linha do tempo.
/api/v1/vendor/recurring/scheduled/{id}SellerCompra programada com cobranças e linha do tempo
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (veja Tokens).Parâmetros de caminho
idstringobrigatóriosch:<uuid> ou app:<número> obtida na listagem.Exemplo de requisição
curl "$BASE_URL/api/v1/vendor/recurring/scheduled/sch:8f0d5c32-2b8e-4b27-9a0d-4c4f5a9a7e22" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"id": "sch:8f0d5c32-2b8e-4b27-9a0d-4c4f5a9a7e22",
"kind": "scheduled",
"status": "active",
"customer_name": "Maria Souza",
"customer_email": "maria.souza@example.com",
"product_name": "Café em grãos 1 kg",
"frequency": "mensal",
"cycle_days": 30,
"quantity": 1,
"price_cents": 4990,
"price_formatted": "R$ 49,90",
"next_date": "2026-11-05",
"last_date": "2026-10-05",
"retry_count": 0,
"created_at": "2026-08-05T12:00:00Z",
"actions": {
"cancel": true,
"pause": false,
"resume": false,
"skip": false,
"retry": false
},
"charges": [],
"log": [
{
"at": "2026-08-05T12:00:00Z",
"event": "created"
}
]
}Campos da resposta
idstringsub:<uuid> (assinatura), sch:<uuid> ou app:<número> (compra programada). Use-a como está nas rotas de detalhe e cancelamento.kindstringsubscriptionscheduledstatusstringactive, paused, past_due, suspended, cancelled; compra programada active, paused, cancelled.customer_namestringcustomer_emailstringproduct_namestringfrequencystringsemanal, quinzenal, mensal...).cycle_daysintegerquantityintegerprice_centsintegerprice_formattedstringR$ 49,90.next_datestringYYYY-MM-DD. Omitido se não houver.last_datestringYYYY-MM-DD. Omitido se não houver.card_last_fourstringcancellation_reasonstringretry_countintegerlast_attempt_atstringsuspended_atstringcreated_atstringactionsobjectQuais botões fazem sentido. No escopo do seller só cancel pode ser true; pause, resume, skip e retry vêm sempre false.
cancelbooleanpausebooleanresumebooleanskipbooleanretrybooleanchargesobject[]Tentativas de cobrança do registro.
idstringrefstringsub:..., sch:..., app:...).kindstringcustomer_namestringproduct_namestringamount_centsintegeramount_formattedstringstatusstringpaid, failed, pending (compras programadas também usam captured).billing_datestringYYYY-MM-DD.attemptintegerorder_numberstringorder_iduuidcreated_atstringcan_retrybooleanfalse para o seller (repetir cobrança é da loja).logobject[]at, event, detail.termsobjectname, version, accepted_at, ip_address. Omitido se não há.Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | Referência malformada. | {"error":"invalid reference"} |
| 404 | Registro inexistente, de outro seller ou de outro tipo (um sub: na rota de compras programadas). | {"error":"not found"} |
| 401 | Token ausente, inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador), ou o usuário não está vinculado a nenhum seller. | {"error":"insufficient permissions"} |
| 403 | O módulo recurring-payments está desligado nesta loja. | {"error":"module_disabled","module":"recurring-payments"} |
| 403 | O usuário não está vinculado a nenhum seller. | {"error":"no vendor account"} |
Cancelar compra programada
Cancela a compra programada. Pedidos já gerados não são afetados. Como nas assinaturas, é a única ação do seller.
/api/v1/vendor/recurring/scheduled/{id}/cancelSellerCancelar uma compra programada
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (veja Tokens).Content-Typestringobrigatórioapplication/json.Parâmetros de caminho
idstringobrigatóriosch:<uuid> ou app:<número> obtida na listagem.Corpo da requisição
reasonstringExemplo de requisição
curl -X POST "$BASE_URL/api/v1/vendor/recurring/scheduled/sch:8f0d5c32-2b8e-4b27-9a0d-4c4f5a9a7e22/cancel" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"reason": "Produto descontinuado."
}'Resposta
{
"id": "sch:8f0d5c32-2b8e-4b27-9a0d-4c4f5a9a7e22",
"kind": "scheduled",
"status": "cancelled",
"customer_name": "Maria Souza",
"customer_email": "maria.souza@example.com",
"product_name": "Café em grãos 1 kg",
"frequency": "mensal",
"cycle_days": 30,
"quantity": 1,
"price_cents": 4990,
"price_formatted": "R$ 49,90",
"next_date": "2026-11-05",
"last_date": "2026-10-05",
"retry_count": 0,
"created_at": "2026-08-05T12:00:00Z",
"actions": {
"cancel": true,
"pause": false,
"resume": false,
"skip": false,
"retry": false
},
"charges": [],
"log": []
}Campos da resposta
idstringsub:<uuid> (assinatura), sch:<uuid> ou app:<número> (compra programada). Use-a como está nas rotas de detalhe e cancelamento.kindstringsubscriptionscheduledstatusstringactive, paused, past_due, suspended, cancelled; compra programada active, paused, cancelled.customer_namestringcustomer_emailstringproduct_namestringfrequencystringsemanal, quinzenal, mensal...).cycle_daysintegerquantityintegerprice_centsintegerprice_formattedstringR$ 49,90.next_datestringYYYY-MM-DD. Omitido se não houver.last_datestringYYYY-MM-DD. Omitido se não houver.card_last_fourstringcancellation_reasonstringretry_countintegerlast_attempt_atstringsuspended_atstringcreated_atstringactionsobjectQuais botões fazem sentido. No escopo do seller só cancel pode ser true; pause, resume, skip e retry vêm sempre false.
cancelbooleanpausebooleanresumebooleanskipbooleanretrybooleanchargesobject[]Tentativas de cobrança do registro.
idstringrefstringsub:..., sch:..., app:...).kindstringcustomer_namestringproduct_namestringamount_centsintegeramount_formattedstringstatusstringpaid, failed, pending (compras programadas também usam captured).billing_datestringYYYY-MM-DD.attemptintegerorder_numberstringorder_iduuidcreated_atstringcan_retrybooleanfalse para o seller (repetir cobrança é da loja).logobject[]at, event, detail.termsobjectname, version, accepted_at, ip_address. Omitido se não há.Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | Referência malformada. | {"error":"invalid reference"} |
| 404 | Registro inexistente, de outro seller ou de outro tipo (um sub: na rota de compras programadas). | {"error":"not found"} |
| 409 | Já está cancelada. | {"error":"action not allowed in the current status"} |
| 401 | Token ausente, inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador), ou o usuário não está vinculado a nenhum seller. | {"error":"insufficient permissions"} |
| 403 | O módulo recurring-payments está desligado nesta loja. | {"error":"module_disabled","module":"recurring-payments"} |
| 403 | O usuário não está vinculado a nenhum seller. | {"error":"no vendor account"} |