Primeros pasos

Todo lo que necesitas antes de tu primer pago con Cosmos Pay, desde qué es y cómo fluye un pago hasta las dos formas de integrar.

Cosmos Pay te permite aceptar pagos en Stellar, Solana y Monad usando intenciones de pago: describes un pago, el pagador lo completa desde su propia billetera, y tú lo confirmas en cadena. En torno a ese núcleo también obtienes swaps (en cada red y entre ellas), webhooks, productos, clientes y analíticas.

Hay dos formas de integrar, y la mayoría de las aplicaciones usan ambas juntas:

Cómo funciona un pago

Cada pago atraviesa los mismos tres pasos (aquí con el SDK, en Stellar):

  1. Tu servidor crea una intención con tu clave de API secreta, p. ej. client.paymentIntents.createPay({ ... }). Obtienes un uri SEP-7 y un qr para mostrarle al pagador.
  2. El pagador la completa en su billetera de Stellar (Freighter, xBull, Rabet, LOBSTR o Albedo). En el navegador esto es una sola llamada: new WebClient().pay(intent), que devuelve un txHash en cadena.
  3. Tu servidor valida ese hash con intent.validate(txHash), lo que actualiza el estado del pago y dispara un webhook a tus endpoints.

En Solana y Monad, indica chain, con el SDK (createPay({ chain: 'solana', ... }), desde la versión 2.2) o con la API REST: recibes un enlace Solana Pay o EIP-681 en lugar de uno SEP-7, el pagador lo paga desde cualquier billetera de esa red, y la API de pagos detecta el pago en cadena y dispara los mismos webhooks.

Testnet vs mainnet

Nunca eliges la red en el código: la decide el prefijo de tu clave de API: las claves dv_ corren en testnet, las claves prod_ corren en mainnet. Desarrolla con una clave dv_, luego cámbiala por una clave prod_ para salir a producción.

Antes de empezar

  1. Obtén una clave de API: inicia sesión en la plataforma de desarrolladores y genera una. Consulta Obtén tu clave de API.
  2. Instala el SDK: npm install @cosmosapp/pay_sdk (Node.js ≥ 18). Consulta Instalación.
  3. Mantén la clave en tu servidor. Es secreta; el cliente web del navegador nunca la necesita.

Tu primer pago

import { Client, Assets } from '@cosmosapp/pay_sdk';

const client = new Client({ apiKey: process.env.COSMOS_PAY_API_KEY });

const intent = await client.paymentIntents.createPay({
  destination: 'G...YOUR_MERCHANT_ACCOUNT',
  amount: '10',
  asset: Assets.XLM,
  msg: 'Order #1001',
});

console.log(intent.uri); // show as a link / button
console.log(intent.qr);  // render this data: URL as an <img>

Próximos pasos

En esta página