Saltar al contenido principal

Portal para cambiar planes de suscripción

POST 

/payment/changePlans

Genera una URL para acceder al portal de facturación de Stripe y gestionar la suscripción actual.

Flujo técnico:

  1. Verifica autenticación del usuario
  2. Obtiene la compañía asociada al usuario
  3. Valida que exista una suscripción activa
  4. Verifica que la compañía tenga cuenta Stripe asociada
  5. Crea sesión en el portal de facturación de Stripe
  6. Devuelve URL para redireccionar al usuario

Validaciones:

  • Usuario debe estar autenticado (JWT válido)
  • Usuario debe pertenecer a una compañía válida
  • La compañía debe tener cuenta Stripe asociada
  • Debe existir una suscripción activa no expirada
  • Parámetro returnUrl es obligatorio

Parámetros requeridos:

  • returnUrl: URL a la que Stripe redirigirá después de gestionar la suscripción

Ejemplo de request:

{
"returnUrl": "https://app.cargoffer.com/payment/success"
}

Ejemplo de respuesta exitosa:

{
"url": "https://billing.stripe.com/session/xyz123"
}

Casos de error:

  • 400 Bad Request:
    • Falta parámetro returnUrl
    • Suscripción no activa o expirada
  • 401 Unauthorized:
    • Token JWT inválido
    • Usuario no tiene compañía asociada
    • No hay cuenta Stripe configurada
  • 500 Internal Server Error: Error al conectar con Stripe

Ejemplo de uso en frontend:

// Frontend: Acceder al portal de facturación
const accessBillingPortal = async (returnUrl) => {
try {
const response = await axios.post(
'/truckers/payment/changePlans',
{ returnUrl },
{ headers: { Authorization: `Bearer ${token}` } }
);

if (response.data.url) {
window.location.href = response.data.url; // Redirigir a Stripe
}
} catch (error) {
handleError(error);
}
};

Notas importantes:

  • Permite cambiar/cancelar suscripción actual
  • Muestra historial de pagos y facturas
  • Requiere suscripción activa para funcionar
  • La URL generada tiene validez limitada (30 min)

Request

Responses

URL del portal de facturación de Stripe