Primeiros passos

Tudo o que você precisa antes do seu primeiro pagamento Cosmos Pay (o que é, como um pagamento flui e as duas formas de integração).

O Cosmos Pay permite que você aceite pagamentos na Stellar, Solana e Monad usando intenções de pagamento: você descreve um pagamento, o pagador o conclui a partir da própria carteira e você o confirma on-chain. Em torno desse núcleo você também tem swaps (em cada rede e entre elas), webhooks, produtos, clientes e análises.

Há duas formas de integração, e a maioria dos aplicativos usa ambas em conjunto:

Como funciona um pagamento

Todo pagamento passa pelas mesmas três etapas (aqui com o SDK, na Stellar):

  1. Seu servidor cria uma intenção com sua chave de API secreta, por exemplo com client.paymentIntents.createPay({ ... }). Você recebe de volta um uri SEP-7 e um qr para mostrar ao pagador.
  2. O pagador a conclui na sua carteira Stellar (Freighter, xBull, Rabet, LOBSTR ou Albedo). No navegador isso é uma única chamada: new WebClient().pay(intent), que retorna um txHash on-chain.
  3. Seu servidor valida esse hash com intent.validate(txHash), o que atualiza o status do pagamento e dispara um webhook para seus endpoints.

Na Solana e na Monad, informe chain, com o SDK (createPay({ chain: 'solana', ... }), a partir da versão 2.2) ou pela API REST: você recebe um link Solana Pay ou EIP-681 em vez de um SEP-7, o pagador paga de qualquer carteira dessa rede, e a API de Pagamentos detecta o pagamento on-chain e dispara os mesmos webhooks.

Testnet vs mainnet

Você nunca escolhe a rede no código. Ela é decidida pelo prefixo da sua chave de API: chaves dv_ rodam na testnet, chaves prod_ rodam na mainnet. Desenvolva com uma chave dv_ e depois troque por uma chave prod_ para entrar em produção.

Antes de começar

  1. Obtenha uma chave de API: entre na plataforma para desenvolvedores e gere uma. Veja Obtenha sua chave de API.
  2. Instale o SDK: npm install @cosmosapp/pay_sdk (Node.js ≥ 18). Veja Instalação.
  3. Mantenha a chave no seu servidor. Ela é secreta; o cliente web no navegador nunca precisa dela.

Seu primeiro pagamento

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 passos

Nesta página