Scheduled Pix (redirect)
Schedule one or recurring Pix payments. This is the exact same
with-redirection journey as Instant Pix — the only
difference is a payment.schedule on the consent. Present a schedule and
the payment becomes scheduled; omit it and it settles immediately.
Method sequence
participants.listMostUsed(subTenantId)(optional) — pick a bank (organisationId+authorisationServerId).consents.create({ organisationId, authorisationServerId, redirectUri, payment })— same as Instant Pix, but thepaymentalso carries aschedule. ReturnsCreatedPayment { id, redirectUrl }.- [redirect] send the payer to
created.redirectUrlto authorize in their bank, then they return to yourredirectUri. payments.getRequest(created.id)— poll the status. Scheduled settlements stayPROGRAMADOuntil their date.
Schedule modes
Provide exactly one of the modes below on payment.schedule:
| Mode | Fields | Meaning |
|---|---|---|
single | date | One payment on a date. |
daily | startDate, quantity | Daily, quantity times. |
weekly | dayOfWeek, startDate, quantity | Weekly on a weekday. |
monthly | dayOfMonth, startDate, quantity | Monthly on a day of month. |
custom | dates[], additionalInformation | Explicit list of dates. |
startDate must be ≥ D+1, at most 60 installments, and the horizon must
be ≤ 2 years from when the consent is created. dayOfWeek uses the API
enum (SEGUNDA_FEIRA … DOMINGO).
Sequence diagram
Carregando diagrama…
Code
Identical to Instant Pix, with a schedule added to
payment. The example below schedules a monthly payment for 12 installments.
const created = await client.consents.create({
organisationId,
authorisationServerId,
redirectUri: 'https://minha-loja.com.br/retorno',
payment: {
value: 150.5,
cpfCnpj: '12345678901',
redirectUri: 'https://minha-loja.com.br/retorno',
creditor,
schedule: { monthly: { dayOfMonth: 10, startDate: '2026-08-01', quantity: 12 } },
// Other modes:
// single: { single: { date: '2026-08-10' } }
// weekly: { weekly: { dayOfWeek: 'SEGUNDA_FEIRA', startDate: '2026-08-03', quantity: 8 } }
// custom: { custom: { dates: ['2026-08-10', '2026-09-10'], additionalInformation: '2x' } }
},
});
// Redirect to created.redirectUrl, then poll payments.getRequest(created.id)CreatedPayment created = client.consents.create(new CreateConsentRequest()
.organisationId(organisationId).authorisationServerId(authorisationServerId)
.redirectUri("https://minha-loja.com.br/retorno")
.payment(ConsentPayment.transfer(150.5, cpf, "https://minha-loja.com.br/retorno", creditor)
.schedule(Schedule.monthly(10, "2026-08-01", 12))));
// Other modes: Schedule.single("2026-08-10"),
// Schedule.weekly(DayOfWeek.SEGUNDA_FEIRA, "2026-08-03", 8)
// Redirect to created.redirectUrl(), then poll payments.getRequest(created.id())let created = try await client.consents.create(CreateConsentRequest(
organisationId: organisationId, authorisationServerId: authorisationServerId,
payment: .transfer(value: 150.5, cpfCnpj: cpf,
redirectUri: "https://minha-loja.com.br/retorno", creditor: creditor,
schedule: .monthly(dayOfMonth: 10, startDate: "2026-08-01", quantity: 12)),
redirectUri: "https://minha-loja.com.br/retorno"))
// Other modes: .single(date: "2026-08-10"),
// .weekly(dayOfWeek: .segundaFeira, startDate: "2026-08-03", quantity: 8)
// Redirect to created.redirectUrl, then poll payments.getRequest(created.id)var created = await client.Consents.CreateAsync(new CreateConsentRequest
{
OrganisationId = organisationId,
AuthorisationServerId = authorisationServerId,
RedirectUri = "https://minha-loja.com.br/retorno",
Payment = ConsentPayment.ForTransfer(150.5, cpf, "https://minha-loja.com.br/retorno", creditor)
with { Schedule = Schedule.ForMonthly(10, "2026-08-01", 12) },
// Other modes: Schedule.ForSingle("2026-08-10"),
// Schedule.ForWeekly(DayOfWeek.SegundaFeira, "2026-08-03", 8)
});
// Redirect to created.RedirectUrl, then poll payments.GetRequestAsync(created.Id)Next steps
- Instant Pix — the immediate version and full flow walkthrough.
- Error handling — handle rejected and expired schedules.
- Pay a QR Code — the JSR (device-signed) alternative.