Tesorería

Registrar un pago entrante o saliente

Registra un pago en una cuenta de tesorería.

POST
/api/v1/treasury/payments

Ejemplos de petición

curl https://app.filmo.io/api/v1/treasury/payments \
  --request POST \
  --header "Authorization: Bearer $FILMO_API_KEY" \
  --header "Idempotency-Key: $(uuidgen 2>/dev/null || cat /proc/sys/kernel/random/uuid)" \
  --header 'Content-Type: application/json' \
  --data '{
  "direction": "in",
  "amount": "1815.50",
  "currency": "EUR",
  "date": "2026-09-04T12:00:00+02:00",
  "paymentMethodId": "pmt_transferencia",
  "treasuryAccountId": "tac_principal",
  "contactId": "cont_00118",
  "linkedDocumentType": "invoice",
  "linkedDocumentId": "inv_02291",
  "reference": "Transf. 4471-A"
}'
{
  "data": {
    "id": "payment_9f3a2b",
    "direction": "Example direction",
    "amount": "120.00",
    "currency": "EUR",
    "date": "2026-09-01T08:00:00.000Z",
    "type": "Example type",
    "treasuryAccountId": "treasury_account_9f3a2b",
    "contactId": "contact_9f3a2b",
    "reference": "2026-0001",
    "linkedDocuments": [
      {
        "type": "invoice",
        "id": "linked_document_9f3a2b",
        "amount": "120.00"
      }
    ],
    "createdAt": "2026-09-01T08:00:00.000Z",
    "updatedAt": "2026-09-01T08:00:00.000Z"
  }
}

Generado a partir del esquema

Envía tu propia Idempotency-Key

Un reintento sin la misma clave duplica el efecto. Envía tu propia Idempotency-Key y sigue la tabla de reintentos.

El documento al que está vinculado va como el PAR linkedDocumentType + linkedDocumentId, nunca como un campo por tipo: enviar dos identificadores a la vez dejaría sin saber a cuál se vinculó. type: "deposit" marca una fianza cobrada a un cliente: exige direction: in (400 en direction en caso contrario) y no se descuenta del total del pedido. La fecha puede ser cualquier momento de hoy, pero no un día posterior, en la zona horaria de la cuenta (400 en date). Envía Idempotency-Key: un reintento sin ella registra el pago dos veces. Devuelve el pago completo, la misma proyección que su GET.

Autorizaciones

Clave de API como Bearer, con el permiso de abajo. treasury:write

Cabeceras

Idempotency-Keystring

Identificador único de la petición, elegido por el cliente (sirve un UUID). Entre 1 y 255 caracteres: una cabecera vacía se rechaza con 400 validation_error, porque el cliente se creería protegido. Repetir la misma clave con el MISMO cuerpo en 24 h devuelve la respuesta guardada sin volver a ejecutar, con la cabecera Idempotent-Replay: true. Con un cuerpo DISTINTO devuelve 422. Es la forma segura de reintentar tras un tiempo de espera de red.

Límites: longitud mín. 1, longitud máx. 255

Ejemplo:"9f1c2f4e-3a5b-4f6d-8e7a-0b1c2d3e4f5a"

If-Matchstring

Bloqueo optimista: el ETag que leíste del recurso (o *). Si el recurso ha cambiado desde entonces, la escritura se rechaza con 412 precondition_failed antes de hacer nada; léelo de nuevo y reintenta. Sin la cabecera, la escritura siempre se realiza.

Ejemplo:"\"3sT3d9pBvZq4h2N0w8x1YkLmQ7c\""

Cuerpo

application/json

Esquema del cuerpo: PaymentCreateBody

directionstringObligatorio

in para un cobro de un cliente, out para un pago a un proveedor.

Opciones disponibles: in, out

amountstringObligatorio

Importe como cadena decimal, mayor que cero.

Límites: patrón ^\d{1,13}(\.\d{1,2})?$

currencystring

Moneda en ISO 4217. Por defecto, EUR.

Límites: longitud mín. 3, longitud máx. 3

datestring<date-time>Obligatorio

Fecha del pago, en ISO 8601 con desplazamiento. Se acepta cualquier hora de hoy; un día posterior, en la zona horaria de la cuenta, se rechaza con 400.

paymentMethodIdstringObligatorio

Método de pago configurado en la cuenta.

Límites: longitud mín. 1

treasuryAccountIdstringObligatorio

Cuenta de tesorería por la que entra o sale el dinero.

Límites: longitud mín. 1

typestring

"deposit" marca una fianza cobrada a un cliente: exige direction=in (400 en caso contrario) y no se descuenta del total del pedido.

Opciones disponibles: normal, deposit

contactIdstring

Cliente o proveedor del pago.

linkedDocumentTypestring

Tipo del documento al que está vinculado el pago. Va junto con linkedDocumentId.

Opciones disponibles: invoice, creditNote, supplierInvoice, quote, proforma, salesReceipt, simpleCreditNote, purchaseOrder

linkedDocumentIdstring

Documento al que está vinculado el pago. Va junto con linkedDocumentType.

referencestring

Referencia externa del pago.

Límites: longitud máx. 200

notesstring

Notas. Se guardan en Filmo y NO se devuelven.

Límites: longitud máx. 2000

Respuesta

application/json

Respuesta correcta.

Esquema de la respuesta: PaymentDto

Sobre: PaymentResponse. meta.warnings solo aparece cuando la operación está obsoleta.

Cabeceras: X-Request-Id · RateLimit-Limit · RateLimit-Remaining · RateLimit-Reset · ETag · Idempotent-Replay

dataobject

Un cobro o un pago registrado en tesorería.

Mostrar atributos hijos
data.idstring

Identificador del pago.

data.directionstring

in cuando entra dinero (un cobro) y out cuando sale (un pago).

data.amountstring

Importe del pago como cadena decimal, en la moneda indicada.

Límites: patrón ^-?\d+\.\d{2}$

data.currencystring

Moneda del pago, como código ISO 4217.

data.datestring<date-time>

Fecha del pago en ISO 8601 UTC.

data.typestring

normal, o deposit cuando es un pago anticipado.

data.treasuryAccountIdstring

Cuenta de tesorería por la que pasa el pago.

data.contactIdstring | null

Cliente o proveedor del pago; null si no se ha declarado.

data.referencestring | null

Referencia externa del pago; null si no tiene.

data.linkedDocumentsobject[]

Documentos a los que está asignado el pago; vacío si no está vinculado a ninguno.

Mostrar atributos hijos
data.linkedDocuments.typestring

Tipo del documento vinculado.

Opciones disponibles: invoice, creditNote, supplierInvoice, quote, proforma, salesReceipt, simpleCreditNote, purchaseOrder

data.linkedDocuments.idstring

Identificador del documento vinculado.

data.linkedDocuments.amountstring

Importe de este pago asignado al documento, como cadena decimal.

Límites: patrón ^-?\d+\.\d{2}$

data.createdAtstring<date-time>

Fecha de creación en ISO 8601 UTC.

data.updatedAtstring<date-time>

Fecha de la última modificación en ISO 8601 UTC.

metaobject

Información adicional sobre la respuesta.

Mostrar atributos hijos
meta.warningsobject[]

Avisos del ciclo de vida; solo aparecen cuando la operación está obsoleta.

Mostrar atributos hijos
meta.warnings.codestring

Código de aviso estable.

Opciones disponibles: deprecated

meta.warnings.messagestring

Para personas: qué está obsoleto, hasta cuándo y qué usar.

meta.warnings.sunsetstring

Día (YYYY-MM-DD) en que la operación deja de estar disponible.

meta.warnings.replacementstring | null

operationId de la operación que hay que usar en su lugar, o null si no hay ninguna.

Errores

EstadoCódigosSignificado
400validation_errorConsulta o cuerpo mal formados. errors[] enumera cada campo erróneo con su código estable.
404not_foundNo existe o queda fuera del alcance de la clave de API.
409conflictEl estado actual del recurso impide la operación, ya hay en curso una petición con esa Idempotency-Key, u otra escritura condicional (If-Match) retuvo el recurso durante más de cinco segundos. errors[0].code indica cuál: in_progress y lock_timeout se resuelven reintentando; invalid_state no, porque el estado del recurso prohíbe la operación.
412precondition_failedLa etiqueta de entidad If-Match no coincide con la representación actual. Vuelve a leer el recurso y reintenta.
422idempotency_key_reusedLa misma clave se usó antes con un cuerpo distinto. Cambia la clave.

401, 403, 429, 500 los puede devolver cualquier operación. Errores

Obsolescencia

Esta operación no está obsoleta. Las obsolescencias se anuncian con la cabecera Deprecation y una fecha de retirada. Política de versiones

  • Finanzas

    Pago

    Un cobro o un pago registrado en tesorería.

¿Te ha resultado útil esta página?