Miracle Docs

Event Types

This page lists all webhook events available to merchant endpoints. Each event follows the {entity}.{action} naming convention.

For setup instructions, signature verification, and retry behavior, see the Webhooks guide.


Payment events

EventDescription
payment.createdA new payment has been created.
payment.processingThe payment has been sent to the provider for processing.
payment.succeededThe payment completed successfully. If 3DS was performed, data.threeDSResult contains the authentication outcome.
payment.failedThe payment was declined by the provider. If 3DS was performed, data.threeDSResult contains the authentication outcome.
payment.canceledThe payment was voided before completion.
payment.requires_actionCustomer action is needed (e.g. 3DS authentication). data.action contains the action details, including redirect URL and method.
payment.requires_captureThe payment has been authorized and is awaiting capture.
payment.capturedA previously authorized payment has been captured.
payment.refundedThe payment has been fully refunded.
payment.partially_refundedA partial refund has been applied to the payment. data includes refundedAmount and remainingAmount.

Refund events

EventDescription
refund.createdA refund has been initiated.
refund.succeededThe refund completed successfully.
refund.failedThe refund failed.

Checkout events

EventDescription
checkout.session.createdA new checkout session has been created.
checkout.session.completedThe checkout session completed (payment succeeded).
checkout.session.expiredThe checkout session expired before completion.

Dispute events

EventDescription
dispute.createdA dispute (chargeback) has been opened.
dispute.updatedA dispute has been updated with new information.
dispute.wonThe dispute was resolved in your favor.
dispute.lostThe dispute was resolved against you.

Payout events

EventDescription
payout.createdA payout to a third-party recipient has been initiated.
payout.succeededThe payout completed successfully.
payout.failedThe payout failed.

Settlement events

EventDescription
settlement.finalizedSettlement finalized and financial statement ready for download.

Withdrawal events

EventDescription
withdrawal.createdA withdrawal request has been created.
withdrawal.approvedThe withdrawal has been approved by the operator.
withdrawal.rejectedThe withdrawal has been rejected by the operator. data includes rejectionReason.
withdrawal.canceledThe withdrawal has been canceled by the entity that created it.
withdrawal.succeededThe withdrawal completed successfully.
withdrawal.failedThe withdrawal failed during execution at the provider.

Balance events

EventDescription
balance.availableFunds have transitioned from pending to available after the T+N holding period. data includes amount, currency, and entityType.
balance.threshold_reachedYour balance has reached a configured threshold (low balance alert).

Event data

The event.data field contains the resource object that triggered the event, scoped to your access level. For example, a payment.succeeded event includes the Payment object, and a refund.created event includes the Refund object.

Merchant endpoints receive a limited view: amount, currency, status, and total merchantFee. Fee decomposition (provider fee, tenant fee, platform fee, partner commission) and provider-level details (raw provider status, terminal ID, routing details) are not included in merchant webhook payloads. Tenant and platform endpoints receive progressively more detail.


Subscribing to events

When creating or updating a webhook endpoint, you specify which events to receive using the events array. You can use:

  • Exact event names: ["payment.succeeded", "refund.created"]
  • Wildcards by category: ["payment.*", "refund.*"] — receive all events in those categories.
  • All events: ["*"] — receive every event type listed on this page.
curl -X POST https://api.miracle.com/v1/webhooks/endpoints \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/webhooks/miracle",
    "events": ["payment.*", "refund.*", "dispute.*"]
  }'

You can also browse the available event types via the API:

curl https://api.miracle.com/v1/webhooks/event-types \
  -H "Authorization: Bearer sk_test_..."

On this page