Refunds, webhooks and reports

Conversa Labs

Conversa Labs

Last updated on Jun 27, 2026

Overview

This article covers what happens after the charge is sent: how to return money (refund), how the webhook keeps statuses in sync without you doing anything, and which reports show the financial health of the operation.

The webhook is the channel the gateway uses to tell the platform about every change (paid, overdue, refunded, canceled). That's why it is the source of truth: the platform updates the charge status from the webhook, not from the checkout "success" screen.

Prerequisites

  • Payments module enabled and a connected gateway with the webhook configured.
  • Permission to issue refunds.
  • For the reports, charges/subscriptions recorded in the period.

Step by step

Refund a charge

  1. Open the charge you want to refund (already paid).
  2. Choose refund.
  3. Select full (returns the entire amount) or partial (enter the amount to return).
  4. Confirm. The platform requests the refund from the gateway.
  5. Watch the status change to refunded (or partially refunded) when the gateway confirms.

Check the webhook

  1. In the gateway connection settings, review the webhook URL and the verification secret.
  2. Make sure the URL is registered in the gateway panel.
  3. Run a test and see the status update automatically.

Read the reports

  1. Open the Payments reports.
  2. Filter by period.
  3. Analyze the indicators (revenue, average ticket, MRR, churn) and the breakdowns by status, gateway and currency.

Settings & options

  • Full vs. partial refund: both supported by the current gateways.

  • Webhook: authenticated by each gateway (token in the header on Asaas; signature on Mercado Pago); repeated notifications are handled safely (no duplicated effects).

  • Report indicators:

    Indicator What it shows
    Revenue Total received in the period
    Average ticket Average amount per paid charge
    Discounts granted Sum of the discounts applied
    By status Distribution across paid, pending, overdue, etc.
    By gateway How much came in via Asaas / Mercado Pago
    By currency Breakdowns when there is more than one currency
    MRR Monthly recurring revenue from active subscriptions
    Churn Subscriptions canceled in the period

Use cases

  • Return an amount to a customer who gave up (full refund).
  • Reverse part of a charge (partial refund).
  • Track recurring revenue growth via MRR.
  • Spot subscriber loss via churn.

Tips, limits & best practices

  • Always trust the webhook for status; the checkout screen may render before confirmation.
  • The refund is processed by the gateway β€” the time for the money to reach the customer follows the provider/payment-method rules.
  • Track MRR and churn together for the real picture of recurrence.
  • Keep the webhook URL reachable and the verification secret correct; without it, statuses won't update.

Troubleshooting

  • Status never changes to paid: the webhook isn't arriving or was rejected (wrong signature/token) β€” reconfigure the webhook on the connection.
  • Refund won't complete: confirm the charge was paid and that the gateway supports the requested refund type.
  • Empty report: check the period filter and whether there are charges in the range.
  • MRR looks wrong: confirm the subscription cycles; MRR normalizes each one to the monthly equivalent.

See also