Hotmart · AsyncAPI Specification

Hotmart Webhooks

Version

View Spec View on GitHub CompanyCreator EconomyDigital ProductsOnline CoursesE-CommercePaymentsSubscriptionsAffiliate MarketingWebhooksLearning ManagementBrazilAsyncAPIWebhooksEvents

AsyncAPI Specification

hotmart-webhooks.yml Raw ↑
generated: '2026-08-04'
method: searched
source: https://developers.hotmart.com/docs/en/2.0.0/webhook/purchase-webhook/
spec_type: Webhooks
asyncapi_published: false
asyncapi_note: >-
  Hotmart publishes no AsyncAPI (or CloudEvents / EventCatalog) document for its
  event surface, and no AsyncAPI file was found on the docs host, on the API
  hosts, or in the Hotmart-Org GitHub organization. The event catalog below is
  the webhook surface Hotmart documents in prose, captured as-is. No AsyncAPI
  has been generated on Hotmart's behalf.
description: >-
  Hotmart's event surface is a webhook ("postback") integration configured
  per-product in the Hotmart platform. It notifies an integrator endpoint when
  purchases, subscriptions, members-area activity and physical-product logistics
  change state. Two independently versioned event schemas exist, 1.0.0 and
  2.0.0; the version is chosen when the webhook configuration is created and
  arrives on every payload in a `version` field.
docs:
  overview: https://developers.hotmart.com/docs/en/1.0.0/webhook/about-webhook/
  using: https://developers.hotmart.com/docs/en/1.0.0/webhook/using-webhook/
  response_codes: https://developers.hotmart.com/docs/en/1.0.0/webhook/http-response-codes-webhook/
  help_center: https://help.hotmart.com/en/article/360001491352/how-do-i-set-up-my-product-s-api-using-the-webhook-postback-
transport:
  style: HTTP POST to a subscriber-provided URL
  configuration: >-
    Created in the Hotmart platform per product; the events to receive and the
    receiving address are selected there. Integration is a three-step flow —
    create a receiving endpoint, configure product/events/address, test.
  authentication:
    mechanism: shared secret
    header: X-HOTMART-HOTTOK
    field: hottok
    description: >-
      Each Hotmart account has a unique token. It is sent as X-HOTMART-HOTTOK in
      the HTTP header of every request and Hotmart recommends validating it
      before processing the payload. Changing the token requires contacting
      Hotmart support. There is no HMAC body signature and no timestamp/replay
      defence.
  envelope_fields:
    id: unique identification code of the event received (the dedupe key)
    creation_date: event creation date, in milliseconds since 1970-01-01T00:00:00Z
    event: the event name (see events below)
    version: the event schema version — 1.0.0 or 2.0.0
    data: the event payload
    hottok: the account shared secret (also sent as a header)
  event_history:
    retention_days: 60
    where: the webhook configuration screen in the Hotmart platform
  delivery_status_codes:
    - status: 2XX
      meaning: All good — delivery accepted.
    - status: 400
      meaning: The receiving service identified a missing or invalid required parameter.
    - status: 401
      meaning: >-
        The receiving service is requiring a key for authentication. Check that
        it validates `hottok` and is not requiring a different key.
    - status: 404
      meaning: The receiving service URL does not exist.
    - status: 408
      meaning: >-
        Connection established and event triggered, but the receiver did not
        respond within the expected time.
    - status: 5XX
      meaning: Receiver connected but did not respond within the expected time limit.
    - status: -1
      meaning: >-
        Receiver terminated the connection unexpectedly without reporting the
        reason. Hotmart's own sentinel value, not an HTTP status.
  retry_policy: null
  retry_note: Hotmart documents no retry/backoff schedule for failed deliveries.
versions:
  - version: 2.0.0
    status: current
    events: 8 event families
  - version: 1.0.0
    status: legacy
    note: >-
      Still selectable and documented, but new fields (order bump, buyer
      details, currency, variants, shipping, offer metadata) have been added
      only to 2.0.0 since 2022.
events:
  - name: PURCHASE_APPROVED
    family: purchase
    version: 2.0.0
    docs: https://developers.hotmart.com/docs/en/2.0.0/webhook/purchase-webhook/
    description: A purchase was approved.
  - name: PURCHASE_COMPLETE
    family: purchase
    version: 2.0.0
    description: A purchase completed (warranty period elapsed).
  - name: PURCHASE_CANCELED
    family: purchase
    version: 2.0.0
    description: A purchase was canceled.
  - name: PURCHASE_BILLET_PRINTED
    family: purchase
    version: 2.0.0
    description: A bank payment slip (boleto) was generated for a purchase.
  - name: PURCHASE_PROTEST
    family: purchase
    version: 2.0.0
    description: A purchase entered dispute.
  - name: PURCHASE_REFUNDED
    family: purchase
    version: 2.0.0
    description: A purchase was refunded.
  - name: PURCHASE_CHARGEBACK
    family: purchase
    version: 2.0.0
    description: A purchase was charged back.
  - name: PURCHASE_EXPIRED
    family: purchase
    version: 2.0.0
    description: A purchase expired without payment.
  - name: PURCHASE_DELAYED
    family: purchase
    version: 2.0.0
    description: Payment for a purchase is delayed.
  - name: PURCHASE_OUT_OF_SHOPPING_CART
    family: cart
    version: 2.0.0
    docs: https://developers.hotmart.com/docs/en/2.0.0/webhook/cart-abandonment-webhook/
    description: Cart abandonment — a lead left checkout without completing the purchase.
  - name: SUBSCRIPTION_CANCELLATION
    family: subscription
    version: 2.0.0
    docs: https://developers.hotmart.com/docs/en/2.0.0/webhook/cancel-subscription-webhook/
    description: A subscription was cancelled.
  - name: SWITCH_PLAN
    family: subscription
    version: 2.0.0
    docs: https://developers.hotmart.com/docs/en/2.0.0/webhook/switch-plan-webhook/
    description: A subscriber changed plan.
  - name: UPDATE_SUBSCRIPTION_CHARGE_DATE
    family: subscription
    version: 2.0.0
    docs: https://developers.hotmart.com/docs/en/2.0.0/webhook/update-subscription-charge-date/
    description: A subscription's billing date changed.
  - name: CLUB_FIRST_ACCESS
    family: club
    version: 2.0.0
    docs: https://developers.hotmart.com/docs/en/2.0.0/webhook/club-first-access/
    description: A student accessed the members area (Hotmart Club) for the first time.
  - name: CLUB_MODULE_COMPLETED
    family: club
    version: 2.0.0
    docs: https://developers.hotmart.com/docs/en/2.0.0/webhook/club-module-completed/
    description: A student completed a module in the members area.
  - name: ORDER_FULFILLMENT
    family: logistics
    version: 2.0.0
    docs: https://developers.hotmart.com/docs/en/2.0.0/webhook/order-fulfillment-webhook/
    description: >-
      Logistics data for a physical-product order — shipping type
      (FIXED_PRICE / FLAT_RATE / FREE_SHIPPING), carrier / fulfilment partner
      (CORREIOS, MONTINK, UICLAP, MANUAL, PARTNER).
partner_managed_webhooks:
  description: >-
    Authorized physical-product business partners manage their own webhook
    registrations through the REST API rather than the platform UI.
  operations:
    - method: POST
      url: https://developers.hotmart.com/physicalproducts/api/v1/webhook
      docs: https://developers.hotmart.com/docs/en/v1/physical-product/pp-webhook-create/
    - method: PUT
      url: https://developers.hotmart.com/physicalproducts/api/v1/webhook/:webhook_id
      docs: https://developers.hotmart.com/docs/en/v1/physical-product/pp-webhook-update/
    - method: DELETE
      url: https://developers.hotmart.com/physicalproducts/api/v1/webhook/:webhook_id
      docs: https://developers.hotmart.com/docs/en/v1/physical-product/pp-webhook-delete/
payload_enums:
  purchase_status:
    - APPROVED
    - BLOCKED
    - CANCELLED
    - CHARGEBACK
    - COMPLETE
    - EXPIRED
    - NO_FUNDS
    - OVERDUE
    - PARTIALLY_REFUNDED
    - PRE_ORDER
    - PRINTED_BILLET
    - PROCESSING_TRANSACTION
    - DISPUTE
    - REFUNDED
    - STARTED
    - UNDER_ANALISYS
    - WAITING_PAYMENT
  subscription_status:
    - ACTIVE
    - INACTIVE
    - DELAYED
    - OVERDUE
    - STARTED
    - EXPIRED
    - CANCELLED_BY_CUSTOMER
    - CANCELLED_BY_SELLER
    - CANCELLED_BY_ADMIN
  payment_type:
    - BILLET
    - CASH_PAYMENT
    - CREDIT_CARD
    - DIRECT_BANK_TRANSFER
    - DIRECT_DEBIT
    - ECHECK
    - FINANCED_BILLET
    - FINANCED_INSTALLMENT
    - GOOGLE_PAY
    - HOTCARD
    - HYBRID
    - MANUAL_TRANSFER
    - PAYPAL
    - PAYPAL_INTERNACIONAL
    - PICPAY
    - SAMSUNG_PAY
    - WALLET
  commission_source:
    - PRODUCER
    - COPRODUCER
    - AFFILIATE
    - ADDON
x-evidence:
  fetched: '2026-08-04'
  urls:
    - https://developers.hotmart.com/docs/en/2.0.0/webhook/purchase-webhook/
    - https://developers.hotmart.com/docs/en/2.0.0/webhook/cart-abandonment-webhook/
    - https://developers.hotmart.com/docs/en/2.0.0/webhook/cancel-subscription-webhook/
    - https://developers.hotmart.com/docs/en/2.0.0/webhook/switch-plan-webhook/
    - https://developers.hotmart.com/docs/en/2.0.0/webhook/update-subscription-charge-date/
    - https://developers.hotmart.com/docs/en/2.0.0/webhook/club-first-access/
    - https://developers.hotmart.com/docs/en/2.0.0/webhook/club-module-completed/
    - https://developers.hotmart.com/docs/en/2.0.0/webhook/order-fulfillment-webhook/
    - https://developers.hotmart.com/docs/en/1.0.0/webhook/http-response-codes-webhook/
  asyncapi_probes:
    - {url: 'https://developers.hotmart.com/asyncapi.yaml', http_status: 200, result: HTML docs shell, valid: false}
    - {url: 'https://api-sec-vlc.hotmart.com/openapi.json', http_status: 404, valid: false}
    - {url: 'https://github.com/Hotmart-Org', http_status: 200, result: '12 public repos, none an API/event specification'}