Como aceitar USDC na Stellar com links SEP-7

Com a Cosmos Pay, um link de pagamento na Stellar é uma solicitação SEP-7: seu cliente escaneia o QR code ou abre o link numa carteira como Freighter, LOBSTR ou xBull e aprova ali o pagamento em USDC. O USDC vai direto para a sua conta na Stellar, e a Cosmos Pay marca o link como pago assim que encontra o pagamento pelo memo do link. Para receber USDC, sua conta já precisa ter uma trustline para ele.

O que um link SEP-7 contém

O SEP-7 é o padrão da Stellar para solicitações de pagamento: um link web+stellar:pay, ou o QR code dele, com o seu endereço, o valor, o ativo e o emissor dele, e um memo numérico.

A Cosmos Pay cria um memo para cada link e o procura nos pagamentos que a sua conta recebe. Ela aceita um pagamento com esse memo, para o seu endereço, no ativo do link e, quando o link fixa um valor, exatamente nesse valor, feito depois da criação do link.

Prepare sua conta

  • Sua conta na Stellar precisa existir na rede e ter uma trustline para o USDC antes de poder recebê-lo. A Cosmos Pay não verifica isso quando você adiciona a conta, e um pagamento para uma conta sem a trustline falha depois que seu cliente assina.
  • Adicione a conta à sua organização no dashboard e assine o que ele pedir: essa assinatura comprova que a conta é sua.
  • Para testes, faça o mesmo na Testnet. O Friendbot, o faucet da Testnet, envia XLM de teste para uma conta, e ali os links podem cobrar em XLM.

O que seu cliente precisa

  • Uma carteira da Stellar que abra links SEP-7, como Cosmos Pay Wallet, Freighter, LOBSTR, xBull, Albedo ou Rabet, com o USDC e algum XLM para a taxa de rede. Sem conta na Cosmos Pay.
  • Um pagamento direto em USDC. Uma carteira que converte outro ativo em USDC no caminho (um path payment) não liquida o link.
  • Na Testnet, a carteira configurada para a Testnet antes de pagar: o link não indica a rede, e uma carteira que segue o SEP-7 assume então a rede principal.

Aceite seu primeiro pagamento em USDC na Stellar

  1. Mude para Sandbox

    Entre no dashboard e escolha Sandbox no topo. Os links que você cria ali funcionam na Stellar Testnet e não movimentam dinheiro real.

  2. Adicione sua conta da Stellar

    Confira se a conta existe e tem uma trustline para o USDC, depois adicione-a nas configurações da sua organização e assine o que o dashboard pedir.

  3. Crie o link

    Em Pagamentos, escolha Criar link de pagamento, selecione Stellar, o valor (ou nenhum) e USDC, depois sua conta e, se quiser, uma mensagem.

  4. Pague com uma carteira

    Abra a página de pagamento e escaneie o QR code com uma carteira da Stellar configurada na mesma rede, ou abra o link no mesmo dispositivo. Aprove o pagamento, e o checkout passa para Pago assim que a Cosmos Pay o encontra.

  5. Confirme no seu servidor

    Adicione um endpoint de webhook no dashboard. Quando o pagamento é confirmado, a Cosmos Pay envia PAYMENT_INTENT_SUCCEEDED, assinado com HMAC-SHA256. Entregue o pedido quando ele chegar.

  6. Mude para Produção

    Escolha Produção e crie uma chave de API de produção (começa com prod_). Os links passam a funcionar na rede principal da Stellar, onde o USDC da Circle é a predefinição.

Crie o link no seu servidor

Chame POST /v1/payment-intents/pay com a sua conta como destino, o valor e, para USDC, o código do ativo com o emissor dele, ou use client.paymentIntents.createPay no SDK em TypeScript: Stellar é o valor padrão de chain. A resposta traz o link (o uri dele começa com web+stellar:pay) e o QR code.

Quando você conhece a conta do seu cliente, uma intenção de transação (POST /v1/payment-intents/tx, ou createTx no SDK) retorna, em vez disso, uma transação não assinada para ele assinar. Ela precisa ser assinada em até cinco minutos.

Se você definir o seu próprio memo, use-o para um único pagamento: o mesmo memo com condições diferentes é recusado.

Bom saber

  • Você pode deixar o valor vazio para que seu cliente o escolha. Uma mensagem de até 300 caracteres aparece na carteira do seu cliente.
  • Com a sua própria taxa no pagamento, o checkout pede a conta do seu cliente e monta uma única transação que paga você e a sua carteira de taxas.
  • No dashboard, um link da Stellar pendente tem uma verificação que o liquida a partir de um hash de transação.
  • Um pagamento que chega depois que o link expirou é liquidado enviando o hash da transação dele para POST /v1/payment-intents/:id/validate.
  • A carteira do seu cliente paga a taxa de rede da Stellar, em XLM. Os pagamentos privados, que ocultam o valor na blockchain, funcionam na Stellar em XLM, por enquanto na Testnet.

Perguntas e respostas.

Pagamentos por rede:Pagamentos na StellarPagamentos na SolanaPagamentos na Monad

Por que um pagamento para a minha conta falhou?

O motivo mais comum é a falta de uma trustline para o USDC na conta que recebe. Adicione a trustline, depois crie um novo link e envie de novo.

Quais carteiras podem pagar um link SEP-7?

Qualquer carteira da Stellar que abra links SEP-7, como Cosmos Pay Wallet, Freighter, LOBSTR, xBull, Albedo ou Rabet.

Meu cliente pode pagar um link em USDC com XLM?

Não. Só um pagamento direto em USDC liquida o link: um pagamento que converte XLM em USDC no caminho não liquida.

Posso testar sem dinheiro real?

Sim. No Sandbox e com chaves de teste (dv_), os links funcionam na Stellar Testnet, onde o USDC é predefinido e o Friendbot envia XLM de teste.

Comece a aceitar stablecoins.

Crie uma conta grátis, gere uma chave de teste e envie hoje o seu primeiro link de pagamento.

Fale com a gente

Dúvidas sobre planos, integração ou pagamentos protegidos: conte para nós e respondemos por e-mail.

Usamos estes dados só para responder a você.