Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.wepayout.co/llms.txt

Use this file to discover all available pages before exploring further.

Automatic Pix has three interconnected lifecycles: the authorization (the payer’s consent), the schedule (each individual billing cycle), and the payin (the actual money movement). Understanding how they relate is essential for a correct integration.

Authorization Lifecycle

The authorization represents the payer’s ongoing consent to be debited. It is the parent of all schedules — every schedule belongs to one authorization.
Both CANCELED and REJECTED are terminal states. In both cases, all pending schedules linked to the authorization are automatically canceled and no new schedules will be created.

Authorization Status Reference

IDStatusWebhookDescription
1Confirmed✅ YesPayer approved — first schedule is created automatically
2Pending✅ YesAuthorization created, waiting for payer confirmation via QR Code
3Canceled✅ YesCanceled via merchant API or by the payer through their banking app
4Rejected✅ YesPayer declined during QR Code flow, or authorization expired
Canceled vs Rejected: CANCELED means an intentional termination — either by the merchant via API or by the payer revoking consent in their banking app after the authorization was already confirmed. REJECTED means the payer did not approve during the initial QR Code flow, or the authorization request expired.Both behave identically at the schedule level: all active schedules are canceled in cascade.
Active status.The payer scanned the QR Code and approved the recurring authorization via their banking app. The system automatically creates the first schedule using the start_date and amount configured in the authorization.Next possible statuses: Canceled
Initial status.The authorization was created and the QR Code is ready for the payer to scan. No charges occur while in this status.Next possible statuses: Confirmed, Rejected
Terminal status.The authorization was canceled in one of two ways:
  • Merchant via API: Using the Cancel Authorization endpoint.
  • Payer via banking app: The payer revoked the authorization directly in their bank’s interface.
In both cases, all pending schedules linked to this authorization are immediately canceled and no future schedules will be generated.
Terminal status.The payer did not approve the authorization — either by explicitly declining the QR Code or by allowing it to expire without action. All pending schedules are canceled in cascade.

Schedule Lifecycle

Each schedule represents one billing cycle. Schedules are created one at a time — the next cycle is only generated after the current one reaches a definitive state.
Canceling a schedule does not stop future billing. The system automatically creates the next cycle schedule whenever a schedule reaches SCHEDULED or CANCELED status — as long as the authorization is still active. To permanently stop all future charges, you must cancel the authorization.
The schedule amount can only be updated when status is PENDING. Once the schedule moves beyond PENDING, only the authorization amount can be changed — and it will apply to the next cycle. See Update Schedule for details.

Schedule Status Reference

IDStatusWebhookDescription
1PendingNoCreated, waiting to be dispatched to the payment system
2SentNoDispatched — cancellation is not possible at this point
3Scheduled✅ YesConfirmed by payment system — next cycle schedule is created
4On Retry✅ YesAttempt failed, system will retry automatically
5Canceled✅ YesCanceled — next cycle schedule is created if authorization is active
6Paid✅ YesPayment collected successfully
7Canceled RequestedNoCancellation sent to external system, awaiting confirmation
Initial status.The schedule was just created. The system dispatches pending attempts up to 3 days before the due date. The amount can still be updated via API at this stage (if the authorization is variable-amount type).Can be canceled: Yes — cancellation is immediate, no external call required.Next possible statuses: Sent, Canceled
Intermediate status.The schedule was dispatched to the external payment system. Cancellation via API is not allowed while in this status.Next possible statuses: Scheduled
Active status.The payment system confirmed the schedule for the due date. At this point, the system automatically creates the next billing cycle’s schedule (as long as the authorization end_date has not been reached).Can be canceled: Yes — via API, which sends a cancellation request to the external system and transitions to Canceled Requested.Next possible statuses: Paid, On Retry, Canceled Requested
Intermediate status.The payment attempt failed (e.g., insufficient funds) and the system is retrying automatically.Next possible statuses: Paid, Canceled
Terminal status.The schedule was canceled. This can happen in three scenarios:
  • Merchant cancels a PENDING schedule via API: immediate cancellation, next cycle schedule is created.
  • External system returns CANCELLED or ERROR: same behavior, next cycle schedule is created.
  • Authorization is canceled or rejected: cascade cancellation — no next cycle schedule is created.
Next possible statuses: none (terminal)
Terminal status.The payment was successfully collected by the payment system. The metadata.amount in the webhook reflects the exact charged amount.The next cycle schedule was already created when this schedule reached SCHEDULED status.Next possible statuses: none (terminal)
Intermediate status.The merchant requested cancellation via API for a schedule that was already SCHEDULED or ON RETRY. The cancellation request was sent to the external payment system and is awaiting confirmation.Next possible statuses: Canceled

Schedule cancellation constraints

Cancellation via API is blocked in the following conditions:
  • Schedule is in Sent status
  • Schedule is already in a final status (Paid or Canceled)
  • Current time is 22:00 or later (Brazil timezone)
  • There is an active payment attempt scheduled for today

Payin Lifecycle

When a schedule is paid, the actual money movement is tracked as a payin. Intermediate statuses are not notified — your endpoint only receives a webhook on final events.

Payin Status Reference

StatusWebhookDescription
Credited✅ YesPayment received and funds are available
Canceled✅ YesPayment was canceled — no funds transferred
Rejected✅ YesPayment was rejected — no funds transferred

End-to-End Overview


Webhook Summary

EventTriggerWebhook type
Any authorization status changeAll statusesAuthorization webhook
Schedule reaches Scheduled, On Retry, Canceled, or PaidStatus transitionSchedule webhook
Payin credited, canceled, or rejectedFinal payin statusPayin webhook
See Webhooks for full payload details and signature verification.