Multi-Provider Agent
Route payments across Stripe, Asaas, and Mercado Pago automatically. The agent calls codespar_pay — CodeSpar picks the best provider for each transaction.
Route payments across Stripe, Asaas, and Mercado Pago automatically. The agent calls codespar_pay — CodeSpar picks the best provider for each transaction.
Prerequisites
npm install @codespar/sdk @codespar/vercel ai @ai-sdk/openaiYou need active accounts on Stripe, Asaas, and Mercado Pago. CodeSpar prompts for authentication on first use.
How routing works
When the agent calls codespar_pay, CodeSpar inspects the arguments and picks the optimal provider for the region and method:
| PAYMENT METHOD | PROVIDER | WHY |
|---|---|---|
pix | Asaas | Lowest Pix fees, instant settlement |
credit_card | Stripe | Best international card support |
boleto | Mercado Pago | Best boleto infrastructure |
debit_card | Stripe | Card processing via Stripe |
Override automatic routing by passing provider: "stripe" explicitly:
await session.execute("codespar_pay", {
method: "pix",
provider: "mercadopago", // force Mercado Pago instead of default Asaas
amount: 35000,
});Full agent code
import { generateText } from "ai";
import { openai } from "@ai-sdk/openai";
import { CodeSpar } from "@codespar/sdk";
import { getTools } from "@codespar/vercel";
const codespar = new CodeSpar({ apiKey: process.env.CODESPAR_API_KEY });
async function multiProviderAgent(userMessage: string) {
const session = await codespar.sessions.create({
servers: ["stripe", "asaas", "mercadopago"],
});
try {
const tools = await getTools(session);
const result = await generateText({
model: openai("gpt-4o"),
tools,
maxSteps: 10,
system: `Ask customer which payment method they prefer (Pix, card, boleto).
Use codespar_pay — CodeSpar routes to the right provider automatically.`,
prompt: userMessage,
});
return result.text;
} finally {
await session.close();
}
}Automatic fallback
If the primary provider fails, CodeSpar tries the next available provider for that method — no extra code needed:
// If Asaas is down for Pix, CodeSpar automatically falls back to Mercado Pago
const result = await session.execute("codespar_pay", {
method: "pix",
amount: 35000,
currency: "BRL",
// No provider specified — CodeSpar picks best available
});Checking available providers
Use codespar_discover to inspect what's available in your session:
const discovery = await session.execute("codespar_discover", {
domain: "payments",
});
// Returns:
// {
// servers: ["stripe", "asaas", "mercadopago"],
// capabilities: ["pix", "boleto", "credit_card"],
// methods: {
// pix: ["asaas", "mercadopago"],
// boleto: ["mercadopago", "asaas"],
// credit_card: ["stripe", "mercadopago"]
// }
// }