TypeScriptGenerado con IA

Stripe en Colombia: integrar pagos internacionales en tu SaaS

Guía práctica para implementar Stripe en aplicaciones SaaS colombianas, con ejemplos reales en TypeScript para procesar pagos internacionales de forma segura y eficiente.

Edward Díaz — Edwsystem3 de junio de 202615 min de lectura

Introducción a Stripe para SaaS colombianos

En el mercado globalizado de 2025, los SaaS colombianos necesitan soluciones de pago que funcionen a nivel internacional. Stripe se posiciona como la mejor opción con su cobertura en 135+ monedas y soporte para métodos de pago locales como PSE.

Ejemplo: Un usuario en México puede pagar con tarjeta en MXN mientras tu SaaS recibe los fondos en COP con conversión automática.

Configuración inicial del SDK de Stripe

Primero, instala el SDK oficial de Stripe para Node.js/TypeScript:

npm install stripe @types/stripe

Configura tu clave API (usa variables de entorno):

import Stripe from 'stripe';

const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!, {
  apiVersion: '2023-08-16',
  typescript: true
});

Creación de un Checkout Session

Para cobrar suscripciones recurrentes, crea una sesión de pago:

async function createCheckoutSession(customerId: string, priceId: string) {
  return await stripe.checkout.sessions.create({
    customer: customerId,
    payment_method_types: ['card', 'p24', 'oxxo'],
    line_items: [{
      price: priceId,
      quantity: 1
    }],
    mode: 'subscription',
    success_url: 'https://tudominio.co/success?session_id={CHECKOUT_SESSION_ID}',
    cancel_url: 'https://tudominio.co/cancel',
    locale: 'es'
  });
}
  • Configura tax_id_collection para facturación electrónica en Colombia
  • Usa automatic_tax para manejar IVA automáticamente

Procesamiento de Webhooks

Los webhooks notifican eventos importantes como pagos exitosos o fallidos:

import { NextApiRequest, NextApiResponse } from 'next';

export default async function handler(req: NextApiRequest, res: NextApiResponse) {
  const sig = req.headers['stripe-signature'] as string;
  const endpointSecret = process.env.STRIPE_WEBHOOK_SECRET!;

  let event;
  
  try {
    event = stripe.webhooks.constructEvent(
      req.body,
      sig,
      endpointSecret
    );
  } catch (err) {
    return res.status(400).send(`Webhook Error: ${err.message}`);
  }

  switch (event.type) {
    case 'invoice.payment_succeeded':
      // Actualizar estado de suscripción en tu DB
      break;
    case 'customer.subscription.deleted':
      // Cancelar acceso al servicio
      break;
    default:
      console.log(`Unhandled event type ${event.type}`);
  }

  res.json({ received: true });
}

Manejo de divisas y conversiones

Stripe permite configurar divisas preferidas para tus clientes internacionales:

// Crear precio en múltiples divisas
await stripe.prices.create({
  product: 'prod_XYZ',
  unit_amount: 10000, // $10.00 USD
  currency: 'usd',
  recurring: { interval: 'month' },
  currency_options: {
    cop: {
      unit_amount: 40000 // Conversión aproximada a COP
    },
    mxn: {
      unit_amount: 18000 // Conversión aproximada a MXN
    }
  }
});

Stripe aplica automáticamente el tipo de cambio del día cuando configuras precios en múltiples monedas.

Facturación electrónica para Colombia

Configura los datos fiscales requeridos por la DIAN:

// Al crear un cliente
await stripe.customers.create({
  email: 'cliente@ejemplo.co',
  name: 'Juan Pérez',
  phone: '+573001234567',
  address: {
    line1: 'Carrera 15 # 80-35',
    city: 'Bogotá',
    postal_code: '110231',
    country: 'CO'
  },
  tax_id_data: [{
    type: 'co_nit',
    value: '901234567-8'
  }]
});
  • Stripe genera facturas electrónicas válidas para Colombia
  • Configura el tax_code para aplicar IVA (19%) correctamente

Optimización para Latinoamérica

Mejora la conversión adaptando el flujo de pago:

// Habilitar métodos de pago locales
const paymentMethods = await stripe.paymentMethods.list({
  customer: 'cus_XYZ',
  type: 'card'
});

// Mostrar precios en moneda local
const preferredCurrency = getUserLocaleCurrency(); // Ej: COP, MXN, BRL
const localPrice = await getLocalizedPrice(priceId, preferredCurrency);

Consideraciones clave para la región:

  • Soporte para PSE (Pagos Seguros en Línea) en Colombia
  • Integración con MercadoPago para Argentina y Brasil
  • Pagos en efectivo con OXXO (México) y Boleto (Brasil)

Conclusión y próximos pasos

Integrar Stripe en tu SaaS colombiano te permite aceptar pagos internacionales con seguridad y cumplimiento local. Los ejemplos mostrados cubren los escenarios más comunes para startups tecnológicas en la región.

Para profundizar:

  • Prueba el modo Test con tarjetas de prueba para diferentes países
  • Implementa Stripe Radar para prevenir fraudes
  • Explora Stripe Connect para marketplaces multi-vendedor

¿Te fue útil este artículo?

Déjame tu email y te aviso cuando publique nuevos artículos técnicos.