Venflow API
V1FacturasPor ID

Anular una factura

POST
/v1/invoices/{id}/mark_void
Api-Key<token>

Tu clave API privada (comienza con pvk_)

In: header

Organization<token>

Tu ID de organización

In: header

Path Parameters

idstring
Formatuuid

Header Parameters

Idempotency-Keystring

Clave de idempotencia (OBLIGATORIA). Repetir la llamada con la misma clave no vuelve a anular la factura y la devuelve como está en ese momento. La clave es única por organización; reutilizarla con otros datos devuelve un error que nombra el campo distinto

confirm_under_review?boolean

Obligatorio en true para anular una factura en revisión con el banco (under_review: true).

Confirma que sabes que el banco todavía puede confirmar su último cobro y que anular la factura no lo cancela. Sin él, anular una factura en revisión responde con un error de precondición. En una factura que no está en revisión no hace falta

reasonstring

Motivo por el que se anula la factura (OBLIGATORIO), que queda en su historial. Máximo 500 caracteres

Length1 <= length <= 500

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://api.venflow.app/v1/invoices/497f6eca-6276-4993-bfeb-53cbbbba6f08/mark_void" \  -H "Idempotency-Key: string" \  -H "Content-Type: application/json" \  -d '{    "reason": "string"  }'
{
  "amount_discount": 0.1,
  "amount_due": 0.1,
  "amount_paid": 0.1,
  "amount_remaining": 0.1,
  "amount_tax": 0,
  "amount_taxable": 0,
  "bank_reference": "string",
  "created": 0.1,
  "customer": "string",
  "customer_email": "string",
  "customer_name": "string",
  "due_date": 0,
  "exchange_rate": "string",
  "id": "string",
  "livemode": true,
  "metadata": {
    "property1": "string",
    "property2": "string"
  },
  "number": "string",
  "object": "invoice",
  "paid": true,
  "period_end": 0,
  "period_start": 0,
  "receipt_number": "string",
  "status": "draft",
  "subscription": "string",
  "subtotal": 0.1,
  "total": 0.1,
  "total_usd": 0,
  "under_review": true
}
{
  "code": "not_found",
  "details": {},
  "message": "string"
}
{
  "code": "not_found",
  "details": {},
  "message": "string"
}
{
  "code": "not_found",
  "details": {},
  "message": "string"
}
{
  "code": "not_found",
  "details": {},
  "message": "string"
}
{
  "code": "not_found",
  "details": {},
  "message": "string"
}
{
  "code": "not_found",
  "details": {},
  "message": "string"
}

Marcar una factura como incobrable POST

Da la factura por perdida: Venflow deja de intentar cobrarla. No cancela la suscripción: eso es una llamada aparte al API de suscripciones. Solo es válido si la factura está `open`, incluidas las que están en revisión con el banco (`under_review: true`). Si ya está `uncollectible`, `paid` o `void`, o su estado cambió mientras tanto, responde con un error de precondición: consulta la factura antes de decidir. Requiere el header `Idempotency-Key`. Repetir la llamada con la misma clave no vuelve a aplicar la acción: devuelve la factura como está en ese momento.

Reabrir el cobro de una factura en revisión POST

Devuelve a la cola de cobro de Venflow una factura en revisión con el banco (`under_review: true`): la factura vuelve a `open` y Venflow la retoma en su próxima corrida de cobros. Mientras el cobro anterior siga sin confirmar, Venflow no hace un segundo débito sobre la misma factura: primero vuelve a consultar ese cobro con el banco. Úsalo cuando sepas que ese cobro no se hizo. Si tu cliente ya te pagó por otra vía, usa `mark_paid`: reabrir el cobro puede terminar debitándole otra vez. Solo es válido si la factura está en revisión. Sobre cualquier otra, incluida una `open` que no está en revisión, responde con un error de precondición. `reason` es obligatorio y queda en el historial de la factura. Al reabrirla se envía el webhook `INVOICE_UPDATE_EVENT` con `invoice.status` en `open`. Requiere el header `Idempotency-Key`. Repetir la llamada con la misma clave no vuelve a aplicar la acción: devuelve la factura como está en ese momento.