cauril/Docs

Referencia de API

Endpoints, parámetros y modelos de la API v1 de Cauril.

URL base https://api.cauril.comVersión 2026-06-01

Autenticá con tu API key como Bearer token (Authorization: Bearer sk_test_…), ver Autenticación. Toda mutación requiere Idempotency-Key.

Endpoints

Payments

Crear, listar y consultar pagos.

Refunds

Reembolsos totales y parciales.

Checkout

Sesiones de checkout embebido (drop-in): tu server crea la sesión, el drop-in @cauril/checkout-js cobra en el browser sin que toques datos de tarjeta (PCI SAQ-A).

Customers

Clientes del negocio que agrupan pagos y métodos.

Routing rules

Reglas declarativas para resolver el PSP de cada pago.

Analytics

Métricas agregadas de pagos.

Plans

Planes de cobro recurrente.

Subscriptions

Suscripciones recurrentes normalizadas multi-PSP.

Invoices

Facturas generadas por las suscripciones.

Provider connections

Conectar y operar tus cuentas de PSP.

Webhook endpoints

Suscripciones a eventos salientes.

Webhook deliveries

Entregas de eventos salientes y sus reintentos.

Events

El feed normalizado de eventos.

Modelos

Los objetos que devuelve y acepta la API.

Money

Monto en la unidad mínima de la moneda (ej. centavos). Nunca decimales.

Currency

Código ISO-4217 de 3 letras.

PaymentStatus

Estado normalizado del pago (igual para todos los PSPs).

createdpendingrequires_actionprocessingsucceededfailedcanceledrefundedpartially_refunded

RefundStatus

pendingprocessingsucceededfailedcanceled

SubscriptionStatus

Estado normalizado de la suscripción (igual para todos los PSPs).

incompleteincomplete_expiredtrialingactivepast_dueunpaidpausedcanceled

InvoiceStatus

Estado normalizado de la factura. Cada transición open→paid se materializa en un Payment.

draftopenpaiduncollectiblevoid

DeliveryStatus

Estado de la entrega de un webhook saliente. exhausted = agotados los reintentos (dead-letter).

pendingdeliveringdeliveredfailedexhausted

BillingInterval

Cadencia de cobro de un plan.

dayweekmonthyear

PaymentMethod

typestring
tokenstringToken del método generado del lado del cliente/PSP. Cauril nunca ve datos crudos de tarjeta (PAN/CVV).
brandstring
last4string

NextAction

Acción requerida para completar el pago (ej. 3DS).

typestring
urlstring

Failure

codestring
messagestring

CreatePayment

amountreqMoney
currencyreqCurrency
payment_methodreqPaymentMethod
providerstringForzar un PSP. Si se omite, se usa el provider por defecto de la organización.
customer_idstring
descriptionstring
captureboolean Default: true.
return_urlstring
metadataobject

Payment

objectstring
idstring
statusPaymentStatus
amountMoney
amount_refundedMoney
currencyCurrency
providerstring
provider_payment_idstringnull
payment_methodPaymentMethod
customer_idstringnull
descriptionstringnull
metadataobject
next_actionNextAction
failureFailure
attemptsPaymentAttempt[]Solo con expand=attempts.
created_atstring · date-time
updated_atstring · date-time
livemodeboolean

PaymentAttempt

objectstring
idstring
providerstring
statusstring
provider_payment_idstringnull
error_codestringnull
latency_msintegernull
created_atstring · date-time

CreateRefund

amountMoney
reasonstring
metadataobject

Refund

objectstring
idstring
payment_idstring
amountMoney
currencyCurrency
statusRefundStatus
reasonstringnull
provider_refund_idstringnull
metadataobject
created_atstring · date-time
updated_atstring · date-time

CheckoutSessionStatus

Estado de la sesión de checkout.

openprocessingcompletedexpiredcanceled

CheckoutSessionUi

Datos que el drop-in usa para montar el campo de pago del PSP en el browser.

providerstring
publishable_keystringnullClave pública del PSP (ej. pk_test_... de Stripe). El drop-in la usa para montar el campo seguro.
methodsstring[]

CreateCheckoutSession

amountreqMoney
currencyreqCurrency
success_urlreqstring · uriA dónde vuelve el comprador tras pagar. Debe estar en el allowlist de redirección de la organización.
cancel_urlreqstring · uriA dónde vuelve el comprador si cancela.
allowed_methodsarraynullMétodos a ofrecer. Si se omite, se usan los del PSP resuelto.
return_urlstring · uri
customer_emailstring · email
localestring
providerstringForzar un PSP. Si se omite, se resuelve por routing (con routing_hint).
routing_hintobjectPistas para resolver el PSP (ej. país del comprador).
appearanceobjectEstilo del drop-in (colores, bordes).
metadataobject

ConfirmCheckout

Lo envía el drop-in al confirmar; los campos dependen del método y el PSP.

provider_tokenstringToken del método generado por el PSP del lado del cliente.
methodstring
customer_emailstring · email
installmentsinteger
payer_namestring
payer_documentstringDocumento del pagador (ej. CPF) cuando el método/país lo requiere.
payment_method_idstring
countrystring

RerouteCheckout

exclude_providerstringPSP a excluir en el reintento (el que acaba de fallar).

CheckoutSession

Vista server de la sesión (con sk_). El drop-in en el browser ve el subconjunto CheckoutSessionPublic.

objectstring
idstring
statusCheckoutSessionStatus
amountMoney
currencyCurrency
client_secretstringSe devuelve una sola vez, al crear. Pasalo al drop-in en el browser; autentica las llamadas del comprador. No es una API key (cs_..._secret_...).
uiCheckoutSessionUi
allowed_methodsarraynull
success_urlstring
cancel_urlstring
return_urlstringnull
localestringnull
customer_emailstringnull
metadataobject
payment_idstringnullEl Payment generado cuando la sesión se completa.
paymentobjectSolo con expand=payment.
expires_atstring · date-time
created_atstring · date-time
updated_atstring · date-time
livemodeboolean

CheckoutSessionPublic

Subconjunto que ve el drop-in en el browser (auth por client_secret). Sin metadata ni ids internos.

objectstring
idstring
statusCheckoutSessionStatus
amountMoney
currencyCurrency
uiCheckoutSessionUi
allowed_methodsarraynull
localestringnull
success_urlstring
cancel_urlstring
return_urlstringnull
paymentobjectEspejo normalizado del pago: estado, next_action (3DS/voucher) y failure. Nunca un string crudo del PSP.
expires_atstring · date-time

ConnectProvider

providerreqstring
credentialsreqobjectCredenciales del PSP. Se cifran at-rest y nunca se devuelven.
modestring
labelstring

ProviderConnection

objectstring
idstring
providerstring
modestring
statusstring
labelstringnull
capabilitiesobject
webhook_pathstringConfigurá esta URL como destino de webhooks en el PSP.
created_atstring · date-time

CreateWebhookEndpoint

urlreqstring · uri
enabled_eventsstring[]Tipos de evento a recibir. Vacío = todos.
descriptionstring

WebhookEndpoint

objectstring
idstring
urlstring
enabled_eventsstring[]
statusstring
secretstringSolo en la respuesta de creación. Verificá la firma Cauril-Signature con este secreto.
created_atstring · date-time

Event

idstring
objectstring
typestring
api_versionstring
created_atstring · date-time
livemodeboolean
dataobject

PaymentList

objectstring
dataPayment[]
has_moreboolean
next_cursorstringnull

EventList

objectstring
dataEvent[]
has_moreboolean
next_cursorstringnull

CreateCustomer

emailstring · email
namestring
metadataobject

Customer

objectstring
idstring
emailstringnull
namestringnull
metadataobject
created_atstring · date-time

CustomerList

objectstring
dataCustomer[]
has_moreboolean
next_cursorstringnull

RoutingRuleConditions

Condiciones en whitelist. Una condición presente debe cumplirse (AND entre campos; OR dentro de cada lista). currency/country se comparan en mayúsculas, method en minúsculas; amount usa lte/gte en unidades mínimas.

currencystring[]
countrystring[]
methodstring[]
amountobject

RoutingRuleAction

providerreqstring

CreateRoutingRule

priorityreqintegerSe evalúan de menor a mayor; la más baja primero.
conditionsreqRoutingRuleConditions
actionreqRoutingRuleAction
enabledboolean Default: true.

UpdateRoutingRule

priorityinteger
conditionsRoutingRuleConditions
actionRoutingRuleAction
enabledboolean

RoutingRule

objectstring
idstring
priorityinteger
conditionsRoutingRuleConditions
actionRoutingRuleAction
enabledboolean
created_atstring · date-time

AnalyticsProviderBreakdown

providerstring
countinteger
volumeMoney
approval_ratenumberProporción de pagos aprobados (0–1).
fees_estimatedMoney

AnalyticsSummary

objectstring
rangeobject
totalsobjectMétricas del período en una sola currency.
fees_estimatedMoney
available_currenciesobject[]Monedas con actividad en el período, la más activa primero.
by_providerAnalyticsProviderBreakdown[]

CreatePlan

amountreqMoney
currencyreqCurrency
intervalreqBillingInterval
interval_countintegerNúmero de intervalos por período de cobro. Default: 1.
trial_daysinteger
metadataobject

Plan

objectstring
idstring
amountMoney
currencyCurrency
intervalBillingInterval
interval_countinteger
trial_daysintegernull
metadataobject
created_atstring · date-time

PlanList

objectstring
dataPlan[]
has_moreboolean
next_cursorstringnull

CreateSubscription

customerreqstringId del customer.
planreqstringId del plan.
payment_methodreqstringToken del método generado del lado del cliente/PSP.
providerstringForzar un PSP. Si se omite, se resuelve por routing.
trial_daysinteger
metadataobject

UpdateSubscription

planstringCambio de plan; aplica al próximo período.
cancel_at_period_endboolean
metadataobject

CancelSubscription

at_period_endbooleanSi es true, la cancelación se programa para el final del período actual. Default: false.

Subscription

objectstring
idstring
statusSubscriptionStatus
customer_idstring
plan_idstring
providerstring
enginestringQuién corre el cobro recurrente: el PSP (native) o el scheduler de Cauril.
current_period_startstring · date-time
current_period_endstring · date-time
cancel_at_period_endboolean
trial_endstring,null · date-time
provider_subscription_idstringnull
metadataobject
latest_invoiceobjectSolo con expand=latest_invoice. La última factura, con su payment (que puede llevar next_action).
created_atstring · date-time
updated_atstring · date-time

SubscriptionList

objectstring
dataSubscription[]
has_moreboolean
next_cursorstringnull

Invoice

objectstring
idstring
subscription_idstring
amountMoney
currencyCurrency
statusInvoiceStatus
period_startstring · date-time
period_endstring · date-time
payment_idstringnullEl Payment que materializa el cobro de esta factura.
attempt_countinteger
created_atstring · date-time

InvoiceList

objectstring
dataInvoice[]
has_moreboolean
next_cursorstringnull

WebhookDelivery

objectstring
idstring
event_idstring
endpoint_idstring
typestring
statusDeliveryStatus
attempt_countinteger
last_response_statusintegernullCódigo HTTP del último intento.
last_errorstringnull
next_attempt_atstring,null · date-time
delivered_atstring,null · date-time
created_atstring · date-time
payloadobjectCuerpo del evento enviado. Solo presente en el detalle (GET por id).

WebhookDeliveryList

objectstring
dataWebhookDelivery[]
has_moreboolean
next_cursorstringnull

Error

Forma única de error en toda la API.

errorobject