Sell, charge, and ship inside WhatsApp.
The buyer browses, asks questions, and pays without ever leaving the chat. Your agent generates a Pix QR inline, confirms the payment, issues the NF-e, books the carrier, and drops tracking back into the same thread. No links, no redirects, no app to install.
The whole checkout happens in the bubble.
No redirect, no payment page, no app. The agent quotes, generates a Pix QR inline, watches the settlement webhook, and only then issues the NF-e and books the label — all inside the same WhatsApp thread the buyer was already in.
- Pix QR rendered in-thread — buyer pays from their banking app and comes right back
- Settlement correlation flips the order to paid without a human polling the PSP
- NF-e and tracking land in the same conversation, sealed to the order
The conversation is the easy part.
78% of Brazilian commerce already runs through WhatsApp — but the conversation is the easy 30%. The other 70% is Pix reconciliation, NF-e issuance, carrier labels, and PSP fallback, all stitched by hand and re-solved by every team that ships.
Bounce the buyer to a payment link and pray they come back
Generate a Pix QR inline with codespar_charge — paid in-thread
Poll the PSP webhook and reconcile the payment by hand
Settlement correlation flips the order to paid automatically
Issue the NF-e in a separate portal after the sale closes
codespar_invoice emits the NF-e the moment payment confirms
Copy-paste a tracking code from the carrier dashboard
codespar_ship books the label and posts tracking back to chat
One thread. The whole commerce loop.
Your agent runs the full sequence from a single session. CodeSpar's meta-tools compress every provider — Asaas for Pix, NFe.io for the fiscal doc, Melhor Envio for logistics, Z-API for the channel — into commerce verbs the agent speaks natively. Every step is mandate-signed and sealed into an immutable audit ledger, so the CFO sees exactly what the agent did and why.
codespar_chargeR$ 240 · Pix QR in-chat
AsaasPayment correlated · order paid
codespar_invoiceNF-e 00421 · PDF + XML
NFe.iocodespar_shipLabel booked · tracking sent
Melhor EnvioReceipt + tracking in thread
A single session connects the WhatsApp channel to the meta-tool router. The agent emits commerce intents (charge, invoice, ship); the router resolves each to the tenant's configured provider, signs a mandate, executes through the proxy, and seals the receipt. The buyer only ever sees the conversation.
A few lines. The whole loop.
const session = await codespar.sessions.create({ channel: "whatsapp" }); // Buyer: "Quero 2 × SKU-ABX, pode ser no Pix?" const charge = await session.execute("codespar_charge", { rail: "pix", amount: 240.0, buyer: { name, phone }, items: [{ sku: "SKU-ABX", qty: 2 }], }); await session.paymentStatus(charge.toolCallId); // → "paid" await session.execute("codespar_invoice", { rail: "nfe", buyer, items, companyId }); await session.execute("codespar_ship", { rail: "melhor-envio", to: buyer.address }); // receipt sealed · tracking posted back to the same WhatsApp thread
codespar_chargeInline Pix QR via Asaas, Mercado Pago, or Stripe — buyer pays in-thread.
codespar_invoiceNF-e issued through NFe.io the moment payment confirms; PDF + XML stored.
codespar_shipBooks the Melhor Envio label and returns a tracking code to the chat.
Ship it this afternoon.
Open the sandbox, point a session at your providers, and run the whole loop against real rails in minutes — not the quarter it takes to build it by hand.