{"title":"DPP Invoice Experience API","description":"The DPP Invoice Experience API enables merchants to manage invoice lifecycles and configurations efficiently. It provides endpoints for creating, updating, sharing, cloning, searching, downloading, and configuring invoices. Each operation is designed to ensure accuracy, consistency, and ease of integration. The API supports flexible routing through baseUri parameters, ensuring compatibility with current and future structures. By offering features like invoice branding, payment terms, health checks, Base64-encoded downloads, and secure sharing, it helps merchants streamline workflows and enhance customer experiences. This API is particularly useful for businesses looking to standardize invoicing practices, improve customer communication, and maintain professional and reliable financial records.","baseUri":"https://api.deluxe.com{path}","version":1,"mediaType":"application/json","baseUriParameters":{"path":{"description":"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.","type":"string","enum":["/dpp/v1","/dpp/v1/gateway"],"default":"/dpp/v1","example":"/dpp/v1","required":true}},"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","SecuritySchemes":"exchange_modules/4c08e201-c97b-4665-9310-e3ac89ce1c28/api-standard-security/1.0.3/api-standard-security.raml","Common":"/libraries/CommonLibrary.raml","CreateInvoice":"/libraries/CreateInvoice.raml","ModifyInvoice":"/libraries/ModifyInvoice.raml","ModifyInvoiceStatus":"/libraries/ModifyInvoiceStatus.raml","GetInvoice":"/libraries/GetInvoice.raml","DownloadInvoice":"/libraries/DownloadInvoice.raml","ShareInvoice":"/libraries/ShareInvoice.raml","SearchInvoice":"/libraries/SearchInvoice.raml","CloneInvoice":"/libraries/CloneInvoice.raml","CreateInvoiceConfiguration":"/libraries/CreateInvoiceConfiguration.raml","ModifyInvoiceConfiguration":"/libraries/ModifyInvoiceConfiguration.raml","GetInvoiceConfiguration":"/libraries/GetInvoiceConfiguration.raml"},"securedBy":["SecuritySchemes.oidcEnforcement"],"/":{"displayName":"Health Check","description":"The Health Check resource verifies if the API is running and accessible.","type":"Health.check","is":["StandardErrors.errorHandler"]},"/invoices":{"displayName":"Invoices","description":"/documentation/invoices.md","post":{"displayName":"Create Draft Invoice","description":"Creates draft invoice using customer details, billing information, and optional shipping data. Line items such as sale item name, price, and quantity are required along with payment terms like due days or discounts. Draft invoices allow merchants to review and edit before publishing, ensuring accuracy. This endpoint is the first step in generating a professional, standardized invoice aligned with predefined invoice configurations.\n> **Note:** An active invoice configuration is required before you can start creating invoices.\n","is":["StandardErrors.errorHandler","Common.Headers"],"body":{"application/json":{"type":"CreateInvoice.Request","example":"examples/CreateInvoiceRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"CreateInvoice.Response","example":"examples/CreateInvoiceResponse.json"}}}}},"/{invoiceId}":{"uriParameters":{"invoiceId":{"description":"Unique identifier for an invoice. Used to retrieve, modify, download, or change invoice status.","type":"integer","required":true,"minimum":1,"example":12345}},"put":{"displayName":"Modify Invoice Details","description":"Updates details of an existing draft invoice using its `invoiceId`. Merchants can adjust billing, shipping, customer information, line items, and payment terms. This ensures invoice accuracy before publishing. Useful when customer details change or corrections are needed after initial creation.","is":["StandardErrors.errorHandler","Common.Headers"],"body":{"application/json":{"type":"ModifyInvoice.Request","example":"examples/ModifyInvoiceRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"ModifyInvoice.Response","example":"examples/ModifyInvoiceResponse.json"}}}}},"patch":{"displayName":"Modify Invoice Status","description":"Allows merchants to **publish** or **cancel** a draft invoice using its `invoiceId`. Publishing makes it visible to customers, while canceling removes drafts that are no longer valid. This helps maintain accurate records and prevents unintended distribution of invoices.","is":["StandardErrors.errorHandler","Common.Headers"],"body":{"application/json":{"type":"ModifyInvoiceStatus.Request","example":"examples/ModifyInvoiceStatusRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"ModifyInvoiceStatus.Response","example":"examples/ModifyInvoiceStatusResponse.json"}}}}},"get":{"displayName":"Get Specific Invoice","description":"Retrieves details of a specific invoice using its invoiceId. The response includes billing and shipping addresses, items, totals, discounts, payment terms, and current status. If payment is made, details are also included. This endpoint is key for auditing, reporting, and customer inquiries.","is":["StandardErrors.errorHandler","Common.Headers"],"responses":{"200":{"body":{"application/json":{"type":"GetInvoice.Response","example":"examples/GetInvoiceResponse.json"}}}}}},"/search":{"post":{"displayName":"Search Invoice","description":"Enables merchants to find invoices using filters like date ranges, invoiceId, customerId, and status. This is useful for audits, reporting, overdue payment tracking, or quickly locating invoices during customer support inquiries. It reduces manual searches and improves operational efficiency.","is":["StandardErrors.errorHandler","Common.Headers"],"body":{"application/json":{"type":"SearchInvoice.Request","example":"examples/SearchInvoiceRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"SearchInvoice.Response","example":"examples/SearchInvoiceResponse.json"}}}}}},"/share":{"post":{"displayName":"Share Invoice","description":"Allows invoices to be shared with customers via email, SMS, or both. This ensures customers are promptly notified and can easily access their invoices. Sharing supports better communication, reduces missed payments, and enhances customer satisfaction.","is":["StandardErrors.errorHandler","Common.Headers"],"body":{"application/json":{"type":"ShareInvoice.Request","example":"examples/ShareInvoiceRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"ShareInvoice.Response","example":"examples/ShareInvoiceResponse.json"}}}}}},"/clone":{"post":{"displayName":"Clone Invoice","description":"Creates a duplicate of an existing invoice using its invoiceId. The cloned invoice includes all original details but is saved in draft status, allowing edits before publishing. This is particularly useful for recurring customers or repeat orders, reducing manual entry and errors.","is":["StandardErrors.errorHandler","Common.Headers"],"body":{"application/json":{"type":"CloneInvoice.Request","example":"examples/CloneInvoiceRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"CloneInvoice.Response","example":"examples/CloneInvoiceResponse.json"}}}}}},"/download/{invoiceId}":{"uriParameters":{"invoiceId":{"description":"Unique identifier for the invoice to download.","type":"integer","required":true,"minimum":1,"example":9876}},"get":{"displayName":"Download Invoice","description":"Retrieves an invoice as a Base64-encoded string, which can be decoded into a PDF. This ensures customers receive professional, printable documents suitable for storage, sharing, and compliance purposes.","is":["StandardErrors.errorHandler","Common.Headers"],"responses":{"200":{"body":{"application/json":{"type":"DownloadInvoice.Response","example":"examples/DownloadInvoiceResponse.json"}}}}}},"/configuration":{"post":{"displayName":"Create Invoice Configuration","description":"Allows merchants to set up invoice configurations, including merchant details, branding, payment reminders, due days, colors, logos, and display options. A configuration must be created before generating invoices, ensuring standardization and professionalism across all invoices.","is":["StandardErrors.errorHandler","Common.Headers"],"body":{"application/json":{"type":"CreateInvoiceConfiguration.Request","example":"examples/CreateInvoiceConfigurationRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"CreateInvoiceConfiguration.Response","example":"examples/CreateInvoiceConfigurationResponse.json"}}}}},"get":{"displayName":"Get Invoice Configuration","description":"Retrieves current configuration details for a merchant, including branding preferences, reminders, and invoice enablement status. This ensures merchants can review or validate settings applied to all generated invoices.","is":["StandardErrors.errorHandler","Common.Headers"],"responses":{"200":{"body":{"application/json":{"type":"GetInvoiceConfiguration.Response","example":"examples/GetInvoiceConfigurationResponse.json"}}}}},"/{configurationId}":{"uriParameters":{"configurationId":{"description":"Unique identifier for an invoice configuration.","type":"integer","required":true,"minimum":1,"example":2222}},"put":{"displayName":"Modify Invoice Configuration","description":"Modify an existing configuration using configurationId. Merchants can revise merchant details, logos, colors, reminders, display preferences, and enable/disable invoice generation. This ensures configurations remain aligned with branding and policy changes.","is":["StandardErrors.errorHandler","Common.Headers"],"body":{"application/json":{"type":"ModifyInvoiceConfiguration.Request","example":"examples/ModifyInvoiceConfigurationRequest.json"}},"responses":{"200":{"body":{"application/json":{"type":"ModifyInvoiceConfiguration.Response","example":"examples/ModifyInvoiceConfigurationResponse.json"}}}}}}}}}