swagger: '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 host: apitest.cybersource.com basePath: / schemes: - https consumes: - application/json;charset=utf-8 produces: - application/hal+json;charset=utf-8 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. type: string required: true - name: productId in: query description: The Product Identifier. type: string required: false - name: eventType in: query description: The Event Type. type: string required: false produces: - application/json;charset=utf-8 consumes: - application/json;charset=utf-8 responses: '200': description: OK 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: 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 type: string description: The webhook Identifier required: true produces: - application/json;charset=utf-8 consumes: - application/json;charset=utf-8 responses: '200': description: Ok 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: 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 type: string description: The Webhook Identifier. required: true - name: updateWebhook in: body description: The webhook payload or changes to apply. schema: type: object properties: name: type: string description: Client friendly webhook name. organizationId: type: string description: Organization Id. description: type: string description: Client friendly webhook description. 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. 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 healthCheckUrl: type: string description: The client's health check endpoint (URL). 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 example: name: Updated Billing Subscription webhookUrl: https://newwebhooks.com produces: - application/json;charset=utf-8 consumes: - application/json;charset=utf-8 responses: '200': description: Updated 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. updatedOn: type: string description: Date on which webhook was most recently updated. 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: 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' updatedOn: '2021-02-25T23:25:11.000Z' notificationScope: SELF '401': description: Unauthorized '404': description: Not found schema: type: object properties: reason: type: string message: type: string details: type: array items: type: object properties: field: type: string reason: type: string '500': description: Server error x-example: example0: summary: Update Webhook value: name: My Sample Webhook description: Sample decision manager webhook reject event. organizationId: products: - productId: decisionManager eventTypes: - risk.profile.decision.reject webhookUrl: https://MyWebhookServer.com:8443:/simulateClient healthCheckUrl: https://MyWebhookServer.com:8443:/simulateClientHealthCheck 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 x-devcenter-metaData: categoryTag: Webhooks developerGuides: https://developer.cybersource.com/docs/cybs/en-us/webhooks/implementation/all/rest/webhooks/wh-fg-intro.html delete: tags: - Manage Webhooks summary: Delete a Webhook Subscription description: Delete the webhook. Please note that deleting a particular webhook does not delete the history of the webhook notifications. operationId: deleteWebhookSubscription parameters: - name: webhookId in: path type: string description: The webhook identifier. required: true produces: - application/json;charset=utf-8 consumes: - application/json;charset=utf-8 responses: '200': description: Ok '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 /notification-subscriptions/v1/webhooks/{webhookId}: post: tags: - Manage Webhooks summary: Test a Webhook Configuration description: "Test the webhook configuration by sending a sample webhook. Calling this endpoint sends a sample webhook to the endpoint identified in the user's subscription. \n\nIt will contain sample values for the product & eventType based on values present in your subscription along with a sample message in the payload. \n\nBased on the webhook response users can make any necessary modifications or rest assured knowing their setup is configured correctly.\n" parameters: - name: webhookId in: path type: string description: The Webhook Identifier. required: true x-devcenter-metaData: categoryTag: Webhooks developerGuides: https://developer.cybersource.com/docs/cybs/en-us/webhooks/implementation/all/rest/webhooks/wh-fg-intro.html produces: - application/json;charset=utf-8 consumes: - application/json;charset=utf-8 responses: '201': description: Created schema: type: object properties: eventDate: type: string description: Date that the webhook was delivered eventType: type: string description: The event name the webhook was delivered for organizationId: type: string description: The Organization Identifier. payloads: type: object properties: testPayload: type: object properties: message: type: string description: The test message delivered in the webhook example: Yay! Your webhook integration worked! This is only a test and an example of what a webhook message payload looks like. Thank you for using our test feature. productId: type: string description: The product the webhook was delivered for requestType: type: string description: Identifies the the type of request retryNumber: type: integer description: The number of retry attempts for a given webhook transactionTraceId: type: string description: The identifier for the webhook webhookId: type: string description: The identifier of the subscription /notification-subscriptions/v2/webhooks/{webhookId}/status: put: tags: - Manage Webhooks summary: Update a Webhook Status description: "Users can update the status of a webhook subscription by calling this endpoint. \n\nThe webhookId parameter in the URL path identifies the specific webhook subscription to be updated. The request body accepts the values ACTIVE or INACTIVE. If the subscription is set to INACTIVE, webhooks will not be delivered until the subscription is activated again.\n" parameters: - name: webhookId in: path type: string description: The Webhook Identifier. required: true - name: updateStatus in: body description: The status that the subscription should be updated to. schema: type: object properties: status: type: string description: "The status the user intends to update the subscription to. The supported values are ACTIVE & INACTIVE. If the subscription status is INACTIVE, webhook notifications will not be sent. Webhooks will resume being sent once the subscription is ACTIVE again. \nPossible values:\n- ACTIVE\n- INACTIVE" default: INACTIVE example: status: ACTIVE produces: - application/json;charset=utf-8 consumes: - application/json;charset=utf-8 responses: '200': description: Updated '401': description: Unauthorized '404': description: Not found schema: type: object properties: reason: type: string message: type: string details: type: array items: type: object properties: field: type: string reason: type: string '500': description: Server error x-example: example0: summary: Update Webhook Status value: status: ACTIVE x-devcenter-metaData: categoryTag: Webhooks developerGuides: https://developer.cybersource.com/docs/cybs/en-us/webhooks/implementation/all/rest/webhooks/wh-fg-intro.html /kms/egress/v2/keys-asym: post: tags: - Manage Webhooks summary: Message Level Encryption description: 'Store and manage certificates that will be used to preform Message Level Encryption (MLE). Each new webhook will need its own unique asymmetric certificate. You can either use a digital certificate issued/signed by a CA or self-sign your own using the documentation available on the Developer Guide. ' operationId: saveAsymEgressKey parameters: - name: v-c-correlation-id in: header description: A globally unique id associated with your request type: string pattern: ^[A-Za-z0-9\.\-_:]+$ minLength: 2 maxLength: 100 - name: v-c-sender-organization-id in: header description: Sender organization id type: string pattern: ^[A-Za-z0-9\-_]+$ minLength: 2 maxLength: 100 - name: v-c-permissions in: header description: Encoded user permissions returned by the CGK, for the entity user who initiated the boarding type: string - name: SaveAsymEgressKey in: body description: Provide egress Asymmetric key information to save (create or store) required: true schema: type: object properties: clientReferenceInformation: type: object description: Object for client references. properties: code: type: string maxLength: 50 description: 'Client generated order reference or tracking number. CyberSource recommends that you send a unique value for each transaction so that you can perform meaningful searches for the transaction. ' clientRequestAction: type: string description: 'Client request action. ' keyInformation: type: object description: 'Egress Asymmetric Key Information Request ' properties: provider: type: string description: 'Provider name ' tenant: type: string description: 'Tenant name ' keyType: type: string description: 'Type of the key ' organizationId: type: string description: 'Organization Id ' pub: type: string description: 'Public certificate with only base64 encoded payload and not the header (BEGIN CERTIFICATE) and footer (END CERTIFICATE) ' keyId: type: string description: 'Key Serial Number ' pvt: type: string description: 'Private certificate with only base64 encoded payload and not header (BEGIN CERTIFICATE) and footer (END CERTIFICATE) ' status: type: string description: 'The status of the key ' expiryDuration: type: string description: 'Key expiry duration in days ' produces: - application/json;charset=utf-8 consumes: - application/json;charset=utf-8 responses: '201': description: Successful Response schema: type: object description: 'Egress Asymmetric Key Information Response. ' properties: submitTimeUtc: type: string description: 'Time of request in UTC. Format: `YYYY-MM-DDThh:mm:ssZ` Example `2016-08-11T22:47:57Z` equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The `T` separates the date and the time. The `Z` indicates UTC. ' status: type: string description: "The status of the submitted transaction.\nPossible values:\n - ACCEPTED\n" '400': description: Bad Request '401': description: Unauthorized Request '502': description: Unexpected system error or system timeout x-example: example0: summary: Create Asymmetric Key value: clientRequestAction: STORE keyInformation: provider: tenant: nrtd keyType: publickey organizationId: pub: MIIDbDCCAlQCCQD4lcSlmasmCTANBgkqhkiG9w0BAQsFADB4MQswCQYDVQQGEwJVUzELMAkGA1UECAwCVFgxDzANBgNVBAcMBkF1c3RpbjENMAsGA1UECgwEVGVzdDEOMAwGA1UECwwFVGVzdDIxDjAMBgNVBAMMBVRlc3QzMRwwGgYJKoZIhvcNAQkBFg10ZXN0QHRlc3QuY29tMB4XDTIxMDgwOTE0MTcxNFoXDTIyMDgwOTE0MTcxNFoweDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAlRYMQ8wDQYDVQQHDAZBdXN0aW4xDTALBgNVBAoMBFRlc3QxDjAMBgNVBAsMBVRlc3QyMQ4wDAYDVQQDDAVUZXN0MzEcMBoGCSqGSIb3DQEJARYNdGVzdEB0ZXN0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMcHQWZRETqim3XzUQlAiujFEvsHIi1uJZKj+1lvPH36Ucqo3ORcoh/MM/zxVdahjhSyyp7MHuKBWnzft6bFeDEul6qKWGPAAzaxG/2xZSV3FggA9SyAZEDUpJ6mblwqm/EY4KmZi1FrNBUHfW2wwaqDexHPRDesRG6aI7Wuu4GdQUUqoTa2+Nv7kVgEDmGcfIjoWkGKHe+Yan95EITrq4jEFCE5Tg/vERnMvHfK2SovENZ13/pnwFYbeh1kfJSBzWW7yq8AyQAgAE9iqJXbJ/MAasir2vjUQ2+Hcl7WbkpoVjLqDt3rzV1T0Bsd4T9SC3wij9qjJSxa6vAgV4xn6bECAwEAATANBgkqhkiG9w0BAQsFAAOCAQEADuMrtYW1Sf0IsZ4ZD9ipjUrFuTxqh+0M5Jk8h0QqAXEHA/MawedlU3JmE3NB/UR82/XUwdmtObGnFANuUQQ+8WMFpcNo/Sq2kg7juneHZroRh72o73UUMtHWHzo8s0fXElNal8h3SaAAnjMblCiN+gM1RvWMvhGrMTXp2XAcdIezXf8/FOZLlzOF9QylbSk1U4ayWBag6MydkxgHjkPKdShZROEm0oz/O7J/gNp/r7J8F42Rw9MmJh9qH3SFre13nQa8V7Kg+dJHZ/jpGtSlDHAxO0SSTrPXkwB+iBJ6hSkiL/J2Ep+lYHqVe3p5NXMOlTtJdbU4enHeLkD6PazKTw expiryDuration: '365' x-devcenter-metaData: categoryTag: Webhooks developerGuides: https://developer.cybersource.com/docs/cybs/en-us/webhooks/implementation/all/rest/webhooks/wh-fg-intro.html x-devcenter-metaData: categoryTagArray: - name: Payments description: For more information about Payments transactions, see the [Payments Developer Guides Page](https://developer.cybersource.com/docs/cybs/en-us/payments/developer/ctv/rest/payments/payments-intro.html). - name: Transaction_Batches description: For more information about Transaction Batches, see the [Transaction Batches Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-transaction-batch-api/txn_batch_api_intro.html). - name: eCheck_AVS description: For more information about eCheck Account Validation, see the [Account Validation Developer Guides Page](https://...). - name: Token_Management description: For more information about the Token Management Service (TMS) see the [Token Management Developer Guide](https://developer.cybersource.com/docs/cybs/en-us/tms/developer/all/rest/tms/tms-overview.html) - name: Flex_Microform description: Microform Integration is a lightweight acceptance solution designed to safely and securely accept payment information within your web page. Microform is designed to a be embedded seamlessly within your existing webpage experience, blending in with your existing acceptance form. This solution allows for the replacement of sensitive payment date with a transient token (a short lived reference to the sensitive payment data). For more information about Flex Microform transactions, see the [Flex Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-flex/SAFlexibleToken.html). For examples on how to integrate Flex Microform within your webpage please see our [GitHub Flex Samples](https://github.com/CyberSource?q=flex&type=&language=) - name: Flex_API description: For more information about Flex API, please see [Developer Guides Page](https://developer.cybersource.com/docs/cybs/en-us/digital-accept-flex/developer/all/rest/digital-accept-flex/da-flex-api-intro.html). - name: Risk_Management - name: Payouts description: 'For more information about Payouts, see the [Payouts Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-payouts/Introduction.html). ' - name: Installments description: For more information about Installment contact Cybersource Support. For Visa installments contact VISthroughCYBS@visa.com - name: Recurring_Billing_Subscriptions description: For more information about Recurring Billing, see the [Recurring Billing Developer Guide](https://developer.cybersource.com/docs/cybs/en-us/recurring-billing/developer/all/rest/recurring-billing-developer/recur-bill-services-intro.html). - name: BIN_Lookup description: 'The BIN Lookup Service is a versatile business tool that provides card network agnostic solution designed to ensure frictionless transaction experience by utilizing up-to-date Bank Identification Number (BIN) attributes sourced from multiple global and regional data sources. This service helps to improve authorization rates by helping to route transactions to the best-suited card network, minimizes fraud through card detail verification and aids in regulatory compliance by identifying card properties. The service is flexible and provides businesses with a flexible choice of inputs such as primary account number (PAN), network token from major networks (such as Visa, American Express, Discover and regional networks) which includes device PAN (DPAN), and all types of tokens generated via CyberSource Token Management Service (TMS). Currently, the range of available credentials is contingent on the networks enabled for the business entity. Therefore, the network information specified in this documentation is illustrative and subject to personalized offerings for each reseller or merchant. ' - name: Transaction_Details description: For more information about Transaction Details, see the [Transaction Details Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-txn-search-details-rest-api-dev-guide-102718/txn_details_api.html). - name: Transaction_Search description: For more information about Transaction Search, see the [Transaction Search Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-txn-search-details-rest-api-dev-guide-102718/txn_search_api.html). - name: Reporting description: 'For more information about Reporting, see the [Reporting Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-reporting-rest-api-dev-guide-102718/reporting_api.html). ' - name: Secure_File_Share description: For more information about Secure File Share, see the [Secure File Share Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-secure-file-share-api-102718/secure_file_share_api_intro.html). - name: Invoices description: For more information about Invoicing, see the [Invoicing Developer Guide](https://developer.cybersource.com/docs/cybs/en-us/invoicing/developer/all/rest/invoicing/Introduction.html). - name: Pay_By_Link description: For more information about PayByLink, see the [PBL Developer Guide](https://developer.cybersource.com/docs/cybs/en-us/boarding/user/all/rest/boarding/templates-matrix-intro/templates-matrix-pay-by-link.html). - name: User_Management description: For more information about User Management, see the [User Managment Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-user-management-api-102718/user_management_api_intro.html). - name: Value_Added_Service - name: Fee Service - name: Merchant_Boarding description: For more information about Merchant Boarding, please see [Developer Guides Page](https://developer.cybersource.com/api/developer-guides/Merchant-Boarding-API_ditamap/Merchant-Boarding-API.html). - name: Webhooks description: For more information about Webhooks, please see [Developer Guides Page](https://developer.cybersource.com/docs/cybs/en-us/webhooks/implementation/all/rest/webhooks/wh-fg-intro.html). - name: Unified_Checkout description: For more information about Unified Checkout, see the [Unified Checkout Developer Guides Page](https://developer.cybersource.com/docs/cybs/en-us/unified-checkout/developer/all/rest/unified-checkout/uc-intro.html). - name: Unified_Checkoutv1 description: For more information about Unified Checkout, see the [Unified Checkout Developer Guides Page](https://developer.cybersource.com/docs/cybs/en-us/unified-checkout/developer/all/rest/unified-checkout/uc-about-guide.html). - name: Account_Updater description: For more information about Account Updater, see the [Account Updater Developer Guides Page:](https://developer.cybersource.com/library/documentation/dev_guides/Account_Updater_UG/html/index.html). - name: Visa_Bank_Account_Validation description: 'The Visa Bank Account Validation Service is a new standalone product designed to validate customer''s routing and bank account number combination for ACH transactions. Merchant''s can use this standalone product to validate their customer''s account prior to processing an ACH transaction against the customer''s account to comply with Nacha''s account validation mandate for Web-debit transactions. ' - name: Currency Conversion description: 'Empower global transactions with transparency and choice. Our Dynamic Currency Conversion API lets merchants offer customers the option to pay in their home currency at checkout, delivering real-time exchange rates and clear cost disclosure. **Key Benefits:** - **Enhanced Customer Experience:** Provide clarity and convenience for international shoppers. - **Real-Time Rates:** Accurate currency conversion with all the data required for acquirers and their merchants to maintain compliance with card network rules. - **Seamless Integration:** Flexible API endpoints for rate lookup, authorization, and capture. - **Regulatory Compliance:** Provides the data required for acquirers and merchants to meet and maintain card scheme requirements for disclosure and consent. Ideal for merchants and payment partners seeking to boost trust and conversion in cross-border commerce. **Key Features:** - **Rate Lookup:** Retrieves the most up-to-date exchange rate for eligible cards before authorization. - **Currency Choice:** Enables the merchant to offer customers the option to select between the merchant''s local currency and their card''s billing currency. - **Compliance:** Ensures merchants have the data required to adhere to card network regulations; exchange rates, markups, etc. **Supported Scenarios:** - Dynamic Currency Conversion when cardholder''s billing currency differs from merchant''s pricing currency. - Merchant and acquirer must support the cardholder''s billing currency. **Core API Endpoints:** **Currency Conversion API** Returns eligibility and exchange rate details, including: - exchangeRate - marginRate - reconciliationId and Id (for subsequent payment requests) **Payment Authorization with DCC*** POST /pts/v2/payments Required fields include: - orderInformation.amountDetails.currency - orderInformation.amountDetails.originalCurrency - orderInformation.amountDetails.originalAmount - orderInformation.amountDetails.exchangeRate - currencyConversion.indicator (e.g., 1 = Converted, 2 = Nonconvertible, 3 = Declined) **Capture with DCC*** POST /pts/v2/payments/{id}/captures Maps from original authorization and includes original and converted amounts. **Refund with DCC*** POST /pts/v2/captures/{id}/refunds Maps from original authorization and includes original and converted amounts. *Note: DCC is only supported on select processors. Contact your acquirer or account manager for more information. **Compliance & Disclosure:** Merchants must: - Adhere to card network rules for Dynamic Currency Conversion (DCC) transactions. - Display the converted amount, exchange rate, and markup percentage and other required disclosures. - Obtain explicit cardholder consent before applying DCC. - Work with your acquirer to obtain full set of compliance requirements. For more information, see the [Currency Conversion Developer Guide](https://developer.cybersource.com/docs/cybs/en-us/currency-conversion/developer/all/rest/currency-conversion/cc-intro.html). ' - name: Intelligent_Commerce_Connect description: For more information about Intelligent Commerce Cross Network Service API, please see [Developer Guides](https://developer.cybersource.com/docs/cybs/en-us/intelligent-commerce/developer/all/rest/intelligent-commerce/intelligent-commerce-about-guide.html).