CyberSource Manage Webhooks API

- Manage your webhooks. This will allow for you to update existing webhooks, test webhooks, or delete them.

Operations 7

GET /notification-subscriptions/v2/webhooks Get Details On All Created Webhooks #
GET /notification-subscriptions/v2/webhooks/{webhookId} Get Details On a Single Webhook #
PATCH /notification-subscriptions/v2/webhooks/{webhookId} Update a Webhook Subscription
DELETE /notification-subscriptions/v2/webhooks/{webhookId} Delete a Webhook Subscription #
POST /notification-subscriptions/v1/webhooks/{webhookId} Test a Webhook Configuration
PUT /notification-subscriptions/v2/webhooks/{webhookId}/status Update a Webhook Status
POST /kms/egress/v2/keys-asym Message Level Encryption #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/cybersource-manage-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

cybersource-manage-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html
  version: 0.0.1
  title: CyberSource Merged Spec bankAccountValidation Manage Webhooks API
servers:
- url: https://apitest.cybersource.com/
tags:
- name: Manage Webhooks
  description: '- Manage your webhooks. This will allow for you to update existing webhooks, test webhooks, or delete them.

    '
paths:
  /notification-subscriptions/v2/webhooks:
    get:
      tags:
      - Manage Webhooks
      summary: Get Details On All Created Webhooks
      description: Retrieve a list of all previously created webhooks.
      operationId: getWebhookSubscriptionsByOrg
      parameters:
      - name: organizationId
        in: query
        description: The Organization Identifier.
        required: true
        schema:
          type: string
      - name: productId
        in: query
        description: The Product Identifier.
        required: false
        schema:
          type: string
      - name: eventType
        in: query
        description: The Event Type.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json;charset=utf-8:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    webhookId:
                      type: string
                      description: Webhook Id. This is generated by the server.
                    organizationId:
                      type: string
                      description: Organization ID.
                    products:
                      type: array
                      items:
                        type: object
                        properties:
                          productId:
                            type: string
                            description: Product ID.
                          eventTypes:
                            type: array
                            items:
                              type: string
                              description: Event types within the product that you would like subscriptions for.
                        example:
                          productId: tokenManagement
                          eventTypes:
                          - tms.networktoken.provisioned
                          - tms.networktoken.updated
                          - tms.networktoken.binding
                          - tms.accountupdater.enrollment
                          - tms.accountupdater.update
                    webhookUrl:
                      type: string
                      description: The client's endpoint (URL) to receive webhooks.
                    healthCheckUrl:
                      type: string
                      description: The client's health check endpoint (URL).
                    status:
                      type: string
                      description: Webhook status.
                      default: INACTIVE
                    name:
                      type: string
                      description: Client friendly webhook name.
                    description:
                      type: string
                      description: Client friendly webhook description.
                    retryPolicy:
                      type: object
                      description: 'Retry policy for the individual webhooks that are a part of your subscription. If a message fails to deliver, it will execute through this retry policy.


                        Automatic suspend and resume:


                        If you experience downtime and have `deactivateFlag = true` any new messages will be held in a "SUSPENDED" status.

                        When your healthCheckUrl returns healthy again, the subscription will automatically be re-enabled and your messages will be sent.

                        We will ping your healthCheckUrl routinely using a POST call with an empty payload to check availability.

                        If your endpoint returns an unhealthy status of != 200, we will check the healthCheckUrl at a more frequent rate until it is healthy again.


                        If you experience downtime and have `deactivateFlag = false` and your message exhausts all retry attempts the message will go to a "FAILED" status.

                        Support will be notified and will reach out to suggest you execute the "REPLAY" endpoint at a later date when your server is healthy.



                        Reference the below values for formulas and calculations related to the frequency of retries depending on algorithm and configuration.

                        '
                      properties:
                        algorithm:
                          type: string
                          default: ARITHMETIC
                          description: 'This is used to calculate the Retry Sequence.


                            Sample calculations using firstRetry=10, interval=30, maxNumberOfRetries=3

                            Arithmetic = a+r(n-1)

                            Retry 1 - 10 minutes

                            Retry 2 - 10+30x1 = 40 minutes

                            Retry 3 - 10+30x2 = 70 minutes


                            Geometric = ar^(n-1)

                            Retry 1 - 10 minutes

                            Retry 2 - 10x30^1 = 300 minutes

                            Retry 3 - 10x30^2 = 9,000 minutes

                            '
                        firstRetry:
                          type: integer
                          description: When to initiate first retry, after the initial call failed. (in mins).
                          default: 1
                        interval:
                          type: integer
                          description: The interval between retries (in mins).
                          default: 1
                        numberOfRetries:
                          type: integer
                          description: The number of retries per sequence.
                          default: 3
                        deactivateFlag:
                          type: string
                          description: 'Deactivate the subscription if your retries fail to deliver.


                            If this is set to `true`, the automatic suspend and resume feature will occur.

                            This would prevent new webhooks from attempting to deliver and to queue up until your healthCheckUrl returns 200 again, then all messages will be sent.


                            If this is set to `false`, new individual messages will continue to retry and exhaust all failures, but the subscription will stay active.

                            '
                        repeatSequenceCount:
                          type: integer
                          description: 'The number of times to repeat the complete retry sequence.

                            0 => don''t repeat the retry sequence

                            1 => repeat the retry sequence once (R1, R2, R3)+ (R1, R2, R3)

                            2 => repeat the retry sequence twice (R1, R2, R3) + (R1, R2, R3) + (R1, R2, R3)

                            '
                          default: 0
                        repeatSequenceWaitTime:
                          type: integer
                          description: 'The time to wait to before repeating the complete retry sequence.

                            Amount of time to wait between each sequence.

                            Sample calculation using repeatSequenceWaitTime=10

                            (R1, R2, R3) + (10) + (R1, R2, R3) + (10) + (R1, R2, R3)

                            '
                          default: 0
                        additionalAttributes:
                          description: Additional data, if any.
                          type: array
                          items:
                            type: object
                            additionalProperties:
                              type: string
                    securityPolicy:
                      type: object
                      description: The security option to authenticate with your API or client server.
                      properties:
                        securityType:
                          type: string
                          description: "Security Policy of the client server. \nPossible values:\n- key\n- oAuth\n- oAuth_JWT"
                        config:
                          description: Optional configuration object for if your API or server requires oAuth for an incoming webhook.
                          type: object
                          properties:
                            oAuthURL:
                              type: string
                              description: Client direct endpoint to the oAuth server.
                            oAuthTokenType:
                              type: string
                              description: "Token type for the oAuth config. \nPossible values:\n- Bearer"
                            additionalConfig:
                              description: Additional, free form configuration data.
                              type: object
                              properties:
                                aud:
                                  type: string
                                client_id:
                                  type: string
                                keyId:
                                  type: string
                                scope:
                                  type: string
                    createdOn:
                      type: string
                      description: Date on which webhook was created/registered.
                    notificationScope:
                      type: string
                      description: "The webhook scope. 1. SELF The Webhook is used to deliver webhooks for only this Organization (or Merchant). 2. DESCENDANTS The Webhook is used to deliver webhooks for this Organization and its children. This field is optional. \n \nPossible values:\n- SELF\n- DESCENDANTS"
                      default: DESCENDANTS
                  example:
                    webhookId: b555a545-58a9-47c7-aef9-10a8e17f201a
                    organizationId: <INSERT ORGANIZATION ID HERE>
                    products:
                    - productId: tokenManagement
                      eventTypes:
                      - tms.networktoken.provisioned
                      - tms.networktoken.updated
                      - tms.networktoken.binding
                      - tms.accountupdater.enrollment
                      - tms.accountupdater.update
                    - productId: invoicing
                      eventTypes:
                      - invoicing.customer.invoice.paid
                      - invoicing.customer.invoice.send
                    webhookUrl: https://example.com:443/cybs
                    healthCheckUrl: https://example.com:443/cybs/healthcheck
                    status: INACTIVE
                    name: My Webhook Subscription
                    description: Webhook Subscription
                    retryPolicy:
                      algorithm: Geometric
                      firstRetry: 3
                      interval: 5
                      numberOfRetries: 4
                      deactivateFlag: true
                    securityPolicy:
                      securityType: oAuth
                      config:
                        oAuthURL: https://MyWebhookServer.com:8443/oAuthToken
                        oAuthTokenType: Bearer
                        additionalConfig:
                          aud: idp.api.myServer.com
                          client_id: 650538A1-7AB0-AD3A-51AB-932ABC57AD70
                          keyId: y-daaaAVyF0176M7-eAZ34pR9Ts
                          scope: merchantacq:rte:write
                    createdOn: '2021-02-25T23:25:11.000Z'
                    notificationScope: SELF
        '401':
          description: Unauthorized
        '500':
          description: Server error
      x-devcenter-metaData:
        categoryTag: Webhooks
        developerGuides: https://developer.cybersource.com/docs/cybs/en-us/webhooks/implementation/all/rest/webhooks/wh-fg-intro.html
  /notification-subscriptions/v2/webhooks/{webhookId}:
    get:
      tags:
      - Manage Webhooks
      summary: Get Details On a Single Webhook
      description: Retrieve the details of a specific webhook by supplying the webhook ID in the path.
      operationId: getWebhookSubscriptionById
      parameters:
      - name: webhookId
        in: path
        description: The webhook Identifier
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Ok
          content:
            application/json;charset=utf-8:
              schema:
                type: object
                properties:
                  webhookId:
                    type: string
                    description: Webhook Id. This is generated by the server.
                  organizationId:
                    type: string
                    description: Organization ID.
                  products:
                    type: array
                    items:
                      type: object
                      properties:
                        productId:
                          type: string
                          description: Product ID.
                        eventTypes:
                          type: array
                          items:
                            type: string
                            description: Event types within the product that you would like subscriptions for.
                      example:
                        productId: tokenManagement
                        eventTypes:
                        - tms.networktoken.provisioned
                        - tms.networktoken.updated
                        - tms.networktoken.binding
                        - tms.accountupdater.enrollment
                        - tms.accountupdater.update
                  webhookUrl:
                    type: string
                    description: The client's endpoint (URL) to receive webhooks.
                  healthCheckUrl:
                    type: string
                    description: The client's health check endpoint (URL).
                  status:
                    type: string
                    description: Webhook status.
                    default: INACTIVE
                  name:
                    type: string
                    description: Client friendly webhook name.
                  description:
                    type: string
                    description: Client friendly webhook description.
                  retryPolicy:
                    type: object
                    description: 'Retry policy for the individual webhooks that are a part of your subscription. If a message fails to deliver, it will execute through this retry policy.


                      Automatic suspend and resume:


                      If you experience downtime and have `deactivateFlag = true` any new messages will be held in a "SUSPENDED" status.

                      When your healthCheckUrl returns healthy again, the subscription will automatically be re-enabled and your messages will be sent.

                      We will ping your healthCheckUrl routinely using a POST call with an empty payload to check availability.

                      If your endpoint returns an unhealthy status of != 200, we will check the healthCheckUrl at a more frequent rate until it is healthy again.


                      If you experience downtime and have `deactivateFlag = false` and your message exhausts all retry attempts the message will go to a "FAILED" status.

                      Support will be notified and will reach out to suggest you execute the "REPLAY" endpoint at a later date when your server is healthy.



                      Reference the below values for formulas and calculations related to the frequency of retries depending on algorithm and configuration.

                      '
                    properties:
                      algorithm:
                        type: string
                        default: ARITHMETIC
                        description: 'This is used to calculate the Retry Sequence.


                          Sample calculations using firstRetry=10, interval=30, maxNumberOfRetries=3

                          Arithmetic = a+r(n-1)

                          Retry 1 - 10 minutes

                          Retry 2 - 10+30x1 = 40 minutes

                          Retry 3 - 10+30x2 = 70 minutes


                          Geometric = ar^(n-1)

                          Retry 1 - 10 minutes

                          Retry 2 - 10x30^1 = 300 minutes

                          Retry 3 - 10x30^2 = 9,000 minutes

                          '
                      firstRetry:
                        type: integer
                        description: When to initiate first retry, after the initial call failed. (in mins).
                        default: 1
                      interval:
                        type: integer
                        description: The interval between retries (in mins).
                        default: 1
                      numberOfRetries:
                        type: integer
                        description: The number of retries per sequence.
                        default: 3
                      deactivateFlag:
                        type: string
                        description: 'Deactivate the subscription if your retries fail to deliver.


                          If this is set to `true`, the automatic suspend and resume feature will occur.

                          This would prevent new webhooks from attempting to deliver and to queue up until your healthCheckUrl returns 200 again, then all messages will be sent.


                          If this is set to `false`, new individual messages will continue to retry and exhaust all failures, but the subscription will stay active.

                          '
                      repeatSequenceCount:
                        type: integer
                        description: 'The number of times to repeat the complete retry sequence.

                          0 => don''t repeat the retry sequence

                          1 => repeat the retry sequence once (R1, R2, R3)+ (R1, R2, R3)

                          2 => repeat the retry sequence twice (R1, R2, R3) + (R1, R2, R3) + (R1, R2, R3)

                          '
                        default: 0
                      repeatSequenceWaitTime:
                        type: integer
                        description: 'The time to wait to before repeating the complete retry sequence.

                          Amount of time to wait between each sequence.

                          Sample calculation using repeatSequenceWaitTime=10

                          (R1, R2, R3) + (10) + (R1, R2, R3) + (10) + (R1, R2, R3)

                          '
                        default: 0
                      additionalAttributes:
                        description: Additional data, if any.
                        type: array
                        items:
                          type: object
                          additionalProperties:
                            type: string
                  securityPolicy:
                    type: object
                    description: The security option to authenticate with your API or client server.
                    properties:
                      securityType:
                        type: string
                        description: "Security Policy of the client server. \nPossible values:\n- key\n- oAuth\n- oAuth_JWT"
                      config:
                        description: Optional configuration object for if your API or server requires oAuth for an incoming webhook.
                        type: object
                        properties:
                          oAuthURL:
                            type: string
                            description: Client direct endpoint to the oAuth server.
                          oAuthTokenType:
                            type: string
                            description: "Token type for the oAuth config. \nPossible values:\n- Bearer"
                          additionalConfig:
                            description: Additional, free form configuration data.
                            type: object
                            properties:
                              aud:
                                type: string
                              client_id:
                                type: string
                              keyId:
                                type: string
                              scope:
                                type: string
                  createdOn:
                    type: string
                    description: Date on which webhook was created/registered.
                  notificationScope:
                    type: string
                    description: "The webhook scope. 1. SELF The Webhook is used to deliver webhooks for only this Organization (or Merchant). 2. DESCENDANTS The Webhook is used to deliver webhooks for this Organization and its children. This field is optional. \n \nPossible values:\n- SELF\n- DESCENDANTS"
                    default: DESCENDANTS
                example:
                  webhookId: b555a545-58a9-47c7-aef9-10a8e17f201a
                  organizationId: <INSERT ORGANIZATION ID HERE>
                  products:
                  - productId: tokenManagement
                    eventTypes:
                    - tms.networktoken.provisioned
                    - tms.networktoken.updated
                    - tms.networktoken.binding
                    - tms.accountupdater.enrollment
                    - tms.accountupdater.update
                  - productId: invoicing
                    eventTypes:
                    - invoicing.customer.invoice.paid
                    - invoicing.customer.invoice.send
                  webhookUrl: https://example.com:443/cybs
                  healthCheckUrl: https://example.com:443/cybs/healthcheck
                  status: INACTIVE
                  name: My Webhook Subscription
                  description: Webhook Subscription
                  retryPolicy:
                    algorithm: Geometric
                    firstRetry: 3
                    interval: 5
                    numberOfRetries: 4
                    deactivateFlag: true
                  securityPolicy:
                    securityType: oAuth
                    config:
                      oAuthURL: https://MyWebhookServer.com:8443/oAuthToken
                      oAuthTokenType: Bearer
                      additionalConfig:
                        aud: idp.api.myServer.com
                        client_id: 650538A1-7AB0-AD3A-51AB-932ABC57AD70
                        keyId: y-daaaAVyF0176M7-eAZ34pR9Ts
                        scope: merchantacq:rte:write
                  createdOn: '2021-02-25T23:25:11.000Z'
                  notificationScope: SELF
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '500':
          description: Server error
      x-devcenter-metaData:
        categoryTag: Webhooks
        developerGuides: https://developer.cybersource.com/docs/cybs/en-us/webhooks/implementation/all/rest/webhooks/wh-fg-intro.html
    patch:
      tags:
      - Manage Webhooks
      summary: Update a Webhook Subscription
      description: Update a Webhook Subscription.
      parameters:
      - name: webhookId
        in: path
        description: The Webhook Identifier.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Updated
          content:
            application/json;charset=utf-8:
              schema:
                type: object
                properties:
                  webhookId:
                    type: string
                    description: Webhook Id. This is generated by the server.
                  organizationId:
                    type: string
                    description: Organization ID.
                  products:
                    type: array
                    items:
                      type: object
                      properties:
                        productId:
                          type: string
                          description: Product ID.
                        eventTypes:
                          type: array
                          items:
                            type: string
                            description: Event types within the product that you would like subscriptions for.
                      example:
                        productId: tokenManagement
                        eventTypes:
                        - tms.networktoken.provisioned
                        - tms.networktoken.updated
                        - tms.networktoken.binding
                        - tms.accountupdater.enrollment
                        - tms.accountupdater.update
                  webhookUrl:
                    type: string
                    description: The client's endpoint (URL) to receive webhooks.
                  healthCheckUrl:
                    type: string
                    description: The client's health check endpoint (URL).
                  status:
                    type: string
                    description: Webhook status.
                    default: INACTIVE
                  name:
                    type: string
                    description: Client friendly webhook name.
                  description:
                    type: string
                    description: Client friendly webhook description.
                  retryPolicy:
                    type: object
                    description: 'Retry policy for the individual webhooks that are a part of your subscription. If a message fails to deliver, it will execute through this retry policy.


                      Automatic suspend and resume:


                      If you experience downtime and have `deactivateFlag = true` any new messages will be held in a "SUSPENDED" status.

                      When your healthCheckUrl returns healthy again, the subscription will automatically be re-enabled and your messages will be sent.

                      We will ping your healthCheckUrl routinely using a POST call with an empty payload to check availability.

                      If your endpoint returns an unhealthy status of != 200, we will check the healthCheckUrl at a more frequent rate until it is healthy again.


                      If you experience downtime and have `deactivateFlag = false` and your message exhausts all retry attempts the message will go to a "FAILED" status.

                      Support will be notified and will reach out to suggest you execute the "REPLAY" endpoint at a later date when your server is healthy.



                      Reference the below values for formulas and calculations related to the frequency of retries depending on algorithm and configuration.

                      '
                    properties:
                      algorithm:
                        type: string
                        default: ARITHMETIC
                        description: 'This is used to calculate the Retry Sequence.


                          Sample calculations using firstRetry=10, interval=30, maxNumberOfRetries=3

                          Arithmetic = a+r(n-1)

                          Retry 1 - 10 minutes

                          Retry 2 - 10+30x1 = 40 minutes

                          Retry 3 - 10+30x2 = 70 minutes


                          Geometric = ar^(n-1)

                          Retry 1 - 10 minutes

                          Retry 2 - 10x30^1 = 300 minutes

                          Retry 3 - 10x30^2 = 9,000 minutes

                          '
                      firstRetry:
                        type: integer
                        description: When to initiate first retry, after the initial call failed. (in mins).
                        default: 1
                      interval:
                        type: integer
                        description: The interval between retries (in mins).
                        default: 1
                      numberOfRetries:
                        type: integer
                        description: The number of retries per sequence.
                        default: 3
                      deactivateFlag:
                        type: string
                        description: 'Deactivate the subscription if your retries fail to deliver.


                          If this is set to `true`, the automatic suspend and resume feature will occur.

                          This would prevent new webhooks from attempting to deliver and to queue up until your healthCheckUrl returns 200 again, then all messages will be sent.


                          If this is set to `false`, new individual messages will continue to retry and exhaust all failures, but the subscription will stay active.

                          '
                      repeatSequenceCount:
                        type: integer
                        description: 'The number of times to repeat the complete retry sequence.

                          0 => don''t repeat the retry sequence

                          1 => repeat the retry sequence once (R1, R2, R3)+ (R1, R2, R3)

                          2 => repeat the retry sequence twice (R1, R2, R3) + (R1, R2, R3) + (R1, R2, R3)

                          '
                        default: 0
                      repeatSequenceWaitTime:
                        type: integer
                        description: 'The time to wait to before repeating the complete retry sequence.

                          Amount of time to wait between each sequence.

                          Sample calculation using repeatSequenceWaitTime=10

                          (R1, R2, R3) + (10) + (R1, R2, R3) + (10) + (R1, R2, R3)

                          '
                        default: 0
                      additionalAttributes:
                        description: Additional data, if any.
                        type: array
                        items:
                          type: object
                          additionalProperties:
                            type: string
                  securityPolicy:
                    type: object
                    description: The security option to authenticate with your API or client server.
                    properties:
                      securityType:
                        type: string
                        description: "Security Policy of the client server. \nPossible values:\n- key\n- oAuth\n- oAuth_JWT"
                      config:
                        description: Optional configuration object for if your API or server requires oAuth for an incoming webhook.
                        type: object
                        properties:
                          oAuthURL:
                            type: string
                            description: Client direct endpoint to the oAuth server.
                          oAuthTokenType:
                            type: string
                            description: "Token type for the oAuth config. \nPossible values:\n- Bearer"
                          additionalConfig:
                            description: Additional, free form configuration data.
                            type: object
                            properties:
                              aud:
                                type: string
                              client_id:
                                type: string
                              keyId:
                                type: string
                              scope:
                                type: string
                  createdOn:
                    type: string
                    description: Date on which webhook was 

# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cybersource/refs/heads/main/openapi/cybersource-manage-webhooks-api-openapi.yml