Construye tu integración para suscripciones

Crea y maneja suscripciones para aceptar pagos recurrentes

Suscripciones en nuestro Componente

Suscripciones en nuestro Componente


1. Crea un plan

Crea un plan a travez del panel o desde nuestro API de planes

curl --location --request POST 'https://api.conekta.io/plans' \
--header 'Accept: application/vnd.conekta-v2.2.0+json' \
--header 'Content-Type: application/json' \
-u key_xxxxxxxxxxxxxx: \
--data-raw '{
	"amount": 1000000,
  "currency": "MXN",
  "expiry_count": 1,
  "frequency": 2,
  "id": "nuevo-plan",
  "interval": "week",
  "name": "Nuevo plan",
  "trial_period_days": 0,
  "max_retries": 3,
  "retry_delay_hours": 50
}
'
{
  "id": "nuevo-plan",
  "livemode": false,
  "created_at": 1743712372,
  "name": "Nuevo plan",
  "amount": 1000000,
  "currency": "MXN",
  "interval": "week",
  "frequency": 2,
  "expiry_count": 1,
  "trial_period_days": 0,
  "max_retries": 3,
  "retry_delay_hours": 50,
  "object": "plan"
}

Tiempo de expiración de un plan

Duración Indefinida: No se debe enviar el campo expiry_count

Duración definida: Debe enviar el campo expiry_count para indicar cantidad de cobros, por ejemplo, en un plan mensual, al configurar el expiry_count en 3, se cobrará por el periodo de 3 meses y su suscripción finalizará


Establecer días de prueba a un plan

Puedes añadir días de prueba a un plan utilizando el campo trial_period_days. Al momento de un cliente suscribirse a un plan con días de pruebas, el primer cargo de la suscripción se ejecutará cuando el periodo de pruebas haya terminado.

Una vez creado el plan, por Panel o API, podrás visualizarlo en Panel en la sección de Suscripciones > Planes

Suscripciones en nuestro Componente

Panel: Suscripciones -> Planes


2. Crea un cliente

Para crear una suscripción, necesitamos crear un cliente y guardar su método de pago.

Importante

Al crear un customer, te retornamos el id a dicho cliente. Este ID será utilizado en los siguientes pasos.

curl --location --request POST 'https://api.conekta.io/customers' \
--header 'Accept: application/vnd.conekta-v2.2.0+json' \
--header 'Content-Type: application/json' \
-u key_xxxxxxxxxxxxxx: \
--data-raw '{
	"name": "Nuevo Cliente",
	"email": "[email protected]",
	"phone": "5244444444",
  "payment_sources": [{
  	"type": "card"
  	"token_id": "tok_2q6cyio5sDqCyvYh7"
  }]
}'
{
    "livemode": false,
    "name": "Nuevo Cliente",
    "email": "[email protected]",
    "phone": "5244444444",
    "id": "cus_1a2b3c4d5e6ftest",//Este ID es indispensable para las llamadas futuras
    "object": "customer",
    "created_at": 1631659751,
    "corporate": false,
    "custom_reference": "",
    "default_payment_source_id": "src_2qSsQUCVaMrfxtest",
  //Payment Sources es un objeto que solamente se crea cuando se agrega en el request un token desde el Web Checkout Tokenizer
    "payment_sources": {
        "object": "list",
        "has_more": false,
        "data": [
            {
                "id": "src_2qSsQUCVaMrfxtest", //ID clave
                "object": "payment_source",
                "type": "card",
                "created_at": 1631659751,
                "last4": "4242",
                "bin": "424242",
                "card_type": "credit",
                "exp_month": "01",
                "exp_year": "23",
                "brand": "visa",
                "name": "Jaciel Israel Oliva Contreras",
                "parent_id": "cus_1a2b3c4d5e6ftest",
                "default": true,
                "visible_on_checkout": false
            }
        ]
    }
}

Una vez creado el cliente, podrás visualizarlo en Panel en la sección de Suscripciones > Clientes

Suscripciones en nuestro Componente

Panel: Suscripciones -> Clientes


3. Crea una suscripción a un plan

🚧

Nota importante

El cliente debe tener una tarjeta asociada para crear una suscripción a un plan.

El último paso es crear una suscripción por medio de API asociado al plan y cliente previamente creados.

curl --location --request POST 'https://api.conekta.io/customers/cus_2qUBQEkFJ7Kw4test/subscriptions' \
--header 'Accept: application/vnd.conekta-v2.2.0+json' \
--header 'Content-Type: application/json' \
-u key_xxxxxxxxxxxxxx: \
--data-raw '{
   "card_id": "src_2qUCNd5AyQqfPtest",
   "plan_id": "plan-test"
}'
{
    "id": "sub_2qUZfg656aS38test",
    "status": "active",
    "object": "subscription",
    "metadata": {},
    "charge_id": "67ebfe61841333001c10test",
    "created_at": 1743519329,
    "subscription_start": 1743519329,
    "billing_cycle_start": 1743519319,
    "billing_cycle_end": 1744728919,
    "plan_id": "plan-test",
    "last_billing_cycle_order_id": "ord_2xk88fFocSaaatest",
    "customer_id": "cus_2x27yFmaDN4whtest", // Nosotros utilizamos otro customer_ID, ya que este proceso puede utilizar clientes ya creados con anterioridad.
    "card_id": "src_2xk86dsXpk639test"
}

Suscripciones a multiples planes

Un cliente puede estar suscrito a multiples planes al mismo tiempo. Utilizando el API de crear suscripción puedes suscribir un usuario a multiples planes y por medio de este API verificar todas las suscripciones que tiene registrado un cliente en especifico

Una vez creada la suscripción, podrás obtener información a travez de API o en Panel en la sección de Suscripciones o en el detalle del cliente.

Suscripciones en nuestro Componente

Panel: Clientes -> Cliente