Neste tutorial você vai instalar o @sinnu/sdk, criar um link que aceita Pix e cartão, montar a URL do checkout e listar transações de forma tipada no backend.
Pré-requisitos
- Node.js 18 ou superior.
- Uma API key
sk_live_.... Veja Autenticação.
Passo 1: instale o SDK
bash
pnpm add @sinnu/sdkPasso 2: configure a API key
Exporte a chave secreta como variável de ambiente:
bash
export SINNU_API_KEY="<SUA_CHAVE_DE_API>"Passo 3: inicialize o client
sinnu.ts
import { Sinnu } from "@sinnu/sdk";
export const sinnu = new Sinnu({
apiKey: process.env.SINNU_API_KEY!,
});Passo 4: crie um link de pagamento
Cobre R$ 99,00 aceitando Pix e cartão até 12x:
criar-link.ts
import { sinnu } from "./sinnu";
const link = await sinnu.links.create({
title: "Mentoria 1:1",
description: "Sessão individual",
priceMode: "fixed",
amountCents: 9900,
methods: ["pix", "credit_card"],
maxInstallments: 12,
interestMode: "pass_to_customer",
threeDsMode: "always",
});
console.log("Checkout:", sinnu.checkout.url(link.slug));Valores em centavos
amountCents é sempre um inteiro em centavos. R$ 99,00 vira 9900.
Passo 5: acompanhe as transações
Liste as transações aprovadas. Para grandes volumes, use listAll, que pagina sozinho.
transacoes.ts
import { sinnu } from "./sinnu";
for await (const tx of sinnu.transactions.listAll({ status: "approved" })) {
console.log(tx.id, tx.method, tx.amount);
}Passo 6: trate erros
Capture falhas com as classes de erro tipadas para reagir a cada situação.
erros.ts
import { SinnuAuthError, SinnuValidationError, SinnuError } from "@sinnu/sdk";
import { sinnu } from "./sinnu";
try {
await sinnu.links.create({
title: "Teste",
priceMode: "fixed",
amountCents: 9900,
methods: ["pix"],
});
} catch (err) {
if (err instanceof SinnuAuthError) {
console.error("API key inválida: verifique SINNU_API_KEY");
} else if (err instanceof SinnuValidationError) {
console.error("Payload inválido:", err.body?.message);
} else if (err instanceof SinnuError) {
console.error(err.statusCode, err.message);
}
}Fechamento
Combine o SDK com webhooks para conciliar pagamentos. Veja Conciliar pagamentos com webhooks e a página do SDK.