SIFENDE
Referencia APIModelos de Datos

Condición de Pago

Cómo informar el pago de una Factura Electrónica — un medio simple, varios medios de pago o un crédito con plazo o cuotas.

Una Factura Electrónica describe cómo paga el cliente con una de dos formas excluyentes:

  • condicionPago: un solo objeto para el caso simple, un medio de contado o un crédito con una entrega inicial opcional.
  • pagos + credito: la forma completa. Admite varios medios de pago, datos de tarjeta o cheque y medios OTRO con descripción propia.

No combines ambas formas: una solicitud con condicionPago y pagos o credito recibe 400 validation-error.

Forma completa: pagos y credito

CampoTipoRequeridoDescripción
pagosarraySí en CONTADO; opcional en CREDITOMedios de pago en orden, hasta 999. En CONTADO cubren el total; en CREDITO describen la entrega inicial
creditoobjectSí en CREDITO sin condicionPagoCondiciones del crédito; no se informa en CONTADO. Si una operación a crédito no envía condicionPago ni credito, la respuesta es 400 en credito

Cada pago

CampoTipoRequeridoDescripción
tipoPagoenumSíMedio de pago — ver tipoPago
descripcionTipoPagostringSí con OTRODescripción propia del medio, de 4 a 30 caracteres. Sólo con tipoPago = OTRO
montoPagonumberSíImporte en la moneda del pago, mayor que cero, hasta 15 enteros y 4 decimales
monedaPagoenumSíMoneda del pago
tipoCambionumberCondicionalObligatorio cuando monedaPago no es PYG; no se informa en PYG
tarjetaobjectSí con tarjetaObligatorio y exclusivo de TARJETA_DE_CREDITO y TARJETA_DE_DEBITO
chequeobjectSí con cheque{ numeroCheque, bancoCheque }, obligatorio y exclusivo de CHEQUE. numeroCheque admite hasta 8 dígitos; bancoCheque, de 4 a 20 caracteres no vacíos

PAGO_BANCARIO sólo corresponde a una operación bancaria: informalo con indicadorPresencia: "OPERACION_BANCARIA".

tarjeta

CampoTipoRequeridoDescripción
tipoTarjetaenumSíDenominación — ver tipoTarjeta
descripcionTipoTarjetastringSí con OTRODe 4 a 20 caracteres. Sólo con tipoTarjeta = OTRO
formaProcesamientoPagoenumSíPOS, PAGO_ELECTRONICO u OTRO
razonSocialProcesadorastringNoDe 4 a 60 caracteres
rucProcesadorastringNoRUC sin DV; se informa junto con digitoVerificadorProcesadora
digitoVerificadorProcesadorastringNoUn dígito, que debe corresponder al RUC
codigoAutorizacionstringNoEntero positivo de 6 a 10 dígitos, sin ceros a la izquierda (desde 100000)
nombreTitularstringNoDe 4 a 30 caracteres
ultimosCuatroDigitosstringNoCuatro dígitos distintos de 0000

Contado con varios medios

La suma de los pagos debe ser igual al total a pagar de la factura: no se admite un saldo pendiente en una operación al contado. Un saldo a pagar después corresponde a crédito. En guaraníes el total a pagar se redondea hacia abajo a múltiplos de 50 (107.437 se paga 107.400). En otras monedas el total no se redondea: se paga el total general exacto (30,75 USD se paga 30,75).

{
  "condicionOperacion": "CONTADO",
  "pagos": [
    { "tipoPago": "EFECTIVO", "monedaPago": "PYG", "montoPago": 60000 },
    {
      "tipoPago": "TARJETA_DE_DEBITO",
      "monedaPago": "PYG",
      "montoPago": 50000,
      "tarjeta": {
        "tipoTarjeta": "VISA",
        "formaProcesamientoPago": "POS",
        "ultimosCuatroDigitos": "4321"
      }
    }
  ]
}

Cuando todos los pagos están en la moneda de la operación, la suma se compara con el total general en esa moneda. Si algún pago está en otra moneda, la comparación se hace en guaraníes: cada pago se convierte con su tipoCambio y se compara con el total en guaraníes de la factura.

credito

CampoTipoRequeridoDescripción
condicionCreditoenumSíPLAZO o CUOTA
plazoCreditostringUna alternativa para PLAZOTexto libre de 2 a 15 caracteres
plazoEstructuradoobjectUna alternativa para PLAZO{ "cantidad": 30, "unidad": "DIAS" }
cuotasintegerSí para CUOTACantidad de cuotas, de 1 a 999; igual a la cantidad de elementos de detalleCuotas
detalleCuotasarraySí para CUOTA{ monto, fechaVencimiento?, moneda? } por cuota. moneda es opcional y, si se informa, debe coincidir con monedaOperacion
montoEntregaInicialnumberNoSi se informa, debe ser igual a la suma de pagos
{
  "condicionOperacion": "CREDITO",
  "pagos": [
    { "tipoPago": "CHEQUE", "monedaPago": "PYG", "montoPago": 20000,
      "cheque": { "numeroCheque": "1234567", "bancoCheque": "Banco Continental" } }
  ],
  "credito": {
    "condicionCredito": "CUOTA",
    "cuotas": 2,
    "detalleCuotas": [
      { "monto": 45000, "fechaVencimiento": "2026-11-18" },
      { "monto": 45000, "fechaVencimiento": "2026-12-18" }
    ]
  }
}

Forma simple: condicionPago

CampoTipoRequeridoDescripción
tipoenumSíCONTADO o CREDITO; debe coincidir con condicionOperacion
tipoPagoenumPara CONTADO y para crédito con entrega inicialMedio de pago — ver tabla abajo
descripcionTipoPagostringSí con OTRODescripción propia del medio, de 4 a 30 caracteres. Sólo con tipoPago = OTRO
monedaPagoenumPara CONTADO y para crédito con entrega inicialMoneda del pago; en una entrega inicial debe coincidir con monedaOperacion
tipoCambionumberCondicionalObligatorio cuando monedaPago no es PYG; no se informa para pagos en PYG
montoPagonumberSí para CONTADOMonto pagado; si monedaPago coincide con monedaOperacion, debe ser igual al total de la operación. No se informa para CREDITO
numeroChequestringSí para tipoPago = CHEQUENúmero del cheque, hasta 8 dígitos. Sólo con CHEQUE
bancoChequestringSí para tipoPago = CHEQUEBanco emisor del cheque, de 4 a 20 caracteres no vacíos. Sólo con CHEQUE
tipoTarjetaenumNo (sólo tarjetas)Denominación de la tarjeta. Si no se informa, se asume OTRO
descripcionTipoTarjetastringSí con tipoTarjeta = OTRODe 4 a 20 caracteres. Sólo con tipoTarjeta = OTRO o sin tipoTarjeta
formaProcesamientoPagoenumNo (sólo tarjetas)Forma de procesamiento. Si no se informa, se asume OTRO
condicionCreditoenumSí para CREDITOModalidad: PLAZO o CUOTA
plazoCreditostringUna alternativa para PLAZOTexto libre de 2 a 15 caracteres. No genera un vencimiento calculable.
plazoEstructuradoobjectUna alternativa para PLAZO{ "cantidad": 30, "unidad": "DIAS" }; cantidad entera de 1 a 9999, unidad DIAS o MESES.
cuotasintegerSí para CUOTACantidad, entre 1 y 999; debe coincidir con detalleCuotas.length
detalleCuotasarraySí para CUOTAUn detalle por cuota; cada monto es positivo y la fecha es opcional
montoEntregaInicialnumberNo (sólo CREDITO)Entrega inicial; null o 0 significa que no hay entrega

Los datos de tarjeta sólo se informan con TARJETA_DE_CREDITO o TARJETA_DE_DEBITO, y los de cheque sólo con CHEQUE; con otro tipoPago la respuesta es 400 en el campo enviado. Para informar los datos de la procesadora o más de un medio de pago, usá la forma completa.

Tipo de cambio del pago

tipoCambio describe la conversión de la moneda del pago y se valida independientemente del tipo de cambio GLOBAL o POR_ITEM de la operación. Debe ser positivo, menor que 99999.9999 y admitir como máximo 4 decimales.

{
  "condicionPago": {
    "tipo": "CONTADO",
    "tipoPago": "TRANSFERENCIA",
    "monedaPago": "USD",
    "tipoCambio": 7130.5000,
    "montoPago": 30.75
  }
}

Una operación en USD pagada en PYG no lleva tipoCambio en el pago. Un pago en USD sí lo requiere, aunque ya hayas informado la cotización de la operación. Ver Facturar en Moneda Extranjera.

Modalidades de crédito

PLAZO y CUOTA son ramas excluyentes, en condicionPago y en credito. Para PLAZO enviá exactamente uno de plazoCredito o plazoEstructurado. No envíes cuotas ni detalleCuotas con PLAZO, ni ningún plazo con CUOTA. El plazo estructurado produce el texto (30 días o 2 meses) y una fecha desde la fecha efectiva de emisión. Los meses se suman como meses calendario y se ajustan al último día del mes.

{
  "condicionPago": {
    "tipo": "CREDITO",
    "condicionCredito": "PLAZO",
    "plazoCredito": "30 días",
    "montoEntregaInicial": 0
  }
}

También se puede emitir con vencimiento calculable:

{
  "condicionPago": {
    "tipo": "CREDITO",
    "condicionCredito": "PLAZO",
    "plazoEstructurado": { "cantidad": 30, "unidad": "DIAS" }
  }
}

plazoCredito se envía como texto libre y no se interpreta como una fecha.

Entrega inicial

Una entrega positiva agrega tipoPago y monedaPago al mismo bloque de condicionPago, o se informa como pagos en la forma completa:

{
  "condicionPago": {
    "tipo": "CREDITO",
    "condicionCredito": "PLAZO",
    "plazoCredito": "30 días",
    "tipoPago": "TRANSFERENCIA",
    "monedaPago": "PYG",
    "montoEntregaInicial": 20000
  }
}

La entrega se expresa en la moneda de la operación y debe ser menor que el total: sin saldo financiado, la operación es CONTADO. CHEQUE también exige numeroCheque y bancoCheque.

El crédito admite cualquier moneda de operación. En moneda extranjera, la entrega y las cuotas se expresan en esa moneda, y un pago en moneda extranjera lleva su tipoCambio.

Valores de tipoPago

ValorDescripción
EFECTIVOPago en efectivo
CHEQUECheque
TARJETA_DE_CREDITOTarjeta de crédito
TARJETA_DE_DEBITOTarjeta de débito
TRANSFERENCIATransferencia bancaria
GIROGiro u orden de pago
BILLETERA_ELECTRONICABilletera electrónica
TARJETA_EMPRESARIALTarjeta empresarial
RETENCIONRetención
PAGO_BANCARIOPago bancario, sólo en una operación bancaria
PAGO_MOVILPago móvil
OTROOtro medio, con descripcionTipoPago

Consultá enumeraciones para el listado completo y actualizado.

tipoTarjeta

ValorDescripción
VISAVisa
MASTERCARDMastercard
AMERICAN_EXPRESSAmerican Express
MAESTROMaestro
PANALPanal
CABALCabal
OTROOtro

tipoTarjeta y formaProcesamientoPago también se publican en /api/v1/public/enums.

Próximos pasos

On this page