Skip to content

Search documentation

Try “webhook signature” or “amountUsd”. Use Tab or arrow keys to explore results.

    Open app
    Open app

    Documentation navigation

    Webhook events

    Recover recent events and understand the signed delivery envelope.

    On this page

    List events

    GET/v1/profiles/{profileId}/webhook-events

    Authentication: Bearer key · Required scope: invoices.read

    Send Authorization: Bearer. No request body. Returns 200 with {items, nextCursor}, newest first, covering the last 30 days.

    Items contain the invoice as it is when listed. The endpoint excludes webhook.test events, not test-mode payment events. Store and mode boundaries still apply.

    List events
    FieldDetails
    profileIdpath · required UUIDThe profile that owns your API key.
    limitquery · integer1–100; default 50.
    cursorquery · stringThe previous response’s nextCursor. Omit for the first page.
    typequery · event nameOptional single event type from the list below.

    Event envelope

    Event envelope
    FieldDetails
    id, typestringsStable event ID and event type. Deduplicate by id.
    livemodebooleanfalse for test-mode payments.
    sequenceintegerIncreasing sequence per invoice; arrival order is not guaranteed.
    timestamptimestampEvent creation time in UTC.
    data.invoiceobjectOwner invoice representation, including metadata and payment/settlement state.
    data.heldobject | nullFor invoice.held: amount in base units, reason and nullable optionId. Otherwise null.

    Event types

    Event types
    FieldDetails
    invoice.detectedpaymentA transfer was observed; confirmation is still needed.
    invoice.partially_paidpaymentConfirmed amount is below the amount owed.
    invoice.paidpaymentPayment is complete. Verify canonical state before fulfillment.
    invoice.settledsettlementFunds settled into the profile wallet.
    invoice.expired, invoice.canceledclosureCheckout expired or the invoice was canceled.
    invoice.heldheld moneyMoney is held separately for the payer.
    invoice.openpaymentA chain reorganization removed the observed payment.
    invoice.reopenedpaymentAn expired, partly paid invoice was reopened.

    Errors

    Responses use {error: {code, message}}. Missing or invalid credentials return 401; missing scope or a different profile returns 403. Objects outside the caller’s store or mode are hidden with 404.

    Invalid values return 422 invalid_value. Rate limiting returns 429 rate_limited with Retry-After. A starting network can return 503 network_not_ready; an unexpected server error returns 500 internal.

    Forwend documentation Test first. Confirm on your server.