Saltar al contenido principal

kobana billing subscriptions

Comandos de kobana billing subscriptions. Toda opción global (Opciones globales) vale aquí.

ComandoHTTPDescripción
subscriptions itemsGET /v1/subscriptions/{id}/itemsListar ítems de la suscripción
subscriptions items createPOST /v1/subscriptions/{id}/itemsAplica cambios en los ítems de la suscripción
subscriptions listGET /v1/subscriptionsListar suscripciones
subscriptions createPOST /v1/subscriptionsCrear suscripción
subscriptions updatePUT /v1/subscriptionsCrear o actualizar suscripción
subscriptions getGET /v1/subscriptions/{id}Obtener suscripción
subscriptions deleteDELETE /v1/subscriptions/{id}Cancelar y eliminar suscripción (soft delete)
subscriptions activatePOST /v1/subscriptions/{id}/activateActivar suscripción en borrador/confirmada
subscriptions cancelPOST /v1/subscriptions/{id}/cancelCancelar suscripción
subscriptions change-anniversaryPOST /v1/subscriptions/{id}/change-anniversaryCambiar el aniversario (día de inicio del ciclo) de la suscripción
subscriptions change-planPOST /v1/subscriptions/{id}/change-planCambiar el plan de la suscripción
subscriptions create-invoicePOST /v1/subscriptions/{id}/create-invoiceGenerar una factura puntual para la suscripción
subscriptions pausePOST /v1/subscriptions/{id}/pausePausar suscripción
subscriptions resumePOST /v1/subscriptions/{id}/resumeReanudar suscripción pausada
subscriptions revert-to-confirmedPOST /v1/subscriptions/{id}/revert-to-confirmedRevertir suscripción al estado confirmado
subscriptions sync-plan-itemsPOST /v1/subscriptions/{id}/sync-plan-itemsResincronizar ítems con el plan actual

subscriptions items​

Listar ítems de la suscripción

kobana billing subscriptions items [ID] [OPCIONES] [COMANDO]

GET /v1/subscriptions/{id}/items

Argumentos de la ruta: id

Respuestas

HTTPDescripción
200Lista de ítems.
404Recurso no encontrado en la organización actual.

subscriptions items create​

Aplica cambios en los ítems de la suscripción

kobana billing subscriptions items create [ID] [OPCIONES]

POST /v1/subscriptions/{id}/items

Ejecuta un lote de hasta 50 operaciones sobre los ítems: agregar, eliminar, cambiar cantidad, cambiar de precio o definir un valor unitario puntual. Las operaciones se aplican en conjunto y generan un único registro de cambio, con la factura o el crédito de prorrateo resultante.

Argumentos de la ruta: id

Cuerpo de la solicitud

NombreTipoObligatorioDescripción
changesarray<oneOf>síOperaciones a aplicar, de 1 a 50. Cada ítem se discrimina por op.
timingstringnoCuándo aplicar: immediate (predeterminado) o end_of_period. Valores: immediate, end_of_period.
reasonstringnoMotivo libre, guardado junto al registro de cambio.
idempotency_keystringnoClave de idempotencia. El encabezado Idempotency-Key tiene precedencia sobre este campo.

Otros campos y objetos anidados: kobana schema billing.subscriptions.items.create.

Respuestas

HTTPDescripción
200Cambios aplicados. item_change_id apunta al registro generado; invoice_id y credit_id vienen completos cuando el prorrateo generó factura o crédito.
400El cuerpo de la solicitud falló en la validación.
404Recurso no encontrado en la organización actual.
422El cuerpo de la solicitud falló en la validación.

subscriptions list​

Listar suscripciones

kobana billing subscriptions list [OPCIONES]

GET /v1/subscriptions

Devuelve una lista paginada de las suscripciones de la organización actual.

Parámetros de consulta

NombreTipoObligatorioDescripción
pageintegernoPágina (comienza en 1). Por defecto: 1.
per_pageintegernoÍtems por página. Por defecto: 20. Máximo: 100.
sort_bystringnoCampo de ordenación. El valor por defecto depende del recurso.
sort_orderstringnoDirección de ordenación. Por defecto: desc. Valores: asc, desc.
person_idstringnoFiltra por UUID de la persona asociada.
person_document_numberstringnoFiltra por CPF/CNPJ de la persona (coincidencia exacta).
person_name_containsstringnoFiltra por nombre de la persona (búsqueda parcial, sin distinción de mayúsculas).
statusstringnoFiltra por estado de la suscripción. Valores: draft, trialing, active, past_due, canceled, paused, suspended.
plan_idstringnoFiltra por plan.
billing_cyclestringnoFiltra por periodicidad de cobro. Valores: monthly, quarterly, semiannual, annual.
billing_account_idstringnoFiltra por cuenta de cobro.
searchstringnoBúsqueda textual libre.
company_idstringnoFiltra por empresa (UUID).
collection_methodstringnoFiltra por el método de cobro: charge_automatically, manual_charge o manual_invoice. Valores: charge_automatically, manual_charge, manual_invoice.
cancel_at_period_endstringnoFiltra suscripciones programadas para cancelarse al fin del período (true) o no (false). Valores: true, false.
external_idstringnoFiltra por el identificador externo.
product_group_idstringnoFiltra por grupo de producto (UUID).
proposal_idstringnoFiltra por propuesta (UUID).
recurring_amount_minnumber,nullnoImporte recurrente mínimo en reales (ej.: 50.00).
recurring_amount_maxnumber,nullnoImporte recurrente máximo en reales (ej.: 500.00).
created_afterstringnoInicio del rango de fecha de creación (YYYY-MM-DD).
created_beforestringnoFin del rango de fecha de creación (YYYY-MM-DD).
current_period_start_fromstringnoInicio del período actual a partir de esta fecha (YYYY-MM-DD).
current_period_start_tostringnoInicio del período actual hasta esta fecha (YYYY-MM-DD).
current_period_end_fromstringnoFin del período actual a partir de esta fecha (YYYY-MM-DD).
current_period_end_tostringnoFin del período actual hasta esta fecha (YYYY-MM-DD).
trial_end_fromstringnoFin del trial a partir de esta fecha (YYYY-MM-DD).
trial_end_tostringnoFin del trial hasta esta fecha (YYYY-MM-DD).
canceled_afterstringnoCancelado a partir de esta fecha (YYYY-MM-DD).
canceled_beforestringnoCancelado hasta esta fecha (YYYY-MM-DD).
activated_afterstringnoActivado a partir de esta fecha (YYYY-MM-DD).
activated_beforestringnoActivado hasta esta fecha (YYYY-MM-DD).

Respuestas

HTTPDescripción
200Lista paginada de suscripciones.
404Recurso no encontrado en la organización actual.

subscriptions create​

Crear suscripción

kobana billing subscriptions create [OPCIONES]

POST /v1/subscriptions

Crea una suscripción. Es obligatorio enviar plan_id o items.

Cuerpo de la solicitud

NombreTipoObligatorioDescripción
billing_account_idstring (uuid)síUUID de la cuenta de cobro que recibirá esta suscripción.
external_idstringnoIdentificador en su sistema externo, para idempotencia/sincronización.
company_idstring (uuid)no
plan_idstring (uuid)noUUID del plan. Obligatorio cuando no se envía items.
product_group_idstring (uuid)no
billing_cyclestringnoValores: monthly, quarterly, semiannual, annual.
collection_methodstringnoValores: charge_automatically, manual_charge, manual_invoice.
trial_endstring (date-time)noFecha de finalización del trial (ISO 8601).
trial_period_daysintegernoAlternativa a trial_end. Días de trial a partir de la creación.
proration_behaviorstringnoValores: create_prorations, none, always_invoice.
nfe_issuance_policystringnoValores: disabled, on_finalization, on_full_payment, per_installment.
itemsarray<object>no
commitment_monthsintegernoPermanencia: número de meses contratados (copiado de la propuesta aceptada). Dentro de la ventana de permanencia — inicio de la suscripción + meses — el cliente no puede cancelar por el portal. Use null para quitar.
notesstringno
custom_metadataobjectno

Otros campos y objetos anidados: kobana schema billing.subscriptions.create.

Respuestas

HTTPDescripción
201Suscripción creada.
400El cuerpo de la solicitud falló en la validación.
404Recurso no encontrado en la organización actual.
422El cuerpo de la solicitud falló en la validación.

subscriptions update​

Crear o actualizar suscripción

kobana billing subscriptions update [OPCIONES]

PUT /v1/subscriptions

Recibe el mismo cuerpo del POST, más id y public_id, y deduplica por id, public_id, external_id y las claves naturales del recurso, en ese orden, deteniéndose en la primera que encuentre un registro. Si lo encuentra, lo actualiza y responde 200; si no, lo crea y responde 201. Los campos obligatorios del POST solo se exigen cuando no se encuentra ningún registro, y la actualización es parcial.

Cuerpo de la solicitud

NombreTipoObligatorioDescripción
billing_account_idstring (uuid)noUUID de la cuenta de cobro que recibirá esta suscripción.
external_idstringnoIdentificador en su sistema externo, para idempotencia/sincronización.
company_idstring (uuid)no
plan_idstring (uuid)noUUID del plan. Obligatorio cuando no se envía items.
product_group_idstring (uuid)no
billing_cyclestringnoValores: monthly, quarterly, semiannual, annual.
collection_methodstringnoValores: charge_automatically, manual_charge, manual_invoice.
trial_endstring (date-time)noFecha de finalización del trial (ISO 8601).
trial_period_daysintegernoAlternativa a trial_end. Días de trial a partir de la creación.
proration_behaviorstringnoValores: create_prorations, none, always_invoice.
nfe_issuance_policystringnoValores: disabled, on_finalization, on_full_payment, per_installment.
itemsarray<object>no
commitment_monthsintegernoPermanencia: número de meses contratados (copiado de la propuesta aceptada). Dentro de la ventana de permanencia — inicio de la suscripción + meses — el cliente no puede cancelar por el portal. Use null para quitar.
notesstringno
custom_metadataobjectno
idstring (uuid)noUUID del registro. Se usa solo para localizarlo — nunca se guarda.
public_idstring (uuid)noUUID público del registro, usado para localizarlo.

Otros campos y objetos anidados: kobana schema billing.subscriptions.update.

Respuestas

HTTPDescripción
200Registro actualizado.
201Registro creado.
400El cuerpo de la solicitud falló en la validación.
404Recurso no encontrado en la organización actual.
422El cuerpo de la solicitud falló en la validación.

subscriptions get​

Obtener suscripción

kobana billing subscriptions get [ID] [OPCIONES]

GET /v1/subscriptions/{id}

Argumentos de la ruta: id

Respuestas

HTTPDescripción
200Detalle de la suscripción.
404Recurso no encontrado en la organización actual.

subscriptions delete​

Cancelar y eliminar suscripción (soft delete)

kobana billing subscriptions delete [ID] [OPCIONES]

DELETE /v1/subscriptions/{id}

Argumentos de la ruta: id

Respuestas

HTTPDescripción
200Confirmación de soft delete.
404Recurso no encontrado en la organización actual.

subscriptions activate​

Activar suscripción en borrador/confirmada

kobana billing subscriptions activate [ID] [OPCIONES]

POST /v1/subscriptions/{id}/activate

Argumentos de la ruta: id

Respuestas

HTTPDescripción
200Suscripción activada.
404Recurso no encontrado en la organización actual.

subscriptions cancel​

Cancelar suscripción

kobana billing subscriptions cancel [ID] [OPCIONES]

POST /v1/subscriptions/{id}/cancel

Cancela inmediatamente, o programa para el fin del período cuando cancel_at_period_end=true.

Argumentos de la ruta: id

Cuerpo de la solicitud

NombreTipoObligatorioDescripción
cancel_at_period_endbooleannoCuando es true, programa la cancelación para el fin del período actual. Por defecto: false (cancela inmediatamente).
reasonstringno

Otros campos y objetos anidados: kobana schema billing.subscriptions.cancel.

Respuestas

HTTPDescripción
200Suscripción cancelada.
404Recurso no encontrado en la organización actual.

subscriptions change-anniversary​

Cambiar el aniversario (día de inicio del ciclo) de la suscripción

kobana billing subscriptions change-anniversary [ID] [OPCIONES]

POST /v1/subscriptions/{id}/change-anniversary

Mueve el día del mes en que empiezan los ciclos. El ciclo en curso mantiene su inicio y se extiende hasta la víspera del nuevo día; los días añadidos se cobran a prorrata (importe del ciclo × días ÷ días del ciclo) en una factura subscription_update. El cambio siempre avanza la fecha, nunca la retrocede. Use dry_run para calcular sin aplicar.

Argumentos de la ruta: id

Cuerpo de la solicitud

NombreTipoObligatorioDescripción
anniversary_dayintegersíNuevo día del mes (1 a 28) en que empiezan los ciclos. Use 1 para mes calendario.
charge_prorationbooleannoCobrar los días añadidos. Por defecto: true, salvo cuando el proration_behavior de la suscripción es none.
dry_runbooleannoCuando es true, solo calcula y devuelve el resultado, sin cambiar nada.
reasonstringnoMotivo del cambio (opcional, registrado en el audit log).

Otros campos y objetos anidados: kobana schema billing.subscriptions.change-anniversary.

Respuestas

HTTPDescripción
200Resultado del cambio (o de la simulación, con dry_run).
404Recurso no encontrado en la organización actual.
422El cuerpo de la solicitud falló en la validación.

subscriptions change-plan​

Cambiar el plan de la suscripción

kobana billing subscriptions change-plan [ID] [OPCIONES]

POST /v1/subscriptions/{id}/change-plan

Upgrade o downgrade. La prorrata sigue el proration_behavior de la suscripción.

Argumentos de la ruta: id

Cuerpo de la solicitud

NombreTipoObligatorioDescripción
plan_idstring (uuid)síUUID del nuevo plan.
timingstringnoCuándo entra en vigor el cambio de plan. Por defecto: immediate. Valores: immediate, end_of_period.
reasonstringnoMotivo del cambio (opcional, registrado en el audit log).

Otros campos y objetos anidados: kobana schema billing.subscriptions.change-plan.

Respuestas

HTTPDescripción
200Suscripción actualizada.
404Recurso no encontrado en la organización actual.
422El cuerpo de la solicitud falló en la validación.

subscriptions create-invoice​

Generar una factura puntual para la suscripción

kobana billing subscriptions create-invoice [ID] [OPCIONES]

POST /v1/subscriptions/{id}/create-invoice

Argumentos de la ruta: id

Respuestas

HTTPDescripción
201Factura generada.
404Recurso no encontrado en la organización actual.

subscriptions pause​

Pausar suscripción

kobana billing subscriptions pause [ID] [OPCIONES]

POST /v1/subscriptions/{id}/pause

Suspende el cobro manteniendo la suscripción abierta. behavior controla cómo se tratan las facturas generadas durante la pausa.

Argumentos de la ruta: id

Cuerpo de la solicitud

NombreTipoObligatorioDescripción
behaviorstringnoCómo tratar facturas generadas durante la pausa. Por defecto: mark_uncollectible. Valores: mark_uncollectible, keep_as_draft, void.
resumes_atstring (date-time)noFecha para reanudación automática. Omita para reanudación manual.

Otros campos y objetos anidados: kobana schema billing.subscriptions.pause.

Respuestas

HTTPDescripción
200Suscripción pausada.
404Recurso no encontrado en la organización actual.
422El cuerpo de la solicitud falló en la validación.

subscriptions resume​

Reanudar suscripción pausada

kobana billing subscriptions resume [ID] [OPCIONES]

POST /v1/subscriptions/{id}/resume

Argumentos de la ruta: id

Respuestas

HTTPDescripción
200Suscripción reanudada.
404Recurso no encontrado en la organización actual.

subscriptions revert-to-confirmed​

Revertir suscripción al estado confirmado

kobana billing subscriptions revert-to-confirmed [ID] [OPCIONES]

POST /v1/subscriptions/{id}/revert-to-confirmed

Argumentos de la ruta: id

Respuestas

HTTPDescripción
200Suscripción revertida.
404Recurso no encontrado en la organización actual.

subscriptions sync-plan-items​

Resincronizar ítems con el plan actual

kobana billing subscriptions sync-plan-items [ID] [OPCIONES]

POST /v1/subscriptions/{id}/sync-plan-items

Realinea los ítems de la suscripción con la plantilla de plan-items (reconciliación manual).

Argumentos de la ruta: id

Respuestas

HTTPDescripción
200Suscripción sincronizada.
404Recurso no encontrado en la organización actual.