openapi: 3.2.0 info: title: DPP Gateway Experience Events API version: '1' description: This application will be useful to perform payments with multiple payment methods, Creating customers with in DPP x-provenance: method: derived derived_from: RAML 1.0 published by Deluxe at https://developer.deluxe.com/api-ref/api/merchant-services/ derived_on: '2026-08-13' note: Faithful mechanical conversion of the provider-published RAML 1.0 definition and its rendered request/response parameter and example documents. No operation, field, schema or example in this file was authored by API Evangelist. servers: - url: https://api.deluxe.com/dpp/v1 description: Production (default routing path) - url: https://api.deluxe.com/dpp/v1/gateway description: Production (legacy routing path) - url: https://sandbox.api.deluxe.com/dpp/v1 description: Sandbox / test environment security: - bearerAuth: [] tags: - name: events paths: /events/subscribe: post: operationId: subscribeEvent summary: Subscribe Event tags: - events description: This endpoint allows you to subscribe to specific events by providing a URL where event notifications will be sent. Upon successful subscription, you will receive notifications based on the specified event types at the provided webhook URL. requestBody: required: true content: application/json: schema: type: object properties: userName: description: Username for the developer account. Note- Submitting Username will result in a subscription for all accounts available under that user’s portfolio. Submitting Access Token will result in a subscription for that merchant account only. type: string examples: - johndoe events: description: Array to hold event details type: array items: type: object properties: eventUri: description: The URL where the webhook will send data type: string pattern: ^https:\/\/([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}(\/[a-zA-Z0-9\-_]+)*(\/)? examples: - https://www.yourwebhookurl.com eventType: description: 'Type of webhook event to subscribe 1. **MERCHANT BOARDED** – Triggered when a new merchant account is successfully created (boarded) into the system 2. **MERCHANT UPDATED** – Sent when an existing merchant’s information (e.g., address, contact, banking details) has been modified. 3. **CC BATCH** – Sent when a credit card batch is processed, summarizing a group of card transactions settled together. 4. **ACH BATCH** – Fires when an ACH (Automated Clearing House) batch is processed, indicating grouped electronic payments or transfers. 5. **ACH REJECT** – Triggered when an ACH transaction fails or is rejected (e.g., due to insufficient funds, closed account, or invalid details). 6. **TRANSACTION** – A real-time webhook for individual transaction activity (e.g., authorization, capture, refund, void). 7. **VAULT** – Fires when there are updates to the customer vault (e.g., customer profile or stored payment methods are added, updated, or deleted). 8. **CC CHARGEBACK** – Triggered when a cardholder disputes a transaction, and a chargeback request is initiated by the issuing bank.' type: string enum: - MERCHANT BOARDED - MERCHANT UPDATED - CC BATCH - ACH BATCH - ACH REJECT - TRANSACTION - VAULT - CC CHARGEBACK examples: - MERCHANT BOARDED required: - eventType - eventUri required: - userName example: userName: test@first-american.net events: - eventUri: https://apitran2.deluxe.com/listener/api/logging/PluginError eventType: TRANSACTION - eventUri: https://apitran2.deluxe.com/listener/api/logging/PluginError eventType: ACH REJECT responses: '200': description: Successful response content: application/json: schema: type: object properties: events: description: Array to hold event details type: array items: type: object properties: eventSubscriptionId: description: Identifier for the webhook subscription type: string examples: - '101' eventType: description: 'Type of webhook event to subscribe 1. **MERCHANT BOARDED** – Triggered when a new merchant account is successfully created (boarded) into the system 2. **MERCHANT UPDATED** – Sent when an existing merchant’s information (e.g., address, contact, banking details) has been modified. 3. **CC BATCH** – Sent when a credit card batch is processed, summarizing a group of card transactions settled together. 4. **ACH BATCH** – Fires when an ACH (Automated Clearing House) batch is processed, indicating grouped electronic payments or transfers. 5. **ACH REJECT** – Triggered when an ACH transaction fails or is rejected (e.g., due to insufficient funds, closed account, or invalid details). 6. **TRANSACTION** – A real-time webhook for individual transaction activity (e.g., authorization, capture, refund, void). 7. **VAULT** – Fires when there are updates to the customer vault (e.g., customer profile or stored payment methods are added, updated, or deleted). 8. **CC CHARGEBACK** – Triggered when a cardholder disputes a transaction, and a chargeback request is initiated by the issuing bank.' type: string enum: - MERCHANT BOARDED - MERCHANT UPDATED - CC BATCH - ACH BATCH - ACH REJECT - TRANSACTION - VAULT - CC CHARGEBACK examples: - MERCHANT BOARDED success: description: Status of the operation type: boolean examples: - true message: description: Descriptive message about the response type: array items: {} examples: - - Subscribed successfully required: - eventSubscriptionId - eventType - message - success example: events: - eventSubscriptionId: '1319' eventType: TRANSACTION success: true message: - Subscribed successfully. - eventSubscriptionId: '1320' eventType: ACH REJECT success: true message: - Subscribed successfully. '401': description: 'Unauthorized: invalid token, expired token, or connection error when connecting to the authorization server.' '403': description: 'Forbidden: invalid client application credentials.' /events/unsubscribe: post: operationId: unsubscribeEvent summary: Unsubscribe Event tags: - events description: This endpoint allows you to unsubscribe from specific events by providing the associated subscription details, including the email address and eventSubscriptionId. Upon successful unsubscription, you will no longer receive notifications for the specified events. requestBody: required: true content: application/json: schema: type: object properties: events: description: Array to hold event details type: array items: type: object properties: email: description: Email address to send the webhook notification type: string pattern: ^([a-zA-Z0-9.!#$\%&'*+-=?^_`{|}~]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})$ examples: - sample@email.com eventSubscriptionId: description: Identifier for the webhook subscription type: number examples: - 101 required: - email - eventSubscriptionId example: events: - email: anusha.test@deluxe.com eventSubscriptionId: 1319 responses: '200': description: Successful response content: application/json: schema: type: object properties: events: description: Array to hold event details type: array items: type: object properties: eventSubscriptionId: description: Identifier for the webhook subscription type: string examples: - '101' success: description: Status of the operation type: boolean examples: - true message: description: Descriptive message about the response type: array items: {} examples: - - subscribed succesfully required: - eventSubscriptionId - message - success example: events: - eventSubscriptionId: '1319' success: true message: - Unsubscribed successfully. '401': description: 'Unauthorized: invalid token, expired token, or connection error when connecting to the authorization server.' '403': description: 'Forbidden: invalid client application credentials.' /events/resend: post: operationId: resendEvent summary: Resend Event tags: - events description: The Resend Event API endpoint allows you to resend a previously triggered event, enabling the system to reprocess the event's associated actions or notifications. This is useful for scenarios where the original event processing may have failed or needs to be re-triggered for verification purposes. requestBody: required: true content: application/json: schema: type: object properties: eventId: description: Identifier for the webhook subscription type: number examples: - 1787191 required: - eventId example: eventId: 1320 responses: '200': description: Successful response content: application/json: schema: type: object properties: eventId: description: Identifier for the webhook subscription type: string examples: - '1787191' eventType: description: Type of webhook event type: string enum: - MERCHANT BOARDED - MERCHANT UPDATED - CC BATCH - ACH BATCH - ACH REJECT - TRANSACTION examples: - MERCHANT BOARDED success: description: Status of the operation type: boolean examples: - true message: description: Descriptive message about the response type: array items: {} examples: - - Resend successfully. partnerToken: description: Unique Merchant Identifier for API Calls type: string pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ examples: - 80ae9a4a-5efd-412e-89b9-532f2ab2f817 required: - eventId - eventType - message - partnerToken - success example: eventId: '2952690' eventType: MERCHANT BOARDED success: true message: - Resend successfully. partnerToken: B3D50B55-65CE-4B7B-8FE5-AB1B4F5CEDA7 '401': description: 'Unauthorized: invalid token, expired token, or connection error when connecting to the authorization server.' '403': description: 'Forbidden: invalid client application credentials.' /events/report: post: operationId: retrieveEventsReports summary: Retrieve Events Reports tags: - events description: This call is related to reports for different kinds of webhooks such as Merchant Boarded, Merchant Updated, CC Batch, ACH Batch, ACH Reject, Vault, CC chargeback. The result has all kinds of webhooks requests and responses along with their report statuses. parameters: - name: pageNumber in: query required: false schema: type: number examples: - 1 description: Specifies the page of results to retrieve. This is useful for navigating large datasets by retrieving data in manageable chunks. example: 1 - name: pageSize in: query required: false schema: type: number examples: - 1 description: Defines the number of records to be returned in a single response. This helps control response size and optimize performance. example: 1 requestBody: required: true content: application/json: schema: description: Object to hold search parameters like date range and event type. type: object properties: eventType: description: This indicates the type of event report for which you can see the requests and responses triggered in a specified date range type: string examples: - TRANSACTION reportStartDate: description: The start date from which user wants to see the event report. type: string pattern: ^(0[1-9]|1[0-2])/(0[1-9]|[12][0-9]|3[01])/[0-9]{4}$ examples: - 01/31/2025 reportEndDate: description: The end date from which user wants to see the event report. type: string pattern: ^(0[1-9]|1[0-2])/(0[1-9]|[12][0-9]|3[01])/[0-9]{4}$ examples: - 01/31/2025 required: - eventType - reportEndDate - reportStartDate example: eventType: TRANSACTION reportStartDate: 08/25/2024 reportEndDate: 08/24/2025 responses: '200': description: Successful response content: application/json: schema: description: Object to hold the event report that contains event type, event id, event uri and its respective requests and responses. type: object example: response: recordCount: 1 report: - webhookType: Transaction webhookId: 3586311 webhookUri: https://webhook.site/bb9bb726-ad5b-4214-9125-abf826d7931f webhookRequest: EventType: Transaction TransactionType: AUTHORIZE PaymentType: CREDITCARD AccessToken: F0D79985-E3AC-48D4-AF72-F999518B1ADA DbaName: 6/15 ZENTRO TEST FOR ROBERT OPT BLUE Currency: USD MID: '6280490007617210' MerNo: '6280490007617210' TerminalId: '001' TransactionId: B4A3D923-8A3E-423D-B698-5F340698CED3 DateTime: '2026-04-30 07:34:59' TransactionAmount: '16.00' InvoiceNumber: '269894454946778227' CardType: VISA CardNumber: 411111****1111 CardExpiration: '**33' AchAccountNumber: '' AchRoutingNumber: '' AchAccountType: '' Discount: '0.00' ProcessingFee: '0.00' Tip: '0.00' Tax: '2.33' Surcharge: '0.00' BatchNumber: '20260430731' Status: APPROVED AuthCode: 24414A AuthResponse: '' AvsResponse: Y CvvResponse: M CustomerId: '' RecurringId: '' RecurringType: '' RecurringAmount: '0.00' RecurringStartDate: '' RecurringEndDate: '' RecurringDayDetail: '' RecurringMonthDetail: '' VaultId: '' VaultKey: '' Customer: Name: SyedMuleTest AuthorizewithCard Address: 123 Main St City: San Francisco State: CA PostalCode: '94111' Country: USA EmailAddress: jane@email.com Phone: 650-555-1234 CompanyName: '' Shipping: Name: Jane Doe Address: 123 Main St City: San Francisco State: CA PostalCode: '94111' Country: USA EmailAddress: '' Phone: 650-555-1234 CompanyName: '' Level2Data: CustomerRefNo: '7898654' Level2TaxAmount: '' LocalTaxFlag: '0' PurchaseCard: 'false' ShippingZip: '94002' TaxAmount: '2.33' SaleItems: - Name: Banana Sku: SKU1234 Price: '0.0' Quantity: '2' Total: '2.0' TaxAmount: '0.0' CommodityCode: '' UnitOfMeasure: Dozen FreightAmount: '0.0' DutyAmount: '0.0' ItemDiscountAmount: '0.99' ItemDiscountRate: '0.1' CustomFields: - Name: Invoice Number Value: inv123423 - Name: Invoice Number Value: inv1234 SubmissionMethod: DPP API webhookResponse: 429 webhookStatus: Failed webhooksentDateTime: '2026-04-30T07:35:11.497' '401': description: 'Unauthorized: invalid token, expired token, or connection error when connecting to the authorization server.' '403': description: 'Forbidden: invalid client application credentials.' /events/performTest: post: operationId: performTestEvent summary: Perform Test Event tags: - events description: This API endpoint allows you to test the webhook endpoint. This endpoint posts a sample/test data as payload based on the webhook type to the URL provided in the request. requestBody: required: true content: application/json: schema: type: object properties: eventType: description: Type of webhook event to subscribe type: string maxLength: 50 examples: - Transaction testEndPoint: description: Test end point to receive on the listening/target URL type: string pattern: ^https:\/\/([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}(\/[a-zA-Z0-9\-_]+)*(\/)? maxLength: 500 examples: - https://webhook.site/acc3f0bb-27d9-4a19-98ec-33af9c56741b required: - eventType - testEndPoint example: eventType: Transaction testEndPoint: https://webhook.site/acc3f0bb-27d9-4a19-98ec-33af9c56741b responses: '200': description: Successful response content: application/json: schema: type: object properties: response: description: response of webhook event to subscribe type: string examples: - This URL has no default content configured. View in Webhook.site. statusCode: description: statusCode to receive on the listening/target URL type: number examples: - 200 required: - response - statusCode example: response: This URL has no default content configured. View in Webhook.site. statusCode: 200 '401': description: 'Unauthorized: invalid token, expired token, or connection error when connecting to the authorization server.' '403': description: 'Forbidden: invalid client application credentials.' components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: 'This API supports OpenID Connect OAuth 2.0 for authenticating all API requests. Bearer tokens are obtained from the Deluxe security service token endpoint using client credentials and expire after 60 minutes.' basicAuth: type: http scheme: basic description: This API supports Anypoint's Client ID Enforcement authentication policy.