FastSpring · AsyncAPI Specification

FastSpring Webhooks

Version 1.0.0

AsyncAPI 2.6 description of FastSpring's outbound webhook surface. FastSpring delivers events to a seller-configured HTTPS endpoint as HTTP POSTs with a JSON envelope of one or more events. Each request is signed with an HMAC SHA-256 digest of the raw request body, encoded as base64, in the X-FS-Signature header. The shared secret is configured per webhook in the FastSpring App Dashboard under Integrations > Webhooks. Receivers must respond with a 2xx within FastSpring's timeout window; non-2xx responses are retried and unacknowledged events can be replayed via the Events API.

View Spec View on GitHub E-CommerceMerchant of RecordSubscription BillingPaymentsSaaS BillingCheckoutTax ComplianceAsyncAPIEventsWebhooks

Channels

webhook
subscribe receiveFastSpringWebhook
Receive FastSpring webhook events
Single delivery channel for all FastSpring webhook events. The request body is an envelope containing an `events` array; each entry carries a `type` discriminator and an event-specific `data` payload. Subscribe semantics here describe the seller endpoint receiving events from FastSpring.

Messages

✉
AccountCreated
Account Created
A new customer account was created.
✉
AccountUpdated
Account Updated
An existing customer account was updated.
✉
OrderApprovalPending
Order Approval Pending
An order is awaiting buyer/approver action (e.g. invoice-based purchases).
✉
OrderCanceled
Order Canceled
An order was canceled before completion.
✉
OrderCompleted
Order Completed
An order completed successfully and payment was captured.
✉
OrderFailed
Order Failed
An order attempt failed (e.g. declined payment).
✉
OrderPaymentPending
Order Payment Pending
An order is awaiting asynchronous payment confirmation.
✉
OrderChargeback
Order Chargeback
A chargeback or dispute was filed against an order.
✉
MailingListEntry
Mailing List Entry
A buyer subscribed via abandoned-cart or remarketing capture.
✉
QuoteCreated
Quote Created
A new B2B quote was created.
✉
QuoteUpdated
Quote Updated
An existing B2B quote was updated.
✉
ReturnCreated
Return Created
A refund or return was created against a prior order.
✉
PayoutEntryCreated
Payout Entry Created
A new order or return entry was created for payout processing.
✉
FulfillmentFailed
Fulfillment Failed
A fulfillment action (license/file/script) failed.
✉
SubscriptionActivated
Subscription Activated
A new subscription was activated (including trial start).
✉
SubscriptionCanceled
Subscription Canceled
A subscription was canceled (effective at end of current period).
✉
SubscriptionChargeCompleted
Subscription Charge Completed
A recurring subscription charge succeeded.
✉
SubscriptionChargeFailed
Subscription Charge Failed
A recurring subscription charge failed (dunning may begin).
✉
SubscriptionDeactivated
Subscription Deactivated
A subscription was deactivated (entitlement should end).
✉
SubscriptionPaymentOverdue
Subscription Payment Overdue
A subscription is past due on a recurring charge.
✉
SubscriptionPaymentReminder
Subscription Payment Reminder
A scheduled rebill is approaching for a subscription.
✉
SubscriptionTrialReminder
Subscription Trial Reminder
A subscription trial is approaching its end.
✉
SubscriptionUncanceled
Subscription Uncanceled
A previously canceled subscription was reinstated.
✉
SubscriptionUpdated
Subscription Updated
A subscription's details (plan, add-ons, schedule) were updated.

Servers

https
seller-endpoint {webhook_url}
Seller-hosted HTTPS endpoint registered in the FastSpring App Dashboard. FastSpring POSTs the webhook envelope to this URL.

AsyncAPI Specification

Raw ↑
asyncapi: 2.6.0
info:
  title: FastSpring Webhooks
  version: 1.0.0
  description: >-
    AsyncAPI 2.6 description of FastSpring's outbound webhook surface.
    FastSpring delivers events to a seller-configured HTTPS endpoint as
    HTTP POSTs with a JSON envelope of one or more events. Each request is
    signed with an HMAC SHA-256 digest of the raw request body, encoded as
    base64, in the X-FS-Signature header. The shared secret is configured
    per webhook in the FastSpring App Dashboard under Integrations >
    Webhooks. Receivers must respond with a 2xx within FastSpring's
    timeout window; non-2xx responses are retried and unacknowledged
    events can be replayed via the Events API.
  contact:
    name: FastSpring Developer Hub
    url: https://developer.fastspring.com
  externalDocs:
    description: FastSpring Webhooks overview
    url: https://developer.fastspring.com/reference/webhooks-overview
defaultContentType: application/json

servers:
  seller-endpoint:
    url: '{webhook_url}'
    protocol: https
    description: >-
      Seller-hosted HTTPS endpoint registered in the FastSpring App
      Dashboard. FastSpring POSTs the webhook envelope to this URL.
    variables:
      webhook_url:
        description: Fully qualified seller webhook URL (scheme + host + path).
        default: https://example.com/webhooks/fastspring
    security:
      - hmacSignature: []

channels:
  webhook:
    description: >-
      Single delivery channel for all FastSpring webhook events. The
      request body is an envelope containing an `events` array; each
      entry carries a `type` discriminator and an event-specific `data`
      payload. Subscribe semantics here describe the seller endpoint
      receiving events from FastSpring.
    subscribe:
      operationId: receiveFastSpringWebhook
      summary: Receive FastSpring webhook events
      description: >-
        Receives a webhook envelope from FastSpring. Verify the
        X-FS-Signature header (base64 HMAC SHA-256 of the raw body)
        before processing. Iterate the `events` array and dispatch on
        each event's `type`.
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: 0.3.0
      message:
        oneOf:
          - $ref: '#/components/messages/AccountCreated'
          - $ref: '#/components/messages/AccountUpdated'
          - $ref: '#/components/messages/OrderApprovalPending'
          - $ref: '#/components/messages/OrderCanceled'
          - $ref: '#/components/messages/OrderCompleted'
          - $ref: '#/components/messages/OrderFailed'
          - $ref: '#/components/messages/OrderPaymentPending'
          - $ref: '#/components/messages/OrderChargeback'
          - $ref: '#/components/messages/MailingListEntry'
          - $ref: '#/components/messages/QuoteCreated'
          - $ref: '#/components/messages/QuoteUpdated'
          - $ref: '#/components/messages/ReturnCreated'
          - $ref: '#/components/messages/PayoutEntryCreated'
          - $ref: '#/components/messages/FulfillmentFailed'
          - $ref: '#/components/messages/SubscriptionActivated'
          - $ref: '#/components/messages/SubscriptionCanceled'
          - $ref: '#/components/messages/SubscriptionChargeCompleted'
          - $ref: '#/components/messages/SubscriptionChargeFailed'
          - $ref: '#/components/messages/SubscriptionDeactivated'
          - $ref: '#/components/messages/SubscriptionPaymentOverdue'
          - $ref: '#/components/messages/SubscriptionPaymentReminder'
          - $ref: '#/components/messages/SubscriptionTrialReminder'
          - $ref: '#/components/messages/SubscriptionUncanceled'
          - $ref: '#/components/messages/SubscriptionUpdated'

components:
  securitySchemes:
    hmacSignature:
      type: httpApiKey
      in: header
      name: X-FS-Signature
      description: >-
        Base64-encoded HMAC SHA-256 digest computed over the raw request
        body using the per-webhook HMAC SHA256 Secret configured in the
        FastSpring App Dashboard. Receivers must recompute and constant-
        time compare against this header before trusting the payload.

  messageTraits:
    FastSpringWebhookHeaders:
      headers:
        type: object
        properties:
          X-FS-Signature:
            type: string
            description: >-
              Base64-encoded HMAC SHA-256 of the raw request body, signed
              with the seller's configured HMAC secret.
          Content-Type:
            type: string
            const: application/json

  messages:
    AccountCreated:
      name: account.created
      title: Account Created
      summary: A new customer account was created.
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeAccountCreated'
      externalDocs:
        url: https://developer.fastspring.com/reference/accountcreated

    AccountUpdated:
      name: account.updated
      title: Account Updated
      summary: An existing customer account was updated.
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeAccountUpdated'
      externalDocs:
        url: https://developer.fastspring.com/reference/accountupdated

    OrderApprovalPending:
      name: order.approval.pending
      title: Order Approval Pending
      summary: An order is awaiting buyer/approver action (e.g. invoice-based purchases).
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeOrderApprovalPending'
      externalDocs:
        url: https://developer.fastspring.com/reference/orderapprovalpending

    OrderCanceled:
      name: order.canceled
      title: Order Canceled
      summary: An order was canceled before completion.
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeOrderCanceled'
      externalDocs:
        url: https://developer.fastspring.com/reference/ordercanceled

    OrderCompleted:
      name: order.completed
      title: Order Completed
      summary: An order completed successfully and payment was captured.
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeOrderCompleted'
      externalDocs:
        url: https://developer.fastspring.com/reference/ordercompleted

    OrderFailed:
      name: order.failed
      title: Order Failed
      summary: An order attempt failed (e.g. declined payment).
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeOrderFailed'
      externalDocs:
        url: https://developer.fastspring.com/reference/orderfailed

    OrderPaymentPending:
      name: order.payment.pending
      title: Order Payment Pending
      summary: An order is awaiting asynchronous payment confirmation.
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeOrderPaymentPending'
      externalDocs:
        url: https://developer.fastspring.com/reference/orderpaymentpending

    OrderChargeback:
      name: order.chargeback
      title: Order Chargeback
      summary: A chargeback or dispute was filed against an order.
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeOrderChargeback'
      externalDocs:
        url: https://developer.fastspring.com/reference/order-chargeback

    MailingListEntry:
      name: mailingListEntry
      title: Mailing List Entry
      summary: A buyer subscribed via abandoned-cart or remarketing capture.
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeMailingListEntry'
      externalDocs:
        url: https://developer.fastspring.com/reference/mailinglistentry-webhooks

    QuoteCreated:
      name: quote.created
      title: Quote Created
      summary: A new B2B quote was created.
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeQuoteCreated'
      externalDocs:
        url: https://developer.fastspring.com/reference/quotecreated

    QuoteUpdated:
      name: quote.updated
      title: Quote Updated
      summary: An existing B2B quote was updated.
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeQuoteUpdated'
      externalDocs:
        url: https://developer.fastspring.com/reference/quoteupdated

    ReturnCreated:
      name: return.created
      title: Return Created
      summary: A refund or return was created against a prior order.
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeReturnCreated'
      externalDocs:
        url: https://developer.fastspring.com/reference/returncreated

    PayoutEntryCreated:
      name: payoutEntry.created
      title: Payout Entry Created
      summary: A new order or return entry was created for payout processing.
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopePayoutEntryCreated'
      externalDocs:
        url: https://developer.fastspring.com/reference/payoutentrycreated

    FulfillmentFailed:
      name: fulfillment.failed
      title: Fulfillment Failed
      summary: A fulfillment action (license/file/script) failed.
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeFulfillmentFailed'
      externalDocs:
        url: https://developer.fastspring.com/reference/fulfillmentfailed

    SubscriptionActivated:
      name: subscription.activated
      title: Subscription Activated
      summary: A new subscription was activated (including trial start).
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeSubscriptionActivated'
      externalDocs:
        url: https://developer.fastspring.com/reference/subscriptionactivated

    SubscriptionCanceled:
      name: subscription.canceled
      title: Subscription Canceled
      summary: A subscription was canceled (effective at end of current period).
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeSubscriptionCanceled'
      externalDocs:
        url: https://developer.fastspring.com/reference/subscription-canceled

    SubscriptionChargeCompleted:
      name: subscription.charge.completed
      title: Subscription Charge Completed
      summary: A recurring subscription charge succeeded.
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeSubscriptionChargeCompleted'
      externalDocs:
        url: https://developer.fastspring.com/reference/subscription-charge-completed

    SubscriptionChargeFailed:
      name: subscription.charge.failed
      title: Subscription Charge Failed
      summary: A recurring subscription charge failed (dunning may begin).
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeSubscriptionChargeFailed'
      externalDocs:
        url: https://developer.fastspring.com/reference/subscription-charge-failed

    SubscriptionDeactivated:
      name: subscription.deactivated
      title: Subscription Deactivated
      summary: A subscription was deactivated (entitlement should end).
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeSubscriptionDeactivated'
      externalDocs:
        url: https://developer.fastspring.com/reference/subscription-deactivated

    SubscriptionPaymentOverdue:
      name: subscription.payment.overdue
      title: Subscription Payment Overdue
      summary: A subscription is past due on a recurring charge.
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeSubscriptionPaymentOverdue'
      externalDocs:
        url: https://developer.fastspring.com/reference/subscriptionpaymentoverdue

    SubscriptionPaymentReminder:
      name: subscription.payment.reminder
      title: Subscription Payment Reminder
      summary: A scheduled rebill is approaching for a subscription.
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeSubscriptionPaymentReminder'
      externalDocs:
        url: https://developer.fastspring.com/reference/subscriptionpaymentreminder

    SubscriptionTrialReminder:
      name: subscription.trial.reminder
      title: Subscription Trial Reminder
      summary: A subscription trial is approaching its end.
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeSubscriptionTrialReminder'
      externalDocs:
        url: https://developer.fastspring.com/reference/subscriptiontrialreminder

    SubscriptionUncanceled:
      name: subscription.uncanceled
      title: Subscription Uncanceled
      summary: A previously canceled subscription was reinstated.
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeSubscriptionUncanceled'
      externalDocs:
        url: https://developer.fastspring.com/reference/subscriptionuncanceled

    SubscriptionUpdated:
      name: subscription.updated
      title: Subscription Updated
      summary: A subscription's details (plan, add-ons, schedule) were updated.
      traits:
        - $ref: '#/components/messageTraits/FastSpringWebhookHeaders'
      payload:
        $ref: '#/components/schemas/WebhookEnvelopeSubscriptionUpdated'
      externalDocs:
        url: https://developer.fastspring.com/reference/subscription-updated

  schemas:
    WebhookEnvelope:
      type: object
      description: >-
        FastSpring webhook envelope. Every webhook POST body is an
        envelope of one or more events. Receivers should iterate
        `events` and dispatch on `type`.
      required:
        - events
      properties:
        events:
          type: array
          minItems: 1
          description: One or more events delivered in a single POST.
          items:
            $ref: '#/components/schemas/EventBase'

    EventBase:
      type: object
      description: Common envelope fields shared by every FastSpring event.
      required:
        - id
        - type
        - created
        - live
        - processed
      properties:
        id:
          type: string
          description: Unique event identifier; used to acknowledge or replay via the Events API.
        type:
          type: string
          description: Event type discriminator (e.g. order.completed, subscription.activated).
        created:
          type: integer
          format: int64
          description: Event creation timestamp in epoch milliseconds.
        live:
          type: boolean
          description: True if the event originated from a live store; false for test events.
        processed:
          type: boolean
          description: >-
            Server-side processed flag. FastSpring marks events processed
            once the receiver responds 2xx. Sellers can also flip this
            via the Events API.
        data:
          type: object
          description: Event-specific payload. See per-event schemas for shape.
          additionalProperties: true

    AccountCreatedEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: account.created
            data:
              $ref: '#/components/schemas/AccountData'

    AccountUpdatedEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: account.updated
            data:
              $ref: '#/components/schemas/AccountData'

    OrderApprovalPendingEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: order.approval.pending
            data:
              $ref: '#/components/schemas/OrderData'

    OrderCanceledEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: order.canceled
            data:
              $ref: '#/components/schemas/OrderData'

    OrderCompletedEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: order.completed
            data:
              $ref: '#/components/schemas/OrderData'

    OrderFailedEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: order.failed
            data:
              $ref: '#/components/schemas/OrderData'

    OrderPaymentPendingEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: order.payment.pending
            data:
              $ref: '#/components/schemas/OrderData'

    OrderChargebackEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: order.chargeback
            data:
              $ref: '#/components/schemas/ChargebackData'

    MailingListEntryEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: mailingListEntry
            data:
              $ref: '#/components/schemas/MailingListEntryData'

    QuoteCreatedEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: quote.created
            data:
              $ref: '#/components/schemas/QuoteData'

    QuoteUpdatedEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: quote.updated
            data:
              $ref: '#/components/schemas/QuoteData'

    ReturnCreatedEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: return.created
            data:
              $ref: '#/components/schemas/ReturnData'

    PayoutEntryCreatedEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: payoutEntry.created
            data:
              $ref: '#/components/schemas/PayoutEntryData'

    FulfillmentFailedEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: fulfillment.failed
            data:
              $ref: '#/components/schemas/FulfillmentFailureData'

    SubscriptionActivatedEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: subscription.activated
            data:
              $ref: '#/components/schemas/SubscriptionData'

    SubscriptionCanceledEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: subscription.canceled
            data:
              $ref: '#/components/schemas/SubscriptionData'

    SubscriptionChargeCompletedEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: subscription.charge.completed
            data:
              $ref: '#/components/schemas/SubscriptionChargeData'

    SubscriptionChargeFailedEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: subscription.charge.failed
            data:
              $ref: '#/components/schemas/SubscriptionChargeData'

    SubscriptionDeactivatedEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: subscription.deactivated
            data:
              $ref: '#/components/schemas/SubscriptionData'

    SubscriptionPaymentOverdueEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: subscription.payment.overdue
            data:
              $ref: '#/components/schemas/SubscriptionData'

    SubscriptionPaymentReminderEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: subscription.payment.reminder
            data:
              $ref: '#/components/schemas/SubscriptionData'

    SubscriptionTrialReminderEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: subscription.trial.reminder
            data:
              $ref: '#/components/schemas/SubscriptionData'

    SubscriptionUncanceledEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: subscription.uncanceled
            data:
              $ref: '#/components/schemas/SubscriptionData'

    SubscriptionUpdatedEvent:
      allOf:
        - $ref: '#/components/schemas/EventBase'
        - type: object
          properties:
            type:
              const: subscription.updated
            data:
              $ref: '#/components/schemas/SubscriptionData'

    WebhookEnvelopeAccountCreated:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/AccountCreatedEvent'

    WebhookEnvelopeAccountUpdated:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/AccountUpdatedEvent'

    WebhookEnvelopeOrderApprovalPending:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/OrderApprovalPendingEvent'

    WebhookEnvelopeOrderCanceled:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/OrderCanceledEvent'

    WebhookEnvelopeOrderCompleted:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/OrderCompletedEvent'

    WebhookEnvelopeOrderFailed:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/OrderFailedEvent'

    WebhookEnvelopeOrderPaymentPending:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/OrderPaymentPendingEvent'

    WebhookEnvelopeOrderChargeback:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/OrderChargebackEvent'

    WebhookEnvelopeMailingListEntry:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/MailingListEntryEvent'

    WebhookEnvelopeQuoteCreated:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/QuoteCreatedEvent'

    WebhookEnvelopeQuoteUpdated:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/QuoteUpdatedEvent'

    WebhookEnvelopeReturnCreated:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/ReturnCreatedEvent'

    WebhookEnvelopePayoutEntryCreated:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/PayoutEntryCreatedEvent'

    WebhookEnvelopeFulfillmentFailed:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/FulfillmentFailedEvent'

    WebhookEnvelopeSubscriptionActivated:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/SubscriptionActivatedEvent'

    WebhookEnvelopeSubscriptionCanceled:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/SubscriptionCanceledEvent'

    WebhookEnvelopeSubscriptionChargeCompleted:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/SubscriptionChargeCompletedEvent'

    WebhookEnvelopeSubscriptionChargeFailed:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/SubscriptionChargeFailedEvent'

    WebhookEnvelopeSubscriptionDeactivated:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/SubscriptionDeactivatedEvent'

    WebhookEnvelopeSubscriptionPaymentOverdue:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/SubscriptionPaymentOverdueEvent'

    WebhookEnvelopeSubscriptionPaymentReminder:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/SubscriptionPaymentReminderEvent'

    WebhookEnvelopeSubscriptionTrialReminder:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/SubscriptionTrialReminderEvent'

    WebhookEnvelopeSubscriptionUncanceled:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/SubscriptionUncanceledEvent'

    WebhookEnvelopeSubscriptionUpdated:
      allOf:
        - $ref: '#/components/schemas/WebhookEnvelope'
        - type: object
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/SubscriptionUpdatedEvent'

    AccountData:
      type: object
      description: >-
        Customer account payload. Includes the FastSpring account id and
        nested contact details (name, email, company, phone), address,
        language, country, and an account-management URL. Refer to the
        FastSpring account.created / account.updated documentation for
        the authoritative field list.
      additionalProperties: true
      properties:
        id:
          type: string
          description: FastSpring account id.
        account:
          type: string
          description: Account reference identifier.
        contact:
          type: object
          additionalProperties: true
          description: Buyer contact details (first, last, email, company, phone, subscribed).
        address:
          type: object
          additionalProperties: true
          description: Postal address (region, city, regionCode, postalCode, country, display).
        language:
          type: string
        country:
          type: string
        lookup:
          type: object
          additionalProperties: true
          description: Lookup keys (e.g. custom, global).
        url:
          type: string
          format: uri

    OrderData:
      type: object
      description: >-
        Order payload. Spans identifiers (order, id, reference,
        buyerReference), order configuration (language, live, currency,
        payoutCurrency, quote, invoiceUrl, siteId,
        acquisitionTransactionType), pricing (total, tax, subtotal,
        discount with display + payout currency variants), payment
        details (billDescriptor, payment.type, cardEnding, creditcard
        brand, bank, variant), account + customer contact and address,
        recipients, items (with fulfillments, withholdings, proratedItem),
        and internal notes. See the FastSpring docs for the authoritative
        field list per order event.
      additionalProperties: true
      properties:
        order:
          type: string
        id:
          type: string
        reference:
          type: string
        buyerReference:
          type: string
        ipAddress:
          type: string
        completed:
          type: boolean
        changed:
          type: integer
          format: int64
        changedInSeconds:
          type: integer
          format: int64
        language:
          type: string
        live:
          type: boolean
        currency:
          type: string
        payoutCurrency:
          type: string
        quote:
          type: string
        invoiceUrl:
          type: string
          format: uri
        siteId:
          type: string
        acquisitionTransactionType:
          type: string
        total:
          type: number
        totalDisplay:
          typ

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fastspring/refs/heads/main/asyncapi/fastspring-asyncapi.yml

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/fastspring-asyncapi"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.