Factuarea APIDevelopers
Afegit

Pausar i reprendre factures recurrents en bloc

Nova operació POST /v1/recurring_invoices/bulk-status: mou fins a 50 factures recurrents a active o paused amb èxit parcial, amb l'eina MCP bulk_change_recurring_invoice_status com a mirall. Reprendre una recurrència completada respon ara 422 recurring_invoice_completed_cannot_resume.

Pausar un grup de factures recurrents volia dir una crida per plantilla: POST /v1/recurring_invoices/{recurring_invoice}/pause per cada id, amb els teus propis reintents i el teu propi recompte d'errors a sobre. L'eliminació en bloc ja tenia POST /v1/recurring_invoices/bulk-delete; el canvi d'estat, no.

POST /v1/recurring_invoices/bulk-status tanca aquest buit amb el mateix contracte d'èxit parcial que fan servir les altres operacions d'estat en bloc.

L'operació

RutaPOST /v1/recurring_invoices/bulk-status
Scoperecurring_invoices:transition
Cosids (d'1 a 50 uuid sense repetir) i new_status (active o paused)
Resposta200 amb un BulkPartialSuccessResult
curl -X POST https://api.factuarea.com/v1/recurring_invoices/bulk-status \
  -H "Authorization: Bearer $FACTUAREA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 01928f10-7c0e-7c4a-9b7d-2f8a6e3c1d4b" \
  -d '{
    "ids": [
      "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a01",
      "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a02",
      "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8aff"
    ],
    "new_status": "paused"
  }'
{
  "data": {
    "total": 3,
    "successful": 2,
    "failed": 1,
    "failures": [
      {
        "id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8aff",
        "error_code": "recurring_invoice_already_paused",
        "error_message": "Esta factura recurrente ya está pausada."
      }
    ]
  }
}

Res no avorta el lot

paused pausa les recurrències actives i active reprèn les pausades. Cada id passa per la mateixa transició unitària —i per tant pels mateixos guards— que POST /v1/recurring_invoices/{recurring_invoice}/pause i /resume, així que un lot mai no aplica un canvi que la ruta d'una en una hauria rebutjat.

Els ids que no són elegibles tornen a failures[] amb el seu error_code mentre la resta del lot s'aplica:

error_codeQuan
recurring_invoice_not_foundId desconegut, o factura recurrent d'una altra empresa.
recurring_invoice_already_pausedJa està pausada i new_status és paused.
recurring_invoice_already_activeJa està activa i new_status és active.
recurring_invoice_cancelled_cannot_resumeRecurrència cancel·lada: no es reprèn mai.
recurring_invoice_completed_cannot_resumeOcurrències esgotades o data de fi passada.
business_rule_violationQualsevol altra regla de domini que bloquegi la transició, com el guard de lliurament automàtic.

Un cos amb més de 50 ids, amb ids repetits o amb un new_status fora de [active, paused] es rebutja sencer amb 422 invalid_param_value abans d'aplicar res.

Codi d'error nou: recurring_invoice_completed_cannot_resume

El 422 recurring_invoice_completed_cannot_resume anomena ara el cas que abans arribava com una violació de regla genèrica: una recurrència que ha esgotat les seves ocurrències o ha passat la data de fi no es reprèn ni s'activa. S'emet dins de failures[] a l'operació en bloc i com a status de la resposta a POST /v1/recurring_invoices/{recurring_invoice}/resume i /activate, els contractes dels quals declaren 422 a partir d'aquesta publicació. Crea una recurrència nova, o amplia el nombre d'ocurrències o la data de fi d'aquesta, abans d'activar-la.

MCP

bulk_change_recurring_invoice_status és el mirall de l'operació: scope recurring_invoices:transition, categoria write, fins a 50 ids i el mateix new_status. Retorna els mateixos comptadors i el mateix failures[], així que un assistent pot explicar què s'ha aplicat i què s'ha omès. Consulta el catàleg d'eines MCP.

bulk_delete_recurring_invoices i les operacions d'una sola plantilla no canvien.

Nous endpoints1

EndpointDescripció
POST/v1/recurring_invoices/bulk-statusCanviar en bloc l'estat de factures recurrents

Endpoints actualitzats2

EndpointDescripció
POST/v1/recurring_invoices/{recurring_invoice}/resumeReprendre factura recurrent
POST/v1/recurring_invoices/{recurring_invoice}/activateActivar factura recurrent

En aquesta pàgina

Et donem un cop de mà?Contactar amb suport