RedPagos
Uruguay Uruguay cash paymentData paymentFormUrl
Create with the selected method
Select paymentMethodId from your shop's catalogue. Submit the real buyer details required by that route. Use your shop's permitted input currency and display the returned local amount and currency without recalculating them.
// Backend only. Example amounts: use your shop's permitted input currency.
const response = await fetch("https://sandbox.key2pay.ai/api/v1/payments", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.PAYMENT_SECRET}`,
"Content-Type": "application/json",
"Key2Pay-Version": "2026-05-01",
"Idempotency-Key": "your-order-attempt-1"
},
body: JSON.stringify({
"amount": 2000,
"currency": "UYU",
"country": "UY",
"paymentMethodId": "PAYMENT_METHOD_ID_FROM_YOUR_CATALOGUE",
"merchantOrderId": "your-unique-order-id",
"hostedCheckout": false,
"userName": "Buyer Fullname",
"userEmail": "buyer@example.com",
"userPhone": "+59899123456",
"documentId": "BUYER_DOCUMENT"
})
});
const result = await response.json();
if (!response.ok) throw new Error("Review the API error before retrying");
// Keep transactionId; render returned paymentData or open paymentFormUrl.What to display in your checkout
Display the returned paymentData.steps in full, with amountLocal and currencyLocal UYU. For RedPagos, preserve the cash instructions. For bank transfer, display the recipient details returned in those steps. Do not turn the payer's bank account into the recipient account. If the bank returns only paymentData.payUrl, offer a button to continue on that exact bank page.
Uruguay requires the buyer's full name and CI (8 digits) or RUT (12 digits). Bank transfer also requires email, userPhone, payerAccountNumber and payerAccountType (SAVINGS or CHECKING). The account is the payer's account. Review the accepted rounded UYU total before payment.
Confirm the payment
Keep transactionId as the platform identifier and merchantOrderId as your order identifier. Query GET /payments/{transactionId} or handle signed POST webhooks idempotently. Creating instructions, opening a bank link or returning to your site does not confirm a payment. Keep the same Idempotency-Key and request body if an attempt needs recovery.
Webhook contract and signatures →