{"title":"DPP Gateway Experience API","description":"This application will be useful to perform payments with multiple payment methods, Creating customers with in DPP","baseUri":"https://api.deluxe.com{path}","version":1,"mediaType":"application/json","baseUriParameters":{"path":{"description":"The endpoint supports two base paths **/dpp/v1** (default) and **/dpp/v1/gateway** to enable path-based routing. Both paths will continue to coexist to maintain backward compatibility. However, we recommend using **/dpp/v1** as the default for all new integrations.","type":"string","enum":["/dpp/v1","/dpp/v1/gateway"],"default":"/dpp/v1","required":true}},"annotationTypes":{"internal":{"type":"boolean","description":"Flag to indicate whether the resource/endpoint documenrtation is intended for internal use. If the internal flag is set to true, the documentation should not be visible."}},"uses":{"Health":"exchange_modules/4c08e201-c97b-4665-9310-e3ac89ce1c28/api-health-check/1.0.1/api-health-check.raml","StandardErrors":"exchange_modules/4e9f20a7-a4a1-4b0c-905c-e0c8b30364f7/api-standard-errors-fragment/2.0.6/api-standard-errors.raml","SecuritySchemas":"exchange_modules/4c08e201-c97b-4665-9310-e3ac89ce1c28/api-standard-security/1.0.3/api-standard-security.raml","Global":"/exchange_modules/810b236f-7e89-4164-b270-97d68e3724ee/deluxe-merchant-services-api-common-library/1.0.1/deluxe-merchant-services-api-common-library.raml","Common":"/libraries/CommonLibrary.raml","CreatePayments":"/libraries/CreatePayments.raml","EmvPayments":"/libraries/EmvPayments.raml","CancelPayments":"/libraries/CancelPayments.raml","CompletePayments":"/libraries/CompletePayments.raml","AuthorizePayments":"/libraries/AuthorizePayments.raml","SearchPayments":"/libraries/SearchPayments.raml","BatchPayments":"/libraries/BatchPayments.raml","Refund":"/libraries/Refund.raml","EmvRefunds":"/libraries/EmvRefunds.raml","BatchRefunds":"/libraries/BatchRefunds.raml","CreateSubscription":"/libraries/CreateSubscription.raml","ModifySubscription":"/libraries/ModifySubscription.raml","CreatePaymentMethod":"/libraries/CreatePaymentMethod.raml","ModifyPaymentMethod":"/libraries/ModifyPaymentMethod.raml","DeletePaymentMethod":"/libraries/DeletePaymentMethod.raml","GetPaymentMethod":"/libraries/GetPaymentMethod.raml","GenerateToken":"/libraries/GenerateToken.raml","AddressVerificationService":"/libraries/AddressVerificationService.raml","ACHVerification":"/libraries/ACHVerification.raml","Surcharge":"/libraries/Surcharge.raml","GetBinDetails":"/libraries/GetBinDetails.raml","CreateCustomer":"/libraries/CreateCustomer.raml","ModifyCustomer":"/libraries/ModifyCustomer.raml","GetCustomer":"/libraries/GetCustomer.raml","DeleteCustomer":"/libraries/DeleteCustomer.raml","CloseBatches":"/libraries/CloseBatches.raml","PaymentLink":"/libraries/PaymentLink.raml","DeletePaymentLink":"/libraries/DeletePaymentLink.raml","EventsSubscribe":"/libraries/EventsSubscribe.raml","EventsUnsubscribe":"/libraries/EventsUnsubscribe.raml","EventsPerformTest":"/libraries/EventsPerformTest.raml","EventsResend":"/libraries/EventsResend.raml","EventsReport":"/libraries/EventsReport.raml","EMVDevicesList":"/libraries/EMVDevicesList.raml","EMVDeviceDetailsById":"/libraries/EMVDeviceDetailsById.raml","EMVDeviceRefreshById":"/libraries/EMVDeviceRefreshById.raml"},"securedBy":["SecuritySchemas.oidcEnforcement"],"/":{"displayName":"Health Check","description":"This health check resource helps to check the application health status.","type":"Health.check","is":["StandardErrors.errorHandler"]},"/payments":{"displayName":"Payments","description":"/documentation/payments.md","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"displayName":"Create Payment","description":"The Payments resource in the API is a comprehensive service that manages essential payment operations, processing sales, handling recurring payments, authorizing transactions, capturing funds, and voiding payments. This resource ensures seamless and secure payment processing, supporting various transaction types and providing the necessary flexibility for managing payment workflows efficiently.","body":{"application/json":{"type":"CreatePayments.Request","example":"/examples/CreatePaymentRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"CreatePayments.Response","example":"/examples/CreatePaymentResponse.json"}}}}},"/cancel":{"displayName":"Cancel","description":"The Payments resource handles key payment operations like generating token, sales, recurring payments, authorizations, captures(complete), and voids(cancel).","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"displayName":"Cancel Payment","description":"Use this API to cancel a payment that is still in process and has not yet been settled. This endpoint is typically used to void transactions on the same day they are initiated, before the batch closure occurs. By utilizing this API, you can halt a payment before it enters the settlement phase, effectively preventing the transfer of funds. This is particularly useful in scenarios where a payment needs to be stopped due to errors, cancellations, or changes in the transaction.","body":{"application/json":{"type":"CancelPayments.Request","example":"/examples/CancelPaymentRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"CancelPayments.Response","example":"/examples/CancelPaymentResponse.json"}}}}}},"/authorize":{"displayName":"Authorize Payment","description":"The Payments resource handles key payment operations like generating token, sales, recurring payments, refunds, authorizations, captures, and voids.","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"description":"Submits a payment authorization request to reserve the specified amount on the customer's payment method. This authorization process ensures that the funds are available but does not complete the transaction until a capture is performed. The endpoint supports authorizations using a direct card, a tokenized payment method, or a card stored in a secure vault. This process is crucial for scenarios where the payment needs to be confirmed or adjusted before finalizing the charge.","displayName":"Authorize Payment","body":{"application/json":{"type":"AuthorizePayments.Request","example":"/examples/AuthorizePaymentRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"AuthorizePayments.Response","example":"/examples/AuthorizePaymentResponse.json"}}}}}},"/complete":{"displayName":"Complete","description":"The Payments resource handles key payment operations like generating token, sales, recurring payments, authorizations, captures, and voids.","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"description":"Use this API to finalize a previously authorized payment or to add a tip to the original transaction. This endpoint allows you to capture or complete an amount that is either equal to or less than the initially authorized amount. Partial captures are supported, enabling flexibility in payment processing. Any remaining authorized funds that are not captured will be automatically released by the bank after a specified period. This feature is particularly useful for scenarios like tip adjustments or when the final amount is determined after the initial authorization.","displayName":"Complete Payment","body":{"application/json":{"type":"CompletePayments.Request","example":"/examples/CompletePaymentRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"CompletePayments.Response","example":"/examples/CompletePaymentResponse.json"}}}}}},"/search":{"displayName":"Search Payments","description":"The search resource handles to retrieve payment details for a given date range","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"description":"This API endpoint is used to search and retrieve a list of payments, providing details about each payment for a given data range. The response indicates whether the search was successful or if there were errors or validation issues.","displayName":"Search Payments","body":{"application/json":{"type":"SearchPayments.Request","example":"/examples/SearchPaymentsRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"SearchPayments.Response","example":"/examples/SearchPaymentsResponse.json"}}}}}},"/batch":{"displayName":"Batch Payments","(internal)":true,"description":"The Batch Payments resource allows you to send multiple transctions in a single API call and process all of them in single batch in a given date. This feature is useful for processing multiple payment transactions in one batch.","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"description":"The Create Batch Payments end point allows you to send multiple transctions in a single API call and process all of them in single batch in a given date. This feature is useful for processing multiple payment transactions in one batch.","displayName":"Create Batch Payments","body":{"application/json":{"type":"BatchPayments.Request","example":"/examples/BatchPaymenstRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"BatchPayments.Response","example":"/examples/BatchPaymenstResponse.json"}}}}}}},"/emv":{"displayName":"EMV","description":"/documentation/emv.md","is":["StandardErrors.errorHandler","Common.Headers"],"/payment":{"displayName":"EMV Payments","description":"Create a secure EMV payment transaction. Handles processing and validations specific to EMV chip card payments.","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"displayName":"EMV Payments","description":"/documentation/emv_payment.md","body":{"application/json":{"type":"EmvPayments.Request","example":"/examples/EMVPaymentRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"EmvPayments.Response","example":"/examples/EMVPaymentResponse.json"}}}}}},"/refund":{"displayName":"EMV Refunds","description":"Create a secure EMV refund transaction. Handles processing and validations specific to EMV chip card payments.","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"displayName":"EMV Refunds","description":"/documentation/emv_refund.md","body":{"application/json":{"type":"EmvRefunds.Request","example":"/examples/EMVRefundRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"EmvRefunds.Response","example":"/examples/EMVRefundResponse.json"}}}}}},"/devices":{"displayName":"EMV Devices List","description":"The EMV Devices List resource allows you to get all devices available for a merchant. This action returns deviceId, terminal name, terminal status, cloud status, terminalConnectionId, merchantId, terminalId etc of all devices for a given partnerToken as input in the header.","is":["StandardErrors.errorHandler","Common.Headers"],"get":{"displayName":"EMV Devices List","description":"Retrieves a list of all devices associated with the partnerToken provided in the request.","responses":{"200":{"body":{"application/json":{"type":"EMVDevicesList.Response","example":"/examples/EMVDevicesListResponse.json"}}}}},"/{deviceId}/refresh":{"displayName":"EMV Device Refresh By Id","description":"The EMV Device Refresh By ID resource allows you to refresh a specific EMV cloud device mapped to a merchant by accepting deviceId and terminalConnectionId as input. This action verifies the device and terminal connection association, triggers a device refresh, and returns the status of the refresh operation.","is":["StandardErrors.errorHandler","Common.Headers"],"uriParameters":{"deviceId":{"description":"Unique identifier of the EMV payment device.","type":"string","minLength":1,"maxLength":50,"example":"10","required":true}},"post":{"displayName":"EMV Device Refresh By Id","description":"Refreshes the device of the specified deviceId along with the associated partnerToken provided in the request.","body":{"application/json":{"type":"EMVDeviceRefreshById.Request","example":"/examples/EMVDeviceRefreshByIdRquest.json"}},"responses":{"200":{"body":{"application/json":{"type":"EMVDeviceRefreshById.Response","example":"/examples/EMVDeviceRefreshByIdResponse.json"}}}}}}},"/devicedetails/{deviceId}":{"displayName":"EMV Device Detail By Id","description":"The EMV Devices Details By Id resource allows you to get specific details of a device mapped to the merchant by accepting deviceId as input. This action returns deviceId, deviceName, terminal status and cloud status of a device.","is":["StandardErrors.errorHandler","Common.Headers"],"uriParameters":{"deviceId":{"description":"Unique identifier of the EMV payment device.","type":"string","minLength":1,"maxLength":50,"example":"10","required":true}},"get":{"displayName":"EMV Device Details By Id","description":"Retrieves the details of the specified deviceId along with the associated partnerToken provided in the request.","responses":{"200":{"body":{"application/json":{"type":"EMVDeviceDetailsById.Response","example":"/examples/EMVDeviceDetailsByIdResponse.json"}}}}}}},"/refunds":{"displayName":"Refunds","description":"/documentation/refunds.md","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"description":"Processes refunds through a single endpoint supporting multiple use cases. For standard refunds, provide the paymentId and refund amount. For standalone refunds, specify the refund amount and payment method details, such as card information (cardNumber, expirationDate, CVV) or ACH/Credit details (accountNumber, routingNumber, accountType). For vault refunds, use the paymentMethodId of a stored payment method along with the refund amount. This endpoint ensures flexibility and secure handling of all refund scenarios.\n","displayName":"Create Refund","body":{"application/json":{"type":"Refund.Request","example":"/examples/RefundRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"Refund.Response","examples":{"Refund":"/examples/RefundResponse.json","Credit":"/examples/CreditResponse.json","StandaloneRefund":"/examples/StandaloneRefundResponse.json"}}}}}},"/batch":{"displayName":"Batch Refunds","(internal)":true,"description":"The Batch refund resource allows you to send multiple refund or credit transctions in a single API call. This feature is useful when processing multiple refunds in one batch.","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"description":"The Batch refund end point allows you to send multiple refund or credit transctions in a single API call. This feature is useful when processing multiple refunds in one batch.","displayName":"Create Batch Refunds","body":{"application/json":{"type":"BatchRefunds.Request","example":"/examples/BatchRefundsRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"BatchRefunds.Response","example":"/examples/BatchRefundsResponse.json"}}}}}}},"/subscriptions":{"displayName":"Subscriptions","description":"/documentation/subscriptions.md","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"description":"This API endpoint creates a new subscription for a customer with the specified payment and billing details. You need to provide the following information payment type, amount (including currency), payment method (such as credit card details and billing address), and subscription details (such as start and end dates, frequency, and payment schedule). Additionally, you can specify shipping address, tax information, itemized details (Level 2 and Level 3 data), custom data, merchant category, and any alternate fees. Upon successful subscription creation, a unique subscription identifier and order details will be generated, and the subscription will be scheduled according to the provided parameters.","displayName":"Create Subscription","body":{"application/json":{"type":"CreateSubscription.Request","example":"/examples/CreateSubscriptionRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"CreateSubscription.Response","example":"/examples/CreateSubscriptionResponse.json"}}}}},"/{subscriptionId}":{"uriParameters":{"subscriptionId":{"description":"Unique identifier for a recurring payment","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}$","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true}},"patch":{"is":["StandardErrors.errorHandler","Common.Headers"],"description":"This API endpoint modifies an existing subscription identified by the subscriptionId passed in the URL. You must provide the customer’s ID, the payment method ID, and updated subscription details including frequency, paymentDay, startDate, endDate, paymentMonth, amount, and active. Upon successful modification, the subscription is updated accordingly, and a confirmation with the updated details is returned.","displayName":"Modify Subscription","body":{"application/json":{"type":"ModifySubscription.Request","example":"/examples/ModifySubscriptionRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"ModifySubscription.Response","example":"/examples/ModifySubscriptionResponse.json"}}}}}}},"/paymentmethods":{"displayName":"Payment Methods","description":"/documentation/paymentmethods.md","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"displayName":"Create Payment Method","description":"This API endpoint allows you to create a new payment method for a customer. You need to provide details including a nickname for the payment method, its active status, ACH information (such as account number and routing number), and the billing address. Additionally, you must specify the customer ID associated with the payment method. The API will store these details securely for future transactions.","body":{"application/json":{"type":"CreatePaymentMethod.Request","example":"/examples/CreatePaymentMethodRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"CreatePaymentMethod.Response","example":"/examples/CreatePaymentMethodResponse.json"}}}}},"/{paymentMethodId}":{"uriParameters":{"paymentMethodId":{"description":"Unique identifier for a payment method","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}$","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true}},"patch":{"is":["StandardErrors.errorHandler","Common.Headers"],"displayName":"Modify Payment Method","description":"This API endpoint allows you to update an existing payment method for a customer. You can modify details such as the payment method nickname, its active status, ACH information (including account number and routing number), and the billing address. Additionally, you need to provide the customer ID to identify which payment method to update. The API ensures that all changes are applied securely to the specified payment method.","body":{"application/json":{"type":"ModifyPaymentMethod.Request","example":"/examples/ModifyPaymentMethodRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"ModifyPaymentMethod.Response","example":"/examples/ModifyPaymentMethodResponse.json"}}}}}},"/token":{"displayName":"Generate Token","description":"The Payment Methods resource manages the various payment methods that can be used on Deluxe Payments Platform.","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"description":"This API endpoint generates a secure token for a payment method, which can be used for future transactions without storing sensitive payment details directly. The input requires credit card information, including the card number, expiry date, and CVV. The API responds with a token that represents the payment method, along with a response code, payment ID, and request ID. This token can then be used in subsequent API calls to process payments securely.","displayName":"Generate Token","body":{"application/json":{"type":"GenerateToken.Request","example":"/examples/GenerateTokenRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"GenerateToken.Response","example":"/examples/GenerateTokenResponse.json"}}}}}},"/avs":{"displayName":"Verify Address","description":"Initiates an Address Verification Service (AVS) check for the provided billing address. It helps verify that the billing address provided by the customer matches the address on file with the payment method's issuing bank.","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"description":"Initiates an Address Verification Service (AVS) check for the provided billing address.This request will validate the address details (e.g., street address, zip code) and return a response indicating whether the address matches the records on file with the payment provider.","displayName":"Verify Address","body":{"application/json":{"type":"AddressVerificationService.Request","example":"/examples/AddressVerificationServiceRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"AddressVerificationService.Response","example":"/examples/AddressVerificationServiceResponse.json"}}}}}},"/verification/ach":{"displayName":"Verify ACH","(internal)":true,"description":"Initiates an ACH Verification","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"description":"Initiates an ACH Verification","displayName":"Verify ACH","body":{"application/json":{"type":"ACHVerification.Request","example":"/examples/ACHVerificationRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"ACHVerification.Response","example":"/examples/ACHVerificationResponse.json"}}}}}},"/surcharge":{"displayName":"Check Surcharge","description":"This surcharge resource enables merchants to verify the applicable surcharge for various payment methods, including card, token, vault, and cryptogram. By providing a payment method, along with optional details such as amount and currency, you will receive the corresponding surcharge rate/percentage and surcharge amount in the response. This feature allows merchants to check the applicable surcharge in advance, ensuring transparency before completing a transaction.","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"description":"This API endpoint allows you to verify the surcharge associated to merchant for the given payment methods such as card, token, vault and cryptogram. The input requires a payment method and optional amount and currency and you will get surcharge rate/percentage and surcharge amount in response. This will help merchants to check the applicable surcharge rate before actual transaction.","displayName":"Check Surcharge","body":{"application/json":{"type":"Surcharge.Request","example":"/examples/SurchargeRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"Surcharge.Response","example":"/examples/SurchargeResponse.json"}}}}}},"/binlookup":{"displayName":"BIN Lookup","(internal)":true,"description":"BIN lookup retrieves details by passing the first 6 to 8 digits of the card number. It returns information such as whether the cardholder is eligible for Level 2 or Level 3 surcharges, the card type, brand, and country.","get":{"displayName":"BIN Lookup","description":"Verify BIN lookup retrieves details by passing the first 6 to 8 digits of the card number. It returns information such as whether the cardholder is eligible for Level 2 or Level 3 surcharges, the card type, brand, and country.","is":["StandardErrors.errorHandler","Common.Headers"],"queryParameters":{"bin":{"description":"BIN used to retrieve details.","type":"string","required":true,"minLength":6,"maxLength":8,"example":"411111"}},"responses":{"200":{"body":{"application/json":{"type":"GetBinDetails.Response","example":"/examples/GetBinDetailsResponse.json"}}}}}}},"/customers":{"displayName":"Customers","description":"/documentation/customers.md","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"displayName":"Create Customer","description":"The Create Customer API allows you to add a new customer to the system by providing their personal and contact information, including name, address, phone number, and email. Additionally, you can also crate a payment method using card, ACH, token, ACHToken and Cryptograms while creating customer with optional billing address details.","body":{"application/json":{"type":"CreateCustomer.Request","example":"/examples/CreateCustomerRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"CreateCustomer.Response","example":"/examples/CreateCustomerResponse.json"}}}}},"get":{"displayName":"Get All Customers","description":"The Get Customers API retrieves a list of all customers along with their associated details. Each customer record includes basic information such as name, address, contact details, and email. Additionally, the response provides information about the customer’s shipping address, payment methods stored in the vault, and any active subscriptions. Payment methods include details like card type, masked PAN, and account information, while subscription details include the start and end dates, frequency, and status.","responses":{"200":{"body":{"application/json":{"type":"array","items":"GetCustomer.Response","example":"/examples/GetAllCustomersResponse.json"}}}}},"/{customerId}":{"uriParameters":{"customerId":{"description":"Unique identifier for a customer","type":"number","minimum":1,"example":24582,"required":true}},"displayName":"Specific Customer","description":"The Customers resource defines a customer and manages any operations related to the customer.","is":["StandardErrors.errorHandler","Common.Headers"],"patch":{"displayName":"Modify Specific Customer","description":"The Modify Customer API allows you to update the details of an existing customer. You can modify the customer’s personal information, such as their first and last name, address, phone number, and email. This ensures that all customer records remain accurate and up-to-date.","body":{"application/json":{"type":"ModifyCustomer.Request","example":"/examples/ModifyCustomerRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"ModifyCustomer.Response","example":"/examples/ModifyCustomerResponse.json"}}}}},"get":{"displayName":"Get Specific Customer","description":"This API retrieves the details of a specific customer using their unique identifier, including name, address, contact details, and email. It also returns the customer's shipping address, stored payment methods, and any active subscriptions. Payment methods include details such as card type, masked PAN, and account information, while subscription details cover start and end dates, frequency, and status.","responses":{"200":{"body":{"application/json":{"type":"GetCustomer.Response","example":"/examples/GetCustomerResponse.json"}}}}},"delete":{"displayName":"Delete Specific Customer","description":"Deletes the customer identified by the given customer ID and permanently removes all associated records, including personal details,contact information,email,payment methods and subscriptions.\n>**Note:**\n> - The customer will be permanently removed from the Vault.\n> - All upcoming payments will be cancelled.\n> - All associated transactions will no longer be linked to the customer.\n> - Perform an impact or dependency check before deletion using the endpoint:\"https://api.deluxe.com/dpp/v1/customers/{customerId}\"\n","responses":{"200":{"body":{"application/json":{"type":"DeleteCustomer.Response","example":"/examples/DeleteCustomerResponse.json"}}}}},"/paymentmethods":{"displayName":"Customer's Payment Methods","/{paymentMethodId}":{"uriParameters":{"paymentMethodId":{"description":"Unique identifier for a payment method of a customer","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}$","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true}},"displayName":"Customer's Payment method","is":["StandardErrors.errorHandler","Common.Headers"],"get":{"is":["StandardErrors.errorHandler","Common.Headers"],"displayName":"Get Customer's Payment Method","description":"This API endpoint allows you to get an existing payment method for a customer. The payment details such as orderId, batchNumber, SubscriptionId (if applicable), fee, token details, account response data, paymentId etc details can be seen as part of this response.","responses":{"200":{"body":{"application/json":{"type":"GetPaymentMethod.Response","example":"/examples/GetPaymentMethodResponse.json"}}}}},"delete":{"displayName":"Delete Customer's Payment Method","description":"Delete an existing payment method for a customer.All upcoming payments linked to this payment method will also be deleted.\n> **Note:** \n> - Once a payment method is deleted, all the upcoming payments linked to that payment method will be deleted. \n> - To modify a payment method use \"https://api.deluxe.com/dpp/v1/paymentmethods/{paymentMethodId}\"\n","queryParameters":{"forceDelete":{"description":"Indicates whether the payment method should be deleted forcefully. When set to true, the payment method will be deleted even if there are associated upcoming or recurring payments.\n","type":"boolean","required":false,"default":false,"example":true}},"responses":{"200":{"body":{"application/json":{"type":"DeletePaymentMethod.Response","example":"/examples/DeletePaymentMethodResponse.json"}}}}}}}}},"/batches":{"displayName":"Close Batch","description":"The Batch Service enables merchants to efficiently manage and process multiple transactions by grouping them into consolidated batches, facilitating streamlined settlement and monitoring of payments.\n> **Note:** The endpoints supports two base paths **/dpp/v1** (default) and **/dpp/v1/gateway** to enable path-based routing. Both paths will continue to coexist to maintain backward compatibility. However, we recommend using **/dpp/v1** as the default for all new integrations.\n","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"description":"The Close Batch API endpoint finalizes and closes a transaction batch, sending notifications based on the provided email addresses. Input includes emails for success notifications, failure notifications, and general notifications to ensure relevant stakeholders are informed of the batch status.","displayName":"Close Batch","body":{"application/json":{"type":"CloseBatches.Request","example":"/examples/CloseBatchRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"CloseBatches.Response","example":"/examples/CloseBatchResponse.json"}}}}}},"/paymentlinks":{"displayName":"Payment Link","description":"The Payment Links resource allows you to create customizable URLs for online payments. This resource provides functionality to generate a payment link that can be tailored with specific details such as amount, customer information, and optional items. You can also specify whether the payment link should accept billing addresses and phone numbers, and set an expiry duration for the link.\n> **Note:** The endpoints supports two base paths **/dpp/v1** (default) and **/dpp/v1/gateway** to enable path-based routing. Both paths will continue to coexist to maintain backward compatibility. However, we recommend using **/dpp/v1** as the default for all new integrations.\n","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"description":"The Create Payment Link API endpoint generates a customized URL that can be shared with customers to accept online payments. It allows the specification of payment details, customer information, order data, itemized purchases, and additional custom data. The generated payment link can be configured with various options like payment method acceptance, billing, and contact requirements. The link can be sent to the customer via email and includes a personalized confirmation message. Upon successful creation, the API returns a unique payment link ID, the URL for the payment link, and a payment ID for tracking.","displayName":"Create Payment Link","body":{"application/json":{"type":"PaymentLink.Request","example":"/examples/PaymentLinkRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"PaymentLink.Response","example":"/examples/PaymentLinkResponse.json"}}}}},"/{paymentLinkId}":{"displayName":"Payment Link","(internal)":true,"description":"The Customers resource defines a customer and manages any operations related to the customer.","is":["StandardErrors.errorHandler","Common.Headers"],"uriParameters":{"paymentLinkId":{"description":"Unique identifier for the newly created payment link.","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}$","type":"string","required":true,"example":"75C99BAE-E843-412F-89A5-AC6177A101D7"}},"delete":{"displayName":"Delete Payment Link","description":"The Delete Payment Link operation allows you to remove an existing payment link that is no longer needed. This action permanently deletes the specified payment link.","responses":{"200":{"body":{"application/json":{"type":"DeletePaymentLink.Response","example":"/examples/DeletePaymentLinkResponse.json"}}}}}}},"/events":{"displayName":"Events","description":"The Event resource manages various types of events within the system, enabling you to create, and resend events. This resource facilitates the handling of key actions such as boarding a merchant, processing transactions, and managing batches, with capabilities to simulate and resend events for verification or troubleshooting purposes.\n> **Note:** The endpoints supports two base paths **/dpp/v1** (default) and **/dpp/v1/gateway** to enable path-based routing. Both paths will continue to coexist to maintain backward compatibility. However, we recommend using **/dpp/v1** as the default for all new integrations.\n","/subscribe":{"displayName":"Subscribe Event","description":"This API endpoint allows developers to subscribe to an event to recieve a webhook notification","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"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.","displayName":"Subscribe Event","body":{"application/json":{"type":"EventsSubscribe.Request","example":"/examples/EventsSubscribeRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"EventsSubscribe.Response","example":"/examples/EventsSubscribeResponse.json"}}}}}},"/unsubscribe":{"displayName":"Unsubscribe Event","description":"This API endpoint allows developers to unsubscribe to a webhook to stop receiving event notifications.","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"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.","displayName":"Unsubscribe Event","body":{"application/json":{"type":"EventsUnsubscribe.Request","example":"/examples/EventsUnsubscribeRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"EventsUnsubscribe.Response","example":"/examples/EventsUnsubscribeResponse.json"}}}}}},"/resend":{"displayName":"Resend Event","description":"This endpoint is used to resend event webhook that may not have been successfully received.","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"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.","displayName":"Resend Event","body":{"application/json":{"type":"EventsResend.Request","example":"/examples/EventsResendRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"EventsResend.Response","example":"/examples/EventsResendResponse.json"}}}}}},"/report":{"displayName":"Events Reports","(internal)":true,"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.","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"queryParameters":{"pageNumber":{"description":"Specifies the page of results to retrieve. This is useful for navigating large datasets by retrieving data in manageable chunks.","type":"number","example":1,"required":false},"pageSize":{"description":"Defines the number of records to be returned in a single response. This helps control response size and optimize performance.","type":"number","example":1,"required":false}},"displayName":"Retrieve Events Reports","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.","body":{"application/json":{"type":"EventsReport.Request","example":"/examples/EventsReportRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"EventsReport.Response","example":"/examples/EventsReportResponse.json"}}}}}},"/performTest":{"displayName":"Perform Test Event","description":"This API resource 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.","is":["StandardErrors.errorHandler","Common.Headers"],"post":{"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.","displayName":"Perform Test Event","body":{"application/json":{"type":"EventsPerformTest.Request","example":"/examples/EventsPerformTestRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"EventsPerformTest.Response","example":"/examples/EventsPerformTestResponse.json"}}}}}}}}