Venflow API
V1FacturasPor ID

Marcar una factura como incobrable

POST
/v1/invoices/{id}/mark_uncollectible
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 marcar 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

reason?string

Motivo por el que se da la factura por perdida, que queda en su historial. Máximo 500 caracteres

Lengthlength <= 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_uncollectible" \  -H "Idempotency-Key: string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "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 pagada POST

Registra que tu cliente pagó la factura por fuera de Venflow (por transferencia, en efectivo o en taquilla). No intenta cobrar: solo deja constancia del pago y cierra la factura. Solo es válido si la factura está `open` o `uncollectible`. Si ya está `paid` o `void`, o su estado cambió mientras tanto, responde con un error de precondición: consulta la factura antes de decidir. Una factura cuyo cobro quedó en revisión con el banco (`under_review: true`) también aparece como `open` y se puede marcar como pagada, pero ese débito puede que ya se haya hecho: confirma antes con tu cliente cómo pagó. `reference` es obligatoria: es la referencia del pago tal como aparece en el estado de cuenta, y queda guardada en la transacción y en el historial de la factura. 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.

Anular una factura POST

Deja la factura sin efecto: Venflow no la cobra y deja de contarla como deuda de tu cliente. 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á `paid`, `uncollectible` o `void`, o su estado cambió mientras tanto, responde con un error de precondición: consulta la factura antes de decidir. Anular una factura en revisión no cancela el cobro pendiente. El banco aún no ha confirmado si ese débito se realizó; si lo confirma después, el pago quedará asociado a una factura anulada. Por eso, sobre una factura en revisión, la llamada responde con un error de precondición y no aplica cambios, a menos que envíes `confirm_under_review: true`. Te recomendamos confirmarlo solo después de verificar con tu cliente o con tu banco que el cobro no se realizó. `reason` es obligatorio y queda en el historial de la factura. Al anularla se envía el webhook `INVOICE_UPDATE_EVENT` con `invoice.status` en `cancelled`. 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.