Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: DPP Gateway Experience Subscriptions 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: subscriptions
paths:
/subscriptions:
post:
operationId: createSubscription
summary: Create Subscription
tags:
- subscriptions
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.
requestBody:
required: true
content:
application/json:
schema:
description: Request object to hold details to create a subscription, including payment method, subscription specifics, billing and shipping addresses, and tax information. It supports Level 2 and Level 3 processing for sale items and fleet products, and also includes optional customer data, order information, and alternate fees to handle surcharges.
type: object
properties:
paymentType:
description: Identifies if the payment method is Credit (ACH Refund) or Debit for ACH Payments, or Sale for Card payment.
type: string
enum:
- Sale
- Debit
- Credit
examples:
- Sale
amount:
description: Object to hold the total transaction amount and currency. Make sure the amount matches the sum of sale items or products in Level 3 transactions, and includes any applicable fees.
type: object
properties:
amount:
description: Amount of the transaction
type: number
examples:
- 150
currency:
description: Currency of transaction
type: string
enum:
- USD
- CAD
examples:
- USD
required:
- amount
paymentMethod:
description: Object to hold payment method details
oneOf:
- description: Object to hold card details such as card number, expiration date, and CVV. Includes billing address for verification purposes. Supports secure, PCI-compliant card-based transactions while reducing exposure of sensitive payment data across digital checkout and payment authorization flows.
type: object
properties:
card:
description: Object to hold card details such as card number, expiration date, and CVV. Includes billing address for verification purposes. Supports secure, PCI-compliant card-based transactions while reducing exposure of sensitive payment data across digital checkout and payment authorization flows.
type: object
properties:
card:
description: Card Number
type: string
minLength: 12
maxLength: 19
examples:
- '4111111111111110'
expiry:
description: Card Expiration Month and Year
type: string
pattern: ^(0[1-9]|1[0-2])\/\d{2}$
examples:
- 11/26
cvv:
description: Card CVV/Security Code
type: string
minLength: 3
maxLength: 4
examples:
- '245'
required:
- card
- expiry
billingAddress:
description: Billing Address details includes name, street address, city, postal code, country, and optional contact information like phone and email. These fields support payment verification, fraud prevention, and customer record enrichment, making it easier to integrate with billing, invoicing, compliance systems.
type: object
properties:
firstName:
description: Customer's first name
type: string
maxLength: 100
examples:
- Jane
lastName:
description: Customer's last name
type: string
maxLength: 100
examples:
- Doe
address:
description: Customer's address
type: string
maxLength: 250
examples:
- 123 Main St
address2:
description: Customer's address line 2
type: string
maxLength: 100
examples:
- Apt 5
postalCode:
description: Customer's postal/zip code
type: string
maxLength: 50
examples:
- '94111'
city:
description: Customer's city
type: string
maxLength: 50
examples:
- San Francisco
state:
description: Customer's state/province
type: string
maxLength: 25
examples:
- CA
country:
description: Customer's country
type: string
maxLength: 25
examples:
- USA
phone:
description: Customer's phone number
type: string
pattern: ^(\+\d{1,3}[\s-]?)?\(?\d{3}\)?[\s-]?\d{3}[\s-]?\d{4}$
maxLength: 17
examples:
- 650-555-1234
email:
description: Customer's email address
type: string
pattern: ^([a-zA-Z0-9.!#$\%&'*+-=?^_`{|}~]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})$
maxLength: 250
examples:
- jane@email.com
additionalProperties: false
- description: Object to hold ACH information such as bank account number, routing number, and account type (e.g., Checking or Savings). Includes optional billing address to support verification and regulatory compliance. Enables secure account-based transactions for direct debit payments.
type: object
properties:
ach:
description: Object to hold ACH information such as bank account number, routing number, and account type (e.g., Checking or Savings). Includes optional billing address to support verification and regulatory compliance. Enables secure account-based transactions for direct debit payments.
type: object
properties:
accountNumber:
description: Bank account number
type: string
minLength: 1
maxLength: 20
examples:
- '987654321'
routingNumber:
description: Bank Routing Number
type: string
minLength: 8
maxLength: 9
examples:
- '123456789'
accountType:
description: Account Type - Checking/Savings
type: string
enum:
- Checking
- Savings
examples:
- Checking
required:
- accountNumber
- routingNumber
billingAddress:
description: Billing Address details includes name, street address, city, postal code, country, and optional contact information like phone and email. These fields support payment verification, fraud prevention, and customer record enrichment, making it easier to integrate with billing, invoicing, compliance systems.
type: object
properties:
firstName:
description: Customer's first name
type: string
maxLength: 100
examples:
- Jane
lastName:
description: Customer's last name
type: string
maxLength: 100
examples:
- Doe
address:
description: Customer's address
type: string
maxLength: 250
examples:
- 123 Main St
address2:
description: Customer's address line 2
type: string
maxLength: 100
examples:
- Apt 5
postalCode:
description: Customer's postal/zip code
type: string
maxLength: 50
examples:
- '94111'
city:
description: Customer's city
type: string
maxLength: 50
examples:
- San Francisco
state:
description: Customer's state/province
type: string
maxLength: 25
examples:
- CA
country:
description: Customer's country
type: string
maxLength: 25
examples:
- USA
phone:
description: Customer's phone number
type: string
pattern: ^(\+\d{1,3}[\s-]?)?\(?\d{3}\)?[\s-]?\d{3}[\s-]?\d{4}$
maxLength: 17
examples:
- 650-555-1234
email:
description: Customer's email address
type: string
pattern: ^([a-zA-Z0-9.!#$\%&'*+-=?^_`{|}~]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})$
maxLength: 250
examples:
- jane@email.com
additionalProperties: false
- description: Object to hold tokenized card information such as card number, expiration date, and CVV. Includes billing address for validation. Supports secure, PCI-compliant digital transactions with minimal exposure of sensitive data, enabling efficient payment processing across web, mobile, and in-store environments.
type: object
properties:
token:
description: Object to hold tokenized card information such as card number, expiration date, and CVV. Includes billing address for validation. Supports secure, PCI-compliant digital transactions with minimal exposure of sensitive data, enabling efficient payment processing across web, mobile, and in-store environments.
type: object
properties:
token:
description: Tokenized string for Card details
type: string
maxLength: 20
examples:
- '1234567890123450'
expiry:
description: Card Expiration Month and Year
type: string
examples:
- 10/25
cvv:
description: Card CVV/Security Code
type: string
minLength: 3
maxLength: 4
examples:
- '245'
required:
- expiry
- token
billingAddress:
description: Billing Address details includes name, street address, city, postal code, country, and optional contact information like phone and email. These fields support payment verification, fraud prevention, and customer record enrichment, making it easier to integrate with billing, invoicing, compliance systems.
type: object
properties:
firstName:
description: Customer's first name
type: string
maxLength: 100
examples:
- Jane
lastName:
description: Customer's last name
type: string
maxLength: 100
examples:
- Doe
address:
description: Customer's address
type: string
maxLength: 250
examples:
- 123 Main St
address2:
description: Customer's address line 2
type: string
maxLength: 100
examples:
- Apt 5
postalCode:
description: Customer's postal/zip code
type: string
maxLength: 50
examples:
- '94111'
city:
description: Customer's city
type: string
maxLength: 50
examples:
- San Francisco
state:
description: Customer's state/province
type: string
maxLength: 25
examples:
- CA
country:
description: Customer's country
type: string
maxLength: 25
examples:
- USA
phone:
description: Customer's phone number
type: string
pattern: ^(\+\d{1,3}[\s-]?)?\(?\d{3}\)?[\s-]?\d{3}[\s-]?\d{4}$
maxLength: 17
examples:
- 650-555-1234
email:
description: Customer's email address
type: string
pattern: ^([a-zA-Z0-9.!#$\%&'*+-=?^_`{|}~]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})$
maxLength: 250
examples:
- jane@email.com
additionalProperties: false
- description: Object to hold payment method details such as stored payment ID and optional CVV. It enables secure retrieval of tokenized payment credentials for recurring billing or one-click checkout scenarios. Includes billing address to support verification, fraud prevention, and transaction accuracy while aligning with compliance requirements in digital payment flows.
type: object
properties:
vault:
description: Object to hold payment method details such as stored payment ID and optional CVV. It enables secure retrieval of tokenized payment credentials for recurring billing or one-click checkout scenarios. Includes billing address to support verification, fraud prevention, and transaction accuracy while aligning with compliance requirements in digital payment flows.
type: object
properties:
paymentMethodId:
description: Unique identifier for stored 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}$
examples:
- 99c33585-a62f-45bb-a733-5720dd69ab1e
cvv:
description: CVV/Security Code
type: string
minLength: 3
maxLength: 4
examples:
- '245'
required:
- paymentMethodId
billingAddress:
description: Billing Address details includes name, street address, city, postal code, country, and optional contact information like phone and email. These fields support payment verification, fraud prevention, and customer record enrichment, making it easier to integrate with billing, invoicing, compliance systems.
type: object
properties:
firstName:
description: Customer's first name
type: string
maxLength: 100
examples:
- Jane
lastName:
description: Customer's last name
type: string
maxLength: 100
examples:
- Doe
address:
description: Customer's address
type: string
maxLength: 250
examples:
- 123 Main St
address2:
description: Customer's address line 2
type: string
maxLength: 100
examples:
- Apt 5
postalCode:
description: Customer's postal/zip code
type: string
maxLength: 50
examples:
- '94111'
city:
description: Customer's city
type: string
maxLength: 50
examples:
- San Francisco
state:
description: Customer's state/province
type: string
maxLength: 25
examples:
- CA
country:
description: Customer's country
type: string
maxLength: 25
examples:
- USA
phone:
description: Customer's phone number
type: string
pattern: ^(\+\d{1,3}[\s-]?)?\(?\d{3}\)?[\s-]?\d{3}[\s-]?\d{4}$
maxLength: 17
examples:
- 650-555-1234
email:
description: Customer's email address
type: string
pattern: ^([a-zA-Z0-9.!#$\%&'*+-=?^_`{|}~]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})$
maxLength: 250
examples:
- jane@email.com
additionalProperties: false
- description: Object to hold ACH token information such as a tokenized string representing bank details. Includes billing address for validation and compliance support. Useful for secure ACH transactions in digital payment workflows, enabling reduced exposure of sensitive banking information and streamlined account-based processing.
type: object
properties:
achToken:
description: Object to hold ACH token information such as a tokenized string representing bank details. Includes billing address for validation and compliance support. Useful for secure ACH transactions in digital payment workflows, enabling reduced exposure of sensitive banking information and streamlined account-based processing.
type: object
properties:
token:
description: Tokenized string for ACH details
type: string
maxLength: 40
examples:
- k|1235673473|4567890123450
required:
- token
billingAddress:
description: Billing Address details includes name, street address, city, postal code, country, and optional contact information like phone and email. These fields support payment verification, fraud prevention, and customer record enrichment, making it easier to integrate with billing, invoicing, compliance systems.
type: object
properties:
firstName:
description: Customer's first name
type: string
maxLength: 100
examples:
- Jane
lastName:
description: Customer's last name
type: string
maxLength: 100
examples:
- Doe
address:
description: Customer's address
type: string
maxLength: 250
examples:
- 123 Main St
address2:
description: Customer's address line 2
type: string
maxLength: 100
examples:
- Apt 5
postalCode:
description: Customer's postal/zip code
type: string
maxLength: 50
examples:
- '94111'
city:
description: Customer's city
type: string
maxLength: 50
examples:
- San Francisco
state:
description: Customer's state/province
type: string
maxLength: 25
examples:
- CA
country:
description: Customer's country
type: string
maxLength: 25
examples:
- USA
phone:
description: Customer's phone number
type: string
pattern: ^(\+\d{1,3}[\s-]?)?\(?\d{3}\)?[\s-]?\d{3}[\s-]?\d{4}$
maxLength: 17
examples:
- 650-555-1234
email:
description: Customer's email address
type: string
pattern: ^([a-zA-Z0-9.!#$\%&'*+-=?^_`{|}~]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})$
maxLength: 250
examples:
- jane@email.com
additionalProperties: false
subscription:
description: Object to hold subscription details
type: object
properties:
startDate:
description: Specifies the starting date from which recurring billing begins. The startDate must either match the subscription transaction date or be set to a future date.
type: string
examples:
- 10/25/2023
endDate:
description: Defines the termination date of the subscription period.
type: string
examples:
- 10/25/2025
frequency:
description: Indicates how often billing occurs e.g., Monthly, Quarterly, or Annually
type: string
enum:
- Daily
- Weekly
- BiWeekly
- TriWeekly
- Monthly
- BiMonthly
- Quarterly
- Annually
- Custom
- SemiAnnually
examples:
- Monthly
active:
description: Boolean flag to reflect whether the subscription is currently active or not
type: boolean
default: true
examples:
- true
paymentDay:
description: Specifies the designated day of the week (e.g., Sunday) when payment is scheduled to process; useful for weekly plans.
type: string
enum:
- Monday
- Tuesday
- Wednesday
- Thursday
- Friday
- Saturday
- Sunday
examples:
- Sunday
paymentMonth:
description: Defines the month (1 to 12) when payment is intended to occur, relevant for annual billing cycles.
type: integer
minimum: 1
maximum: 12
examples:
- 10
custom:
description: Object to hold the custom subscription details.
type: object
properties:
interval:
description: Specifies the frequency of the billing cycle based on the defined interval type.
type: number
minimum: 1
examples:
- 5
intervalType:
description: Defines the unit of time used for the billing interval (for example, daily, weekly, monthly, or yearly).
type: string
enum:
- DAY
- WEEK
- MONTH
- YEAR
examples:
- DAY
duration:
description: 'Specifies how long the subscription will continue.
- **FIXED_PAYMENTS:** Runs for a limited number of payments.
- **UNTIL_END_DATE:** The subscription continues indefinitely until end date.
- **UNTIL_CANCELLED:** The subscription continues indefinitely until manually cancelled.'
type: string
enum:
- UNTIL_CANCELLED
- UNTIL_END_DATE
- FIXED_PAYMENTS
examples:
- FIXED_PAYMENTS
numberOfPayments:
description: Specifies the total number of billing cycles for the subscription. This field is required when duration is set to FIXED and is ignored when duration is UNTIL_CANCELLED.
type: number
minimum: 1
# --- truncated at 32 KB (70 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/deluxe/refs/heads/main/openapi/deluxe-subscriptions-api-openapi.yml