API Documentation

Max
Max
Last updated 

Authentication:

Nota: En Configuración, bajo Claves API puedes encontrar tus llaves públicas y privadas.

Para autenticarte con los endpoints, debes enviar los siguientes headers:

X-PUBLIC-KEY: <pk_Tu llave pública>
X-SECRET-KEY: <sk_Tu llave privada>

IMPORTANTE: Si estás haciendo llamadas desde el frontend, nunca utilices la llave privada.

Endpoints:


Checkouts:
[POST] Create a checkout
  • URL: https://app.recurrente.com/api/checkouts
  • Request:
    • { "items": [{ "price_id": "<priceId>" }] }
    • o en caso lo quieras asociar a un usuario ya existente:
    • { "items": [{ "price_id": "<priceId>", user_id: "<userId>" }] }
* El priceId lo puedes encontrar en la página de configurar producto dentro de tu cuenta de Recurrente.

[GET] Get a checkout

Subscriptions:
[GET] Get Subscription 

Users:
[POST] Create a User 

Products:
[POST] Create a product
  • URL: https://app.recurrente.com/api/products
  • Request:
    • Para un producto de cobro único:
      • { 
          "product": { 
            "name": "El nombre del producto",
            "description": "La descripción es opcional",
            "custom_terms_and_conditions": "Opcional",
            "phone_requirement": "required|optional|none",
            "address_requirement": "required|optional|none",
            "billing_info_requirement": "optional|none",
            "image_url": "https://picsum.photos/200",
            "cancel_url": "https://tu-website.com/pago-cancelado",
            "success_url": "https://tu-website.com/pago-exitoso",
            "adjustable_quantity": true|false,
            "prices_attributes": [
              { 
                "amount_as_decimal": "123.12", 
                "currency": "GTQ|USD", 
                "charge_type": "one_time" 
              }
            ]
          }
        }
    • Para un producto de cobro recurrente:
      • { 
          "product": { 
            "name": "El nombre del producto",
            "description": "La descripción es opcional",
            "custom_terms_and_conditions": "Opcional",
            "phone_requirement": "required|optional|none",
            "address_requirement": "required|optional|none",
            "billing_info_requirement": "optional|none",
            "image_url": "https://picsum.photos/200",
            "cancel_url": "https://tu-website.com/pago-cancelado",
            "success_url": "https://tu-website.com/pago-exitoso",
            "prices_attributes": [
              { 
                "amount_as_decimal": "123.12", 
                "currency": "GTQ|USD", 
                "charge_type": "recurring",
                "billing_interval_count": "1",
                "billing_interval": "week|month|year",
                "free_trial_interval_count": "1",
                "free_trial_interval": "week|month|year",
                "periods_before_automatic_cancellation": null,
              }
            ]
          }
        }
[GET] Get a product



Webhook Event Types

payment_intent.pending
Se emite cuando se inicia un cobro con transferencia bancaria. En cuanto se reciba el dinero en la cuenta, se emitirá payment_intent.succeeded. De lo contrario, se emitirá payment_intent.failed.

payment_intent.succeeded
Se emite con un cobro exitoso. Los fondos ya están en tu balance de Recurrente.

payment_intent.failed
Cobro fallido, con tarjeta o transferencia bancaria.

subscription.create
Si el producto es recurrente, se emite además del payment.succeeded este evento con la información de la suscripción.

subscription.past_due
Se emite cuando el cobro automático de una suscripción falla por primera vez. (ver Nota)

subscription.cancel
Se emite cuando el cobro automático de una suscripción falla por tercera vez (Ver Nota)

Nota: En una suscripción, cuando un pago falla, Recurrente intenta cobrarlo de nuevo 3 y 5 días después. Si ambos re-intentos son fallidos, en ese momento se cancela la suscripción.