Integração com IA (Cursor / Lovable / v0)
Use inteligência artificial para acelerar e blindar a integração do Plasma Checkout no seu e-commerce.
Visão Geral
Se você utiliza assistentes de código e geradores de IA, como Cursor, Lovable, v0.dev, Bolt.new, Claude ou ChatGPT, pode deixar que a própria IA escreva a integração com o Plasma Checkout: vitrine com o catálogo, carrinho com variante e quantidade, link de checkout e o webhook que libera o pedido.
Esta página serve de contexto direto para essas ferramentas. Os prompts mandam a IA conferir o que gerou contra a API de verdade, com chaves de teste, antes de você colocar no ar.
Como Alimentar a IA
Gere um par de chaves de TESTE
No painel, vá em Loja → API Keys e gere um par de ambiente test
(pk_test_... e sk_test_...). São essas que você entrega para a IA.
O prompt manda a IA fazer chamadas reais na API para conferir o que gerou,
antes e depois de escrever o código. Com chaves test, as sessões de
checkout criadas nessa verificação ficam marcadas como teste e não se
misturam às suas vendas.
Copie o Prompt de Integração
Escolha o prompt da sua ferramenta nas abas abaixo e cole no chat.
Forneça as API Keys como Variáveis
Informe à IA para ler PLASMA_PUBLIC_KEY e PLASMA_SECRET_KEY do arquivo .env, nunca escritas direto no código, e usá-las só no backend.
Gere a Integração Completa
A IA monta a listagem de produtos com variantes, o carrinho, a criação do link de checkout e o receptor de webhooks.
Troque para as chaves de produção
Com a verificação passando, gere o par live e substitua as variáveis de
ambiente. Nenhuma linha de código precisa mudar: o par de chaves é o que
define o ambiente.
O catálogo é o mesmo nos dois ambientes. Um produto criado com chave
pk_test_ aparece na sua loja como qualquer outro, porque só a sessão de
checkout distingue teste de produção. Por isso o roteiro de verificação
apaga o produto de sonda ao final. Se a IA interromper no meio, confira em
Produtos se sobrou algum item de teste antes de ir para produção.
Prompts Prontos para Copiar e Colar
Os quatro prompts apontam a IA para
llms-api.txt, nossa referência de
integração em texto puro: contrato completo com request e response reais de
autenticação, produtos, checkout, pedidos, webhooks e tabela de erros, num
arquivo só, com um roteiro de verificação para a IA executar. Se a sua
ferramenta não acessa a internet, baixe o arquivo e anexe ao contexto.
Você é um Engenheiro de Software Sênior especialista em integrações de e-commerce.
Integre o Plasma Checkout no meu projeto usando o SDK oficial.
ANTES DE ESCREVER CÓDIGO: leia https://plasmacheckout.com/llms-api.txt e rode
os curls de verificação da seção 0.1 com as chaves de teste (pk_test_/sk_test_).
Só entregue o código depois que passarem.
1. Instale @plasmacheckout/sdk na versão 0.4.0 ou mais nova (a 0.2.0 manda
preço em reais e a API recusa). Crie lib/plasma.ts, só de servidor:
new PlasmaSDK({ apiKey: PLASMA_PUBLIC_KEY, secretKey: PLASMA_SECRET_KEY }).
2. CATÁLOGO: plasma.products.list({ status: "active", limit: 100, cursor }),
paginado por pagination.nextCursor, em cache no backend (limite de 60
requisições por minuto por chave). product.variants vazio: o produto é a
unidade vendida. Com variantes, preço e estoque por variante, seletor por
product.options e variant.optionValues. Estoque nunca impede venda.
3. CHECKOUT: plasma.checkout.createLink({ lineItems: [{ productId, variantId,
quantity }], successUrl, cancelUrl }). variantId obrigatório quando o
produto tem variantes. Salve data.checkoutToken no pedido e redirecione
para data.checkoutUrl exatamente como veio.
4. DINHEIRO é centavo inteiro em campos *Cents: priceCents 7990 é R$ 79,90.
5. ERROS: capture PlasmaError e decida por erro.code (VARIANT_REQUIRED,
VARIANT_NOT_FOUND, PRODUCTS_NOT_FOUND, INVALID_LINE_ITEMS, UNAUTHORIZED,
RATE_LIMITED). O status HTTP está em erro.statusCode.
6. WEBHOOK: registre com plasma.webhooks.endpoints.create({ url, events:
["order.paid", "order.cancelled", "order.refunded"] }) e guarde data.secret
(aparece uma vez só). No receptor, leia o corpo CRU com req.text() e valide
com verifyWebhookSignature. "data" é o pedido inteiro; data.checkoutToken
liga ao carrinho. order.paid libera; cancelled e refunded revertem.
7. A successUrl NÃO confirma pagamento: a página de obrigado lê o pedido no
meu banco, atualizado pelo webhook.
Código completo, tipado em TypeScript e modular.Integre o fluxo de checkout do Plasma Checkout na minha aplicação.
Antes de codar, leia https://plasmacheckout.com/llms-api.txt: ele tem o
contrato real da API e, na seção 0.1, curls de verificação para rodar
antes e depois da implementação, com chaves de teste.
Regras:
1. Toda chamada ao Plasma acontece no BACKEND, com os headers
X-PLASMA-Public-Key e X-PLASMA-Secret-Key lidos do .env.
2. A vitrine lê GET https://api.plasmacheckout.com/api/sdk/products?status=active
em cache. Produto com "variants" tem preço e estoque por variante.
3. "Finalizar compra" faz POST em
https://api.plasmacheckout.com/api/sdk/checkout/create-link com:
{
"lineItems": [
{ "productId": "id_do_produto", "variantId": "id_da_variante", "quantity": 2 }
],
"successUrl": "https://meusite.com/obrigado",
"cancelUrl": "https://meusite.com/carrinho"
}
variantId só vai quando o produto tem variantes. O preço vem do catálogo.
4. Salve data.checkoutToken no pedido e redirecione para data.checkoutUrl.
5. Todo valor monetário é inteiro em CENTAVOS, em campos terminados em Cents.
6. O pagamento é confirmado pelo webhook order.paid, nunca pela volta do
comprador à successUrl.Crie uma vitrine e um carrinho em React + Tailwind CSS e integre a
finalização com o Plasma Checkout.
Antes de codar, leia https://plasmacheckout.com/llms-api.txt e rode os curls
de verificação da seção 0.1, sempre com as chaves de teste.
1. A vitrine lista os produtos do Plasma (GET /api/sdk/products) a partir do
backend, em cache. Produto com variantes mostra um seletor por atributo
(product.options e variant.optionValues), e o preço é o da variante.
2. O carrinho guarda { productId, variantId, quantity } de cada linha.
3. "Finalizar compra" envia o carrinho para o meu backend, que faz POST em
https://api.plasmacheckout.com/api/sdk/checkout/create-link com
"lineItems", autenticado com X-PLASMA-Public-Key e X-PLASMA-Secret-Key.
4. O backend salva data.checkoutToken e devolve data.checkoutUrl ao front.
5. O front redireciona com spinner e botão desabilitado durante a chamada.
6. Preços em centavos inteiros: divida por 100 só para exibir.Integre o meu sistema com a API do Plasma Checkout (https://api.plasmacheckout.com).
0) Leia antes https://plasmacheckout.com/llms-api.txt e execute os curls da
seção 0.1, antes e depois de implementar, com chaves de teste.
1) Autentique com os headers X-PLASMA-Public-Key e X-PLASMA-Secret-Key, do
mesmo ambiente (misturar test com live devolve 401), só no backend.
2) Catálogo: GET /api/sdk/products. "variants" vazia: o produto é a unidade
vendida. Com variantes, preço e estoque são por variante.
3) Checkout: POST /api/sdk/checkout/create-link com "lineItems"
([{ "productId", "variantId", "quantity" }]), "successUrl" e "cancelUrl".
variantId é obrigatório quando o produto tem variantes.
4) Todo dinheiro é inteiro em centavos, em campo terminado em "Cents".
5) Salve "data.checkoutToken" e redirecione para "data.checkoutUrl".
6) Webhook: registre em POST /api/sdk/webhooks/endpoints, guarde o "secret",
valide X-PLASMA-Signature ("sha256=<hex>") sobre o corpo CRU. Nos avisos
de pedido, "data" é o pedido inteiro e "data.checkoutToken" liga ao
carrinho. Só "order.paid" confirma pagamento.
7) Trate erros pelo campo "code": VARIANT_REQUIRED, VARIANT_NOT_FOUND,
PRODUCTS_NOT_FOUND, INVALID_LINE_ITEMS, VALIDATION_ERROR, UNAUTHORIZED
e RATE_LIMITED (respeitando Retry-After).Regras de Conexão com o SDK (Para Contexto da IA)
import { PlasmaSDK, PlasmaError } from '@plasmacheckout/sdk';
// 1. Instanciação segura, só no servidor (sempre ler do .env)
const plasma = new PlasmaSDK({
apiKey: process.env.PLASMA_PUBLIC_KEY!,
secretKey: process.env.PLASMA_SECRET_KEY!,
});
// 2. Checkout a partir do carrinho. O preço vem do catálogo; variantId é
// obrigatório quando o produto tem variantes.
try {
const { data } = await plasma.checkout.createLink({
lineItems: [
{ productId: 'id_do_produto', variantId: 'id_da_variante', quantity: 2 },
],
successUrl: 'https://seuecommerce.com/sucesso',
cancelUrl: 'https://seuecommerce.com/carrinho',
couponCode: 'DESCONTO10',
metadata: { utm_source: 'instagram' },
});
// Guarde data.checkoutToken no seu pedido e redirecione para data.checkoutUrl
console.log('Checkout gerado:', data.checkoutUrl);
} catch (error) {
if (error instanceof PlasmaError) {
console.error(`Erro Plasma [${error.code}]: ${error.message} (HTTP ${error.statusCode})`);
} else {
console.error('Erro de conexão ou de rede:', error);
}
}Boas Práticas para Automações de IA
Atenção com chaves de produção (sk_live_...): confira se a sua ferramenta de IA não escreveu chaves reais em arquivos versionados. Use sempre variáveis de ambiente.
Pagamento se confirma pelo webhook order.paid. O comprador pode voltar para a successUrl antes de o Pix ser pago. E nunca use GET /api/sdk/checkout/:token para conferir pagamento: é a rota que abre o checkout e conta como novo início de checkout nos pixels de marketing.