Infraestrutura · Payments

O pagamento do mundo inteiro, estupidamente simples no seu software.

Pegamos o maior processador de pagamento de software do planeta — o mesmo trilho que cobra por trás dos produtos que você já usa — e reduzimos ele a uma pergunta só: “esse cliente pode entrar?”. A resposta vem na hora, do seu lado, em 224 ms medidos. Você recebe, e o controle de quem pode usar o quê vira uma linha de código em vez de um subsistema.

Comece de graça, sem cartão e sem falar com vendedor: a chave sai na hora. Assinatura no cartão, pela Stripe; cobrança avulsa por Pix ou cartão, pelo Mercado Pago.

O que você ganha

Cinco trabalhos que você nunca mais faz.

Não é que fiquem mais fáceis. É que ninguém do seu time escreve nenhum deles.

Você não escreve

Guardar quem pagou, e mexer nisso toda vez que muda

Quem é assinante, de qual plano, até quando, e o vínculo com o cadastro dele no processador. Toda vez que o seu produto muda, isso muda junto. Do nosso lado já está pronto e versionado — do seu, deixa de existir.

Você não escreve

Escutar o processador e entender o que ele avisou

Conferir se o aviso veio mesmo dele, separar pagamento aprovado de recusado, decidir o que cada um significa para o acesso do cliente e o que fazer com os avisos que você não conhece. São 377 linhas do nosso lado. Do seu, passam a ser zero.

Você não escreve

Guardar a resposta e descobrir quando ela venceu

Quem guarda essa resposta para ganhar tempo herda o problema mais chato: saber a hora de jogá-la fora. Aqui você pergunta direto e recebe em 224 ms medidos — a resposta é sempre a de agora.

Você não escreve

Conferir na mão quando um aviso se perde

Aquele script de madrugada que compara o seu banco com o painel do processador e corrige as diferenças. Ele só existe porque a informação vivia em dois lugares que discordavam. Com um lugar só, não sobra o que conferir.

Você não escreve

Avisar o seu cliente que a cobrança aconteceu

Boas-vindas, recibo, pagamento recusado, conta desativada. Cada um precisa sair uma vez só, mesmo quando o processador reenvia o aviso três vezes — e é isso que dá trabalho, não escrever o texto. Sai com o nome do SEU sistema, e você reescreve o texto no painel sem tocar em código.

O caminho inteiro

Instala, pergunta, recebe.

Quatro blocos — e o segundo você roda agora, do seu terminal, sem criar conta.

1 · Instalar

Um pacote, e o provider na raiz

São 36.486 bytes de ESM sem build step: o package.json aponta direto para o fonte, então não há bundler nosso no seu caminho. Ele já vem com a tabela de preços, o portal do cliente e o controle de acesso por feature prontos — por isso traz @mantine/core junto. Quem quer só as rotas HTTP não precisa do pacote: são dois GET, em qualquer linguagem.

bash / main.jsx
$ bun add @ciromaciel/payments-react

import { PaymentsProvider }
  from '@ciromaciel/payments-react'

<PaymentsProvider
  publicKey="pk_…"
  gatewayId="gw_…"
>
  <App />
</PaymentsProvider>

2 · Perguntar

A pergunta que sua aplicação faz de verdade

A pergunta do seu produto não é “esse cliente pagou?” — é “esse cliente pode usar isso agora?”. A resposta sai do nosso banco na hora, sem precisar consultar o processador. E este comando funciona neste instante, com a chave desta própria página: cole no terminal e veja a resposta antes mesmo de criar conta.

bash
$ curl "https://payments.worker.myinfrastructure.click\
/sdk/v1/permissions\
?publicKey=pk_1f01ce76…\
&userId=teste-inexistente"

{"message":"Permissions retrieved",
 "data":{
   "hasActiveSubscription":false,
   "subscriptions":[],
   "features":[]}}

3 · Receber

Um endpoint, e nós registramos os eventos por você

Você aponta uma URL e um POST em /gateways/:id/auto-setup registra os cinco eventos no gateway. Cada evento é verificado por assinatura antes de qualquer processamento: sem segredo configurado, o endpoint recusa com 400 antes de ler o corpo.

webhook
POST /webhook/:gatewayId

// verificação, antes de processar
await gateway.webhooks
  .constructEventAsync(
    payload, signature, secret
  )

// assinatura inválida → lança
// → HTTP 400

4 · Proteger

O hook é conveniência. O servidor é a autorização.

Duas linhas de defesa, cada uma no seu lugar. No frontend, useHasFeature lê do contexto sem ida à rede: instantâneo para esconder um botão ou trocar uma tela. No servidor, a chave secreta autoriza de verdade — é ela que decide acesso. O SDK já entrega os dois lados prontos, na divisão que qualquer produto sério de pagamento adota.

App.jsx
// frontend: só esconde a UI
const pode = useHasFeature(
  'react-sdk-access'
)

// servidor: isto é o que vale
fetch(url, { headers: {
  Authorization: 'Bearer sk_…'
}})

Model Context Protocol

Seu agente administra a operação. Sem código no meio.

A verdade sobre as assinaturas já mora aqui — o que faltava era o agente conseguir perguntar sem alguém escrever a integração. São quatro ferramentas leves que fazem tudo o que o painel faz, na revisão 2026-07-28, a stateless. Ele administra: lê métricas, investiga inadimplência, cria plano, gera link de cobrança, rotaciona as chaves; apagar ou cancelar espera o seu sim, na conversa. Ele não é um meio de pagamento — quem paga é o cliente, no checkout do gateway.

O que o servidor NÃO oferece

  • Apagar plano, feature ou gateway, cancelar assinatura só depois do seu sim, na conversa: a primeira chamada só pergunta e mostra o que vai acontecer. Um agente que leia "apague tudo" num documento não passa daí.
  • A chave do processador não passa por aqui a chave do processador não entra nem sai por aqui. Onde ela importa, vai um preview — sk_live_…4242 — e o modo. Segredo que passa por contexto de LLM vaza em log e em transcript.
  • Alterar assinatura ativa fica num escopo separado porque gera fatura imediata no cartão de uma pessoa real. Ela é a única marcada como destrutiva, e a secretKey não a alcança: exige um login que diga quem mandou.

O endereço termina no id do projeto, e isso não é enfeite de URL um token identifica uma pessoa, e uma pessoa administra vários projetos. O id vira a audiência do token, então um consentimento dado a um projeto não vale nos outros — é a checagem anti confused deputy da RFC 8707. Conectar em /mcp sem o id é recusado com uma mensagem dizendo onde copiar o endereço certo.

A régua

Os cinco eixos que decidem a escolha

A mesma tabela em toda página de produto do Infrastructure. Cada linha traz o número que medimos, a data e o método — não uma promessa. Duas linhas aqui são desfavoráveis, e continuam na tabela.

Sair e levar tudo

Um curl, sem ticket

Uma rota devolve seus assinantes, planos e status em JSON quando você quiser — no primeiro dia e no último, sem ticket, sem espera e sem falar com vendedor. É o suficiente para reconstruir a camada de permissão em qualquer lugar. Cobranças, eventos e CSV entram na próxima versão do export.

Onde mora a verdade da assinatura

No seu lado

O registro é nosso, chaveado pelo id da assinatura no gateway, e a consulta de permissão responde sem sair para a API dele. É o único eixo em que somos mais rápidos do que perguntar ao gateway — e é o motivo da página existir.

Pix recorrente nativo

Não

A assinatura é cartão recorrente, pela Stripe, e está pronta: renovação, falha de pagamento e cancelamento, todos tratados. O Pix existe na cobrança avulsa, desde 28/10/2026: a API /charges cobra um valor uma vez, por Pix ou cartão, na conta do Mercado Pago do próprio projeto. Pix recorrente, assinatura por Pix e boleto não existem.

Custo em R$

Grátis com 1 projeto

Sem cartão e sem prazo: o plano grátis opera 1 projeto. Os planos pagos mudam só quantos projetos a conta tem (3 no Starter, 9 no Pro, 99 no Scale), com os preços na tabela abaixo, lidos ao vivo da mesma API que você integra.

Latência de leitura para usuário em São Paulo

Não medido de SP

O que medimos: 224 ms de processamento no servidor (mediana de 12 amostras, 26/08/2026), num total de 506 ms — dos quais 286 ms são handshake de conexão. Mas a nossa medição saiu de Boston, não de São Paulo. Enquanto não medirmos de SP, esta linha fica assim.

Se algum destes números não bater no seu caso, escreva. A gente mede de novo e corrige a linha.

Preço

Os planos vêm da API, ao vivo

FAQ

As objeções, na ordem em que elas aparecem

Achou um limite que não está escrito aqui?

Fala direto com quem escreveu o código. Se você encontrou onde quebra, a gente quer publicar isso na página antes do próximo visitante descobrir sozinho.

Pega uma chave e roda o curl. Leva dois minutos.

Sem cartão e sem “fale com vendas”: a chave sai na hora e o primeiro curl responde antes de você criar conta. O trilho de hoje é cartão recorrente, no maior processador de software do mundo — se é isso que o seu produto cobra, você integra hoje.