openapi: 3.0.3
info:
title: 'Dime Payments API Documentation'
description: 'A simple, basic API for managing Merchants through Dime Payments. JSON based REST API'
version: 1.0.0
servers:
-
url: 'https://app.dimepayments.com'
tags:
-
name: 'Merchant management'
description: ''
-
name: 'Transaction management'
description: "\nAPIs for managing transactions. Depending on API KEY permissions, one should be able to\ncharge credit cards, ACH, Google/Apple Pay wallets along with other functions."
-
name: Addresses
description: "\nAPIs for managing customer addresses"
-
name: 'Customer management'
description: "\nAPIs for managing customers. Depending on API KEY permissions, one should be able to\nlist, create, update, and delete customers along with several other customer specific requests."
-
name: 'Deposit management'
description: ''
-
name: 'Invoice management'
description: "\nAPIs for managing invoices. Depending on API KEY permissions, one should be\nable to list, create, update, delete, and send invoices, manage their line\nitems, and manage recurring-invoice schedules. Every request is scoped to a\nsingle Merchant via the required `data.sid`."
-
name: 'Payment Method management'
description: "\nAPIs for managing payment methods associated with customers. Depending on API KEY permissions, one should be able to\nlist, show, create, update, and delete payment methods."
-
name: 'Recurring Payments management'
description: "\nAPIs for managing recurring payments. Depending on API KEY permissions, one should be able to\ncreate, edit, pause, cancel along with other functions."
-
name: 'Subscription Plans management'
description: "\nMerchant-facing API for subscription plans (recurring offerings customers\nsubscribe to). The merchant is identified by `data.sid`; the token must carry\nthe matching `subscription-plan:*` ability. Mirrors the recurring-payment and\ninvoice API controllers."
-
name: 'Subscriptions management'
description: "\nMerchant-facing API for individual customer subscriptions (enrollments in a\nplan). The merchant is identified by `data.sid`; the token must carry the\nmatching `subscription:*` ability. Lifecycle transitions delegate to the\n{@see \\App\\Actions\\Subscription} action classes so the matching `SUBSCRIPTION_*`\nwebhook always fires. Mirrors the recurring-payment and subscription-plan API\ncontrollers."
-
name: Zapier
description: "\nAPIs for use through Zapier. Depending on API KEY permissions, one should be able to\nsee customers and transactions data."
components:
securitySchemes:
default:
type: http
scheme: bearer
description: 'You can retrieve your token by visiting your dashboard and clicking Generate API token under your profile in top right.'
security:
-
default: []
paths:
/api/merchant/list:
get:
summary: 'List Merchants'
operationId: listMerchants
description: 'Get a list of all merchants and their fields'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
name: 'Dime Payments'
dba: ''
notes: ''
sid: '00001'
ein: ''
mcc: '8999'
slug: pay
pub_api_key: pkapi_prod_B5n2hQhy6uAp1rLjqs
processor_mid: '650000012366624'
active: true
active_at: null
pending_cancellation: null
approved_cancellation: null
approved_cancellation_by: null
g_pay: false
a_pay: false
pci_compliance: true
api_access: '2025-05-20T12:43:00.000000Z'
api_enabled_by_id: 1
website: 'https://dimepayments.com'
addr1: '53 S. Main St'
addr2: ''
addr3: ''
city: Alpharetta
state: GA
zip: '30009'
phone: '4049064975'
primary_phone: '4049064975'
primary_email: ben@dimepayments.com
primary_name: 'Ben Habeck'
-
name: 'Dime Payments'
dba: ''
notes: ''
sid: '00001'
ein: ''
mcc: '8999'
slug: pay
pub_api_key: pkapi_prod_B5n2hQhy6uAp1rLjqs
processor_mid: '650000012366624'
active: true
active_at: null
pending_cancellation: null
approved_cancellation: null
approved_cancellation_by: null
g_pay: false
a_pay: false
pci_compliance: true
api_access: '2025-05-20T12:43:00.000000Z'
api_enabled_by_id: 1
website: 'https://dimepayments.com'
addr1: '53 S. Main St'
addr2: ''
addr3: ''
city: Alpharetta
state: GA
zip: '30009'
phone: '4049064975'
primary_phone: '4049064975'
primary_email: ben@dimepayments.com
primary_name: 'Ben Habeck'
properties:
data:
type: array
example:
-
name: 'Dime Payments'
dba: ''
notes: ''
sid: '00001'
ein: ''
mcc: '8999'
slug: pay
pub_api_key: pkapi_prod_B5n2hQhy6uAp1rLjqs
processor_mid: '650000012366624'
active: true
active_at: null
pending_cancellation: null
approved_cancellation: null
approved_cancellation_by: null
g_pay: false
a_pay: false
pci_compliance: true
api_access: '2025-05-20T12:43:00.000000Z'
api_enabled_by_id: 1
website: 'https://dimepayments.com'
addr1: '53 S. Main St'
addr2: ''
addr3: ''
city: Alpharetta
state: GA
zip: '30009'
phone: '4049064975'
primary_phone: '4049064975'
primary_email: ben@dimepayments.com
primary_name: 'Ben Habeck'
-
name: 'Dime Payments'
dba: ''
notes: ''
sid: '00001'
ein: ''
mcc: '8999'
slug: pay
pub_api_key: pkapi_prod_B5n2hQhy6uAp1rLjqs
processor_mid: '650000012366624'
active: true
active_at: null
pending_cancellation: null
approved_cancellation: null
approved_cancellation_by: null
g_pay: false
a_pay: false
pci_compliance: true
api_access: '2025-05-20T12:43:00.000000Z'
api_enabled_by_id: 1
website: 'https://dimepayments.com'
addr1: '53 S. Main St'
addr2: ''
addr3: ''
city: Alpharetta
state: GA
zip: '30009'
phone: '4049064975'
primary_phone: '4049064975'
primary_email: ben@dimepayments.com
primary_name: 'Ben Habeck'
items:
type: object
properties:
name:
type: string
example: 'Dime Payments'
description: 'The name of the merchant.'
dba:
type: string
example: ''
notes:
type: string
example: ''
sid:
type: string
example: '00001'
description: 'The unique Dime Payments ID for the merchant.'
ein:
type: string
example: ''
mcc:
type: string
example: '8999'
description: 'The MCC Code assigned to the merchant.'
slug:
type: string
example: pay
description: "The unique address for the merchant's pay page. i.e. https://dimepayments.com/{slug}."
pub_api_key:
type: string
example: pkapi_prod_B5n2hQhy6uAp1rLjqs
description: "The public API key for the gateway's tokenizer."
processor_mid:
type: string
example: '650000012366624'
active:
type: boolean
example: true
description: 'If this merchant is active on Dime Payments.'
active_at:
type: string
example: null
description: 'date The date the merchant was made active.'
pending_cancellation:
type: string
example: null
nullable: true
approved_cancellation:
type: string
example: null
nullable: true
approved_cancellation_by:
type: string
example: null
nullable: true
g_pay:
type: boolean
example: false
description: 'If this merchant is active on Google Pay.'
a_pay:
type: boolean
example: false
description: 'If this merchant is active on Apple Pay.'
pci_compliance:
type: boolean
example: true
description: 'If this merchant has an active AoC on file with Dime Payments.'
api_access:
type: string
example: '2025-05-20T12:43:00.000000Z'
api_enabled_by_id:
type: integer
example: 1
website:
type: string
example: 'https://dimepayments.com'
description: "The merchant's website."
addr1:
type: string
example: '53 S. Main St'
description: "The merchant's first address line."
addr2:
type: string
example: ''
description: "The merchant's second address line (optional)."
addr3:
type: string
example: ''
city:
type: string
example: Alpharetta
description: "The merchant's city."
state:
type: string
example: GA
description: "The merchant's state."
zip:
type: string
example: '30009'
description: "The merchant's zip code."
phone:
type: string
example: '4049064975'
description: "The merchant's phone number."
primary_phone:
type: string
example: '4049064975'
description: "The merchant's primary contact phone number."
primary_email:
type: string
example: ben@dimepayments.com
description: "The merchant's primary email address."
primary_name:
type: string
example: 'Ben Habeck'
description: "The merchant's primary full name."
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
filters.start_date:
- 'The filters.start_date field must be a valid date.'
properties:
errors:
type: object
properties:
filters.start_date:
type: array
example:
- 'The filters.start_date field must be a valid date.'
items:
type: string
401:
description: 'Bad API Key Permission'
content:
application/json:
schema:
type: object
example:
message: 'Permission Denied.'
properties:
message:
type: string
example: 'Permission Denied.'
tags:
- 'Merchant management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
filters:
type: object
description: ''
example: []
properties:
start_date:
type: string
description: 'required_with:filters.end_date The start date for filtering customers in `Y-m-d H:i:s` format. Must be before or equal to filters.end_date.'
example: '2024-01-01 00:00:00'
end_date:
type: string
description: 'required_with:filters.start_date The end date for filtering customers in `Y-m-d H:i:s` format. Must be after or equal to filters.start_date.'
example: '2024-12-31 23:59:59'
/api/merchant/show:
get:
summary: "Show a specific Merchant's Details"
operationId: showASpecificMerchantsDetails
description: 'List all non-protected fields for a merchant. Other fields are available using their specific requests.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
name: 'Dime Payments'
sid: '00001'
mcc: '8999'
slug: pay
pub_api_key: pkapi_prod_B5n2hQhy6uAp1rLjqs
processor_mid: '650000012366624'
active: true
active_at: null
g_pay: false
a_pay: false
pci_compliance: true
website: 'https://dimepayments.com'
addr1: '53 S. Main St'
addr2: ''
city: Alpharetta
state: GA
zip: '30009'
phone: '4049064975'
primary_phone: '4049064975'
primary_email: ben@dimepayments.com
primary_name: 'Ben Habeck'
properties:
data:
type: object
properties:
name:
type: string
example: 'Dime Payments'
description: 'The name of the merchant.'
sid:
type: string
example: '00001'
description: 'The unique Dime Payments ID for the merchant.'
mcc:
type: string
example: '8999'
description: 'The MCC Code assigned to the merchant.'
slug:
type: string
example: pay
description: "The unique address for the merchant's pay page. i.e. https://dimepayments.com/{slug}."
pub_api_key:
type: string
example: pkapi_prod_B5n2hQhy6uAp1rLjqs
description: "The public API key for the gateway's tokenizer."
processor_mid:
type: string
example: '650000012366624'
description: "The unique ID for the processor's merchant account.'"
active:
type: boolean
example: true
description: 'If this merchant is active on Dime Payments.'
active_at:
type: string
example: null
description: 'date The date the merchant was made active.'
g_pay:
type: boolean
example: false
description: 'If this merchant is active on Google Pay.'
a_pay:
type: boolean
example: false
description: 'If this merchant is active on Apple Pay.'
pci_compliance:
type: boolean
example: true
description: 'If this merchant has an active AoC on file with Dime Payments.'
website:
type: string
example: 'https://dimepayments.com'
description: "The merchant's website."
addr1:
type: string
example: '53 S. Main St'
description: "The merchant's first address line."
addr2:
type: string
example: ''
description: "The merchant's second address line (optional)."
city:
type: string
example: Alpharetta
description: "The merchant's city."
state:
type: string
example: GA
description: "The merchant's state."
zip:
type: string
example: '30009'
description: "The merchant's zip code."
phone:
type: string
example: '4049064975'
description: "The merchant's phone number."
primary_phone:
type: string
example: '4049064975'
description: "The merchant's primary contact phone number."
primary_email:
type: string
example: ben@dimepayments.com
description: "The merchant's primary email address."
primary_name:
type: string
example: 'Ben Habeck'
description: "The merchant's primary full name."
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
filters.start_date:
- 'The filters.start_date field must be a valid date.'
properties:
errors:
type: object
properties:
filters.start_date:
type: array
example:
- 'The filters.start_date field must be a valid date.'
items:
type: string
401:
description: 'Bad API Key Permission'
content:
application/json:
schema:
type: object
example:
message: 'Permission Denied.'
properties:
message:
type: string
example: 'Permission Denied.'
tags:
- 'Merchant management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: number
description: 'ID of a merchant account.'
example: 1234567.0
required:
- sid
/api/merchant/create:
post:
summary: 'Create Merchant'
operationId: createMerchant
description: 'Create a merchant record which can be used for generating an application.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
name: 'Dime Payments'
sid: '00001'
mcc: '8999'
slug: pay
pub_api_key: pkapi_prod_B5n2hQhy6uAp1rLjqs
processor_mid: '650000012366624'
active: true
active_at: null
g_pay: false
a_pay: false
pci_compliance: true
website: 'https://dimepayments.com'
addr1: '53 S. Main St'
addr2: ''
city: Alpharetta
state: GA
zip: '30009'
phone: '4049064975'
primary_phone: '4049064975'
primary_email: ben@dimepayments.com
primary_name: 'Ben Habeck'
properties:
data:
type: object
properties:
name:
type: string
example: 'Dime Payments'
description: 'The name of the merchant.'
sid:
type: string
example: '00001'
description: 'The unique Dime Payments ID for the merchant.'
mcc:
type: string
example: '8999'
description: 'The MCC Code assigned to the merchant.'
slug:
type: string
example: pay
description: "The unique address for the merchant's pay page. i.e. https://dimepayments.com/{slug}."
pub_api_key:
type: string
example: pkapi_prod_B5n2hQhy6uAp1rLjqs
description: "The public API key for the gateway's tokenizer."
processor_mid:
type: string
example: '650000012366624'
active:
type: boolean
example: true
description: 'If this merchant is active on Dime Payments.'
active_at:
type: string
example: null
description: 'date The date the merchant was made active.'
g_pay:
type: boolean
example: false
description: 'If this merchant is active on Google Pay.'
a_pay:
type: boolean
example: false
description: 'If this merchant is active on Apple Pay.'
pci_compliance:
type: boolean
example: true
description: 'If this merchant has an active AoC on file with Dime Payments.'
website:
type: string
example: 'https://dimepayments.com'
description: "The merchant's website."
addr1:
type: string
example: '53 S. Main St'
description: "The merchant's first address line."
addr2:
type: string
example: ''
description: "The merchant's second address line (optional)."
city:
type: string
example: Alpharetta
description: "The merchant's city."
state:
type: string
example: GA
description: "The merchant's state."
zip:
type: string
example: '30009'
description: "The merchant's zip code."
phone:
type: string
example: '4049064975'
description: "The merchant's phone number."
primary_phone:
type: string
example: '4049064975'
description: "The merchant's primary contact phone number."
primary_email:
type: string
example: ben@dimepayments.com
description: "The merchant's primary email address."
primary_name:
type: string
example: 'Ben Habeck'
description: "The merchant's primary full name."
400:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Failed validation'
type: object
example:
errors:
data.phone:
- 'The data.phone field is required.'
properties:
errors:
type: object
properties:
data.phone:
type: array
example:
- 'The data.phone field is required.'
items:
type: string
-
description: 'Merchant not created'
type: object
example:
data:
message: 'Something went wrong: contact Dime Payments Rep'
properties:
data:
type: object
properties:
message:
type: string
example: 'Something went wrong: contact Dime Payments Rep'
401:
description: 'Bad API Key Permission'
content:
application/json:
schema:
type: object
example:
message: 'Permission Denied.'
properties:
message:
type: string
example: 'Permission Denied.'
tags:
- 'Merchant management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
name:
type: string
description: 'The name of the Merchant. Avoid special characters like \ or ''.'
example: 'Acme Inc'
slug:
type: string
description: 'Must be unique and HTML URL Compliant.'
example: acme-inc
mcc:
type: integer
description: 'Must be 4 digits and one of the MCC codes approved for your affiliate account.'
example: 8661
website:
type: string
description: 'Must be a valid full URL.'
example: 'https://acme-inc.com'
addr1:
type: string
description: 'Address line 1 of the Merchant.'
example: '123 4th Street'
addr2:
type: string
description: 'optional Address line 2 of the Merchant.'
example: 'Suite 5'
nullable: true
city:
type: string
description: 'The city of the Merchant.'
example: Alpharetta
state:
type: string
description: 'The state abbreviation of teh Merchant.'
example: GA
zip:
type: integer
description: 'The 5-digit zip of the Merchant.'
example: 30009
phone:
type: string
description: 'The main phone number for the Merchant in e164 format.'
example: '+177012345678'
primary_phone:
type: string
description: 'The phone of the main contact for the Merchant in e164 format.'
example: '+140412345678'
primary_name:
type: string
description: 'The full name of the main contact for the Merchant.'
example: 'John Doe'
primary_email:
type: string
description: 'The email of the main contact for the Merchant.'
example: john@acme.com
industry:
type: string
description: 'Must be a supported Industry name, contact Dime Payments Rep for values.'
example: Church
required:
- name
- slug
- mcc
- website
- addr1
- city
- state
- zip
- phone
- primary_phone
- primary_name
- primary_email
- industry
/api/merchant/update:
patch:
summary: "Update a specific Merchant's Details"
operationId: updateASpecificMerchantsDetails
description: "Update a Merchant's details."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
name: 'Dime Payments'
sid: '00001'
mcc: '8999'
slug: pay
pub_api_key: pkapi_prod_B5n2hQhy6uAp1rLjqs
processor_mid: '650000012366624'
active: true
active_at: null
g_pay: false
a_pay: false
pci_compliance: true
website: 'https://dimepayments.com'
addr1: '53 S. Main St'
addr2: ''
city: Alpharetta
state: GA
zip: '30009'
phone: '4049064975'
primary_phone: '4049064975'
primary_email: ben@dimepayments.com
primary_name: 'Ben Habeck'
properties:
data:
type: object
properties:
name:
type: string
example: 'Dime Payments'
description: 'The name of the merchant.'
sid:
type: string
example: '00001'
description: 'The unique Dime Payments ID for the merchant.'
mcc:
type: string
example: '8999'
description: 'The MCC Code assigned to the merchant.'
slug:
type: string
example: pay
description: "The unique address for the merchant's pay page. i.e. https://dimepayments.com/{slug}."
pub_api_key:
type: string
example: pkapi_prod_B5n2hQhy6uAp1rLjqs
description: "The public API key for the gateway's tokenizer."
processor_mid:
type: string
example: '650000012366624'
active:
type: boolean
example: true
description: 'If this merchant is active on Dime Payments.'
active_at:
type: string
example: null
description: 'date The date the merchant was made active.'
g_pay:
type: boolean
example: false
description: 'If this merchant is active on Google Pay.'
a_pay:
type: boolean
example: false
description: 'If this merchant is active on Apple Pay.'
pci_compliance:
type: boolean
example: true
description: 'If this merchant has an active AoC on file with Dime Payments.'
website:
type: string
example: 'https://dimepayments.com'
description: "The merchant's website."
addr1:
type: string
example: '53 S. Main St'
description: "The merchant's first address line."
addr2:
type: string
example: ''
description: "The merchant's second address line (optional)."
city:
type: string
example: Alpharetta
description: "The merchant's city."
state:
type: string
example: GA
description: "The merchant's state."
zip:
type: string
example: '30009'
description: "The merchant's zip code."
phone:
type: string
example: '4049064975'
description: "The merchant's phone number."
primary_phone:
type: string
example: '4049064975'
description: "The merchant's primary contact phone number."
primary_email:
type: string
example: ben@dimepayments.com
description: "The merchant's primary email address."
primary_name:
type: string
example: 'Ben Habeck'
description: "The merchant's primary full name."
400:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Failed validation'
type: object
example:
errors:
data.phone:
- 'The data.phone field is required.'
properties:
errors:
type: object
properties:
data.phone:
type: array
example:
- 'The data.phone field is required.'
items:
type: string
-
description: 'Merchant not created'
type: object
example:
data:
message: 'Something went wrong: contact Dime Payments Rep'
properties:
data:
type: object
properties:
message:
type: string
example: 'Something went wrong: contact Dime Payments Rep'
401:
description: 'Bad API Key Permission'
content:
application/json:
schema:
type: object
example:
message: 'Permission Denied.'
properties:
message:
type: string
example: 'Permission Denied.'
tags:
- 'Merchant management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant to update.'
example: 99
slug:
type: string
description: 'Must be unique and HTML URL Compliant.'
example: acme-inc
name:
type: string
description: 'The name of the Merchant. Avoid special characters like \ or ''.'
example: 'Acme Inc'
mcc:
type: integer
description: 'Must be 4 digits and one of the MCC codes approved for your affiliate account.'
example: 8661
website:
type: string
description: 'Must be a valid full URL.'
example: 'https://acme-inc.com'
addr1:
type: string
description: 'Address line 1 of the Merchant.'
example: '123 4th Street'
addr2:
type: string
description: 'optional Address line 2 of the Merchant.'
example: 'Suite 5'
nullable: true
city:
type: string
description: 'The city of the Merchant.'
example: Alpharetta
state:
type: string
description: 'The state abbreviation of teh Merchant.'
example: GA
zip:
type: integer
description: 'The 5-digit zip of the Merchant.'
example: 30009
phone:
type: string
description: 'The main phone number for the Merchant in e164 format.'
example: '+177012345678'
primary_phone:
type: string
description: 'The phone of the main contact for the Merchant in e164 format.'
example: '+140412345678'
primary_name:
type: string
description: 'The full name of the main contact for the Merchant.'
example: 'John Doe'
primary_email:
type: string
description: 'The email of the main contact for the Merchant.'
example: john@acme.com
industry:
type: string
description: 'Must be a supported Industry name, contact Dime Payments Rep for values.'
example: Church
required:
- sid
- slug
- name
- mcc
- website
- addr1
- city
- state
- zip
- phone
- primary_phone
- primary_name
- primary_email
- industry
/api/merchant/get-form-link:
get:
summary: 'Get a unique, secure link to the signup application for a Merchant.'
operationId: getAUniqueSecureLinkToTheSignupApplicationForAMerchant
description: "Passed a merchant's ID, returns a full URL to the application for processor\napproval. This link expires in 48 hours."
parameters: []
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
data:
link: 'https://app.dimepayments.com/some/link'
properties:
data:
type: object
properties:
link:
type: string
example: 'https://app.dimepayments.com/some/link'
description: 'The https secure link for the Merchant application that expires in 48 hours.'
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
data.sid:
- 'The data.sid field is required.'
properties:
errors:
type: object
properties:
data.sid:
type: array
example:
- 'The data.sid field is required.'
items:
type: string
401:
description: 'Bad API Key Permission'
content:
application/json:
schema:
type: object
example:
message: 'Permission Denied.'
properties:
message:
type: string
example: 'Permission Denied.'
tags:
- 'Merchant management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The unique SID of the Merchant.'
example: 69
required:
- sid
/api/transactions:
get:
summary: 'List Transactions'
operationId: listTransactions
description: 'Retrieves a list of transactions for a given Merchant, filtered by various parameters.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
transaction_type: CC
transaction_status: CC_CREDIT
transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.'
transaction_number: '741046715'
transaction_date: '2023-02-15T19:14:44.000000Z'
fund_date: '2023-02-17T05:05:35.000000Z'
settle_date: '2023-03-24T11:30:04.000000Z'
amount: '1.0000'
description: ''
status_code: ''
status_text: ''
email: ''
phone: ''
customer_uuid: ''
multi_use_token: ''
pending: false
transaction_info_id: '789161791'
parent_transaction_info_id: ''
billing_address:
first_name: null
last_name: null
addr1: null
addr2: null
city: null
state: null
zip: null
shippingAddress:
addr1: null
addr2: null
city: null
state: null
zip: null
-
transaction_type: CC
transaction_status: CC_CREDIT
transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.'
transaction_number: '741046715'
transaction_date: '2023-02-15T19:14:44.000000Z'
fund_date: '2023-02-17T05:05:35.000000Z'
settle_date: '2023-03-24T11:30:04.000000Z'
amount: '1.0000'
description: ''
status_code: ''
status_text: ''
email: ''
phone: ''
customer_uuid: ''
multi_use_token: ''
pending: false
transaction_info_id: '789161791'
parent_transaction_info_id: ''
billing_address:
first_name: null
last_name: null
addr1: null
addr2: null
city: null
state: null
zip: null
shippingAddress:
addr1: null
addr2: null
city: null
state: null
zip: null
links:
prev: null
next: null
meta:
path: /
per_page: 15
next_cursor: null
prev_cursor: null
properties:
data:
type: array
example:
-
transaction_type: CC
transaction_status: CC_CREDIT
transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.'
transaction_number: '741046715'
transaction_date: '2023-02-15T19:14:44.000000Z'
fund_date: '2023-02-17T05:05:35.000000Z'
settle_date: '2023-03-24T11:30:04.000000Z'
amount: '1.0000'
description: ''
status_code: ''
status_text: ''
email: ''
phone: ''
customer_uuid: ''
multi_use_token: ''
pending: false
transaction_info_id: '789161791'
parent_transaction_info_id: ''
billing_address:
first_name: null
last_name: null
addr1: null
addr2: null
city: null
state: null
zip: null
shippingAddress:
addr1: null
addr2: null
city: null
state: null
zip: null
-
transaction_type: CC
transaction_status: CC_CREDIT
transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.'
transaction_number: '741046715'
transaction_date: '2023-02-15T19:14:44.000000Z'
fund_date: '2023-02-17T05:05:35.000000Z'
settle_date: '2023-03-24T11:30:04.000000Z'
amount: '1.0000'
description: ''
status_code: ''
status_text: ''
email: ''
phone: ''
customer_uuid: ''
multi_use_token: ''
pending: false
transaction_info_id: '789161791'
parent_transaction_info_id: ''
billing_address:
first_name: null
last_name: null
addr1: null
addr2: null
city: null
state: null
zip: null
shippingAddress:
addr1: null
addr2: null
city: null
state: null
zip: null
items:
type: object
properties:
transaction_type:
type: string
example: CC
description: 'Transaction type. Example: Checking'
transaction_status:
type: string
example: CC_CREDIT
description: 'Transaction Status. Example: CC Pending'
transaction_status_description:
type: string
example: 'Successful credit/debit card transaction that brings funds into the ProPay Account.'
description: 'Transaction Status. Example: A transaction that has not cleared yet'
transaction_number:
type: string
example: '741046715'
transaction_date:
type: string
example: '2023-02-15T19:14:44.000000Z'
description: 'Transaction Date. Example: 2024-01-17T12:44:28.000000Z'
fund_date:
type: string
example: '2023-02-17T05:05:35.000000Z'
description: 'Fund Date. Example: 2024-01-18T21:05:21.000000Z'
settle_date:
type: string
example: '2023-03-24T11:30:04.000000Z'
description: 'Settle Date. Example: 2024-01-17T18:35:00.000000Z'
amount:
type: string
example: '1.0000'
description: 'Transaction amount. Example: $120.00'
description:
type: string
example: ''
description: 'Transaction type. Example: Checking'
status_code:
type: string
example: ''
description: 'The status code of the transaction.'
status_text:
type: string
example: ''
description: 'The status text of the transaction.'
email:
type: string
example: ''
description: 'The email of the transaction.'
phone:
type: string
example: ''
description: 'The phone of the transaction.'
customer_uuid:
type: string
example: ''
description: 'The customer uuid of the transaction.'
multi_use_token:
type: string
example: ''
description: 'The multi use token of the transaction.'
pending:
type: boolean
example: false
description: 'The pending status of the transaction.'
transaction_info_id:
type: string
example: '789161791'
description: "The transaction's info id that can be used in requests to other API endpoints to look up a specific transaction."
parent_transaction_info_id:
type: string
example: ''
description: "The transaction's parent's info id that can be used in requests to other API endpoints to look up a specific transaction."
billing_address:
type: object
properties:
first_name:
type: string
example: null
description: 'The first name field.'
last_name:
type: string
example: null
description: 'The last name field.'
addr1:
type: string
example: null
description: 'The first address line.'
addr2:
type: string
example: null
description: 'The second address line.'
city:
type: string
example: null
description: 'The city field.'
state:
type: string
example: null
description: 'The state field.'
zip:
type: string
example: null
description: 'The zip field.'
shippingAddress:
type: object
properties:
addr1:
type: string
example: null
nullable: true
addr2:
type: string
example: null
nullable: true
city:
type: string
example: null
nullable: true
state:
type: string
example: null
nullable: true
zip:
type: string
example: null
nullable: true
links:
type: object
properties:
prev:
type: string
example: null
nullable: true
next:
type: string
example: null
nullable: true
meta:
type: object
properties:
path:
type: string
example: /
per_page:
type: integer
example: 15
next_cursor:
type: string
example: null
nullable: true
prev_cursor:
type: string
example: null
nullable: true
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
filters.start_date:
- 'The filters.start_date field must be a valid date.'
properties:
errors:
type: object
properties:
filters.start_date:
type: array
example:
- 'The filters.start_date field must be a valid date.'
items:
type: string
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Token unauthorized'
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
-
description: 'Invalid merchant or affiliate authorization'
type: object
example:
data:
message: Unauthorized
properties:
data:
type: object
properties:
message:
type: string
example: Unauthorized
-
description: 'Invalid merchant or affiliate associations'
type: object
example:
data:
message: 'Not associated with affiliate'
properties:
data:
type: object
properties:
message:
type: string
example: 'Not associated with affiliate'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'No transactions found'
type: object
example:
data:
message: 'No transactions found'
properties:
data:
type: object
properties:
message:
type: string
example: 'No transactions found'
tags:
- 'Transaction management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: string
description: 'The ID of the merchant that processed the transactions.'
example: '12345'
required:
- sid
filters:
type: object
description: ''
example: []
properties:
start_date:
type: string
description: 'The start date for filtering transactions in `Y-m-d H:i:s` format.'
example: '2021-01-01 00:00:00'
end_date:
type: string
description: 'The end date for filtering transactions in `Y-m-d H:i:s` format.'
example: '2021-12-31 23:59:59'
sweep_id:
type: string
description: 'The sweep ID of the transaction.'
example: 'sweep_123*'
customer_uuid:
type: string
description: 'The customer UUID associated with the transaction.'
example: cust_456
/api/transaction/charge-card:
post:
summary: 'Charge a Credit Card'
operationId: chargeACreditCard
description: "This endpoint allows you to charge a credit card using the PAN Data or a Token. This endpoint will process the charge and return a token\nrepresenting the card that can be used for transactions as well as the transactionId and the customerUUID if requested.\nIf you pass a customer UUID or a customer phone number, then a customer record will be created or retrieved if it already exists, also making the customer UUID available for the purpose of associating charges to a customer.\nYou must be PCI Compliant (have an AoC on file with Dime Payments) to process PAN Data. A token can optionally be provided to process charges without requiring PCI compliance as no PAN data is being sent."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
transaction_type: 'Credit Card'
transaction_status: Success
transaction_status_description: 'Transaction Successful'
transaction_number: '1234567890'
transaction_date: '2020-01-01'
fund_date: '2020-01-01'
settle_date: '2020-01-01'
amount: '100.00'
description: 'a memo concerning this transaction'
status_code: '00'
status_text: APPROVAL
email: email@email.com
phone: '+17701234567'
customer_uuid: 66f1c230-1337-5g59-b43c-1bcb83adfaaa
multi_use_token: abcdefg123456790
pending: true
transaction_info_id: '1234567890'
parent_transaction_info_id: '1234567890'
billing_address:
first_name: John
last_name: Doe
addr1: '123 Main St'
addr2: 'Suite 100'
city: 'New York'
state: NY
shipping_address:
addr1: '12 Street Ave'
addr2: 'Suite 123'
city: Boulder
state: CO
zip: '80302'
properties:
data:
type: object
properties:
transaction_type:
type: string
example: 'Credit Card'
transaction_status:
type: string
example: Success
description: 'The status of the transaction.'
transaction_status_description:
type: string
example: 'Transaction Successful'
description: 'The description of the transaction status.'
transaction_number:
type: string
example: '1234567890'
description: 'The unique transaction used for referencing in the future.'
transaction_date:
type: string
example: '2020-01-01'
description: 'The date the transaction was processed.'
fund_date:
type: string
example: '2020-01-01'
description: 'The date the funds were deposited into the account.'
settle_date:
type: string
example: '2020-01-01'
description: 'The date the funds were settled into the account.'
amount:
type: string
example: '100.00'
description: 'The amount of the transaction.'
description:
type: string
example: 'a memo concerning this transaction'
description: 'The original memo field.'
status_code:
type: string
example: '00'
description: 'Response code from processor.'
status_text:
type: string
example: APPROVAL
description: 'Response text from processor.'
email:
type: string
example: email@email.com
description: 'The email address of a customer record, if one was created/provided.'
phone:
type: string
example: '+17701234567'
description: 'The phone number of a customer record, if one was created/provided.'
customer_uuid:
type: string
example: 66f1c230-1337-5g59-b43c-1bcb83adfaaa
description: "The unique UUID of the merchant's customer, only if a customer record was created."
multi_use_token:
type: string
example: abcdefg123456790
description: 'A token used to charge against a stored credit card.'
pending:
type: boolean
example: true
description: 'The pending status of the transaction.'
transaction_info_id:
type: string
example: '1234567890'
description: "The transaction's info id that can be used in requests to other API endpoints to look up a specific transaction."
parent_transaction_info_id:
type: string
example: '1234567890'
description: "The transaction's parent's info id that can be used in requests to other API endpoints to look up a specific transaction."
billing_address:
type: object
properties:
first_name:
type: string
example: John
description: 'The first name field.'
last_name:
type: string
example: Doe
description: 'The last name field.'
addr1:
type: string
example: '123 Main St'
description: 'The first address line.'
addr2:
type: string
example: 'Suite 100'
description: 'The second address line.'
city:
type: string
example: 'New York'
description: 'The city field.'
state:
type: string
example: NY
description: 'The state field.'
shipping_address:
type: object
properties:
addr1:
type: string
example: '12 Street Ave'
description: 'The first address line.'
addr2:
type: string
example: 'Suite 123'
description: 'The second address line.'
city:
type: string
example: Boulder
description: 'The city field.'
state:
type: string
example: CO
description: 'The state field.'
zip:
type: string
example: '80302'
description: 'The zip field.'
400:
description: ''
content:
application/json:
schema:
oneOf:
-
description: ''
type: object
example:
errors:
sid:
- 'The sid is required.'
properties:
errors:
type: object
properties:
sid:
type: array
example:
- 'The sid is required.'
items:
type: string
-
description: ''
type: object
example:
data:
transaction_type: 'Credit Card'
transaction_status: Failed
transaction_status_description: 'Transaction failed'
transaction_number: '1234567890'
transaction_date: '2020-01-01'
fund_date: '2020-01-01'
settle_date: '2020-01-01'
amount: '100.00'
description: 'a memo concerning this transaction'
status_code: '05'
status_text: DECLINE
email: email@email.com
phone: '+17701234567'
customer_uuid: 66f1c230-1337-5g59-b43c-1bcb83adfaaa
multi_use_token: abcdefg123456790
pending: true
transaction_info_id: '1234567890'
parent_transaction_info_id: '1234567890'
billing_address:
first_name: John
last_name: Doe
addr1: '123 Main St'
addr2: 'Suite 100'
city: 'New York'
state: NY
shipping_address:
addr1: '12 Street Ave'
addr2: 'Suite 123'
city: Boulder
state: CO
zip: '80302'
properties:
data:
type: object
properties:
transaction_type:
type: string
example: 'Credit Card'
transaction_status:
type: string
example: Failed
description: 'The status of the transaction.'
transaction_status_description:
type: string
example: 'Transaction failed'
description: 'The description of the transaction status.'
transaction_number:
type: string
example: '1234567890'
description: 'The unique transaction used for referencing in the future.'
transaction_date:
type: string
example: '2020-01-01'
description: 'The date the transaction was processed.'
fund_date:
type: string
example: '2020-01-01'
description: 'The date the funds were deposited into the account.'
settle_date:
type: string
example: '2020-01-01'
description: 'The date the funds were settled into the account.'
amount:
type: string
example: '100.00'
description: 'The amount of the transaction.'
description:
type: string
example: 'a memo concerning this transaction'
description: 'The original memo field.'
status_code:
type: string
example: '05'
description: 'Response code from processor.'
status_text:
type: string
example: DECLINE
description: 'Response text from processor.'
email:
type: string
example: email@email.com
description: 'The email address of a customer record, if one was created/provided.'
phone:
type: string
example: '+17701234567'
description: 'The phone number of a customer record, if one was created/provided.'
customer_uuid:
type: string
example: 66f1c230-1337-5g59-b43c-1bcb83adfaaa
description: "The unique UUID of the merchant's customer, only if a customer record was created."
multi_use_token:
type: string
example: abcdefg123456790
description: 'A token used to charge against a stored credit card.'
pending:
type: boolean
example: true
description: 'The pending status of the transaction.'
transaction_info_id:
type: string
example: '1234567890'
description: "The transaction's info id that can be used in requests to other API endpoints to look up a specific transaction."
parent_transaction_info_id:
type: string
example: '1234567890'
description: "The transaction's parent's info id that can be used in requests to other API endpoints to look up a specific transaction."
billing_address:
type: object
properties:
first_name:
type: string
example: John
description: 'The first name field.'
last_name:
type: string
example: Doe
description: 'The last name field.'
addr1:
type: string
example: '123 Main St'
description: 'The first address line.'
addr2:
type: string
example: 'Suite 100'
description: 'The second address line.'
city:
type: string
example: 'New York'
description: 'The city field.'
state:
type: string
example: NY
description: 'The state field.'
shipping_address:
type: object
properties:
addr1:
type: string
example: '12 Street Ave'
description: 'The first address line.'
addr2:
type: string
example: 'Suite 123'
description: 'The second address line.'
city:
type: string
example: Boulder
description: 'The city field.'
state:
type: string
example: CO
description: 'The state field.'
zip:
type: string
example: '80302'
description: 'The zip field.'
403:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Permission Denied.'
properties:
message:
type: string
example: 'Permission Denied.'
tags:
- 'Transaction management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
amount:
type: number
description: ''
example: 4326.41688
sid:
type: number
description: 'ID of merchant account processing the charge.'
example: 1234567.0
phone:
type: string
description: 'Must be the phone number in e164 format.'
example: '+177012345678'
customer_uuid:
type: string
description: 'Must be a valid UUID.'
example: 977e5426-8d13-3824-86aa-b092f8ae52c5
email:
type: string
description: 'The email of a customer. Max: 50.'
example: gbailey@example.net
nullable: true
memo:
type: string
description: 'A string containing memo related information, such as an invoice ID. Max: 120.'
example: architecto
nullable: true
token:
type: string
description: 'An optional token to be used to reference a stored card for processing.'
example: abc123
cardholder_name:
type: string
description: 'The name of the cardholder. Max: 50.'
example: 'John Doe'
card_number:
type: number
description: 'The credit card number. Min: 15. Max: 16.'
example: 1.2312312312312E+15
expiration_date:
type: string
description: 'Expiration date of the card, in the form mm/YYYY.'
example: 01/2025
cvv:
type: number
description: "optional The card's CVV. Min: 3, Max: 4."
example: 123.0
nullable: true
billing_address:
type: object
description: ''
example: []
properties:
first_name:
type: string
description: 'required_without:data.token. Must not be greater than 50 characters.'
example: m
nullable: true
last_name:
type: string
description: 'Must not be greater than 50 characters.'
example: i
nullable: true
addr1:
type: string
description: "The cardholder's address line 1. Max: 55."
example: '1234 Main St'
nullable: true
addr2:
type: string
description: "The cardholder's address line 2. Max: 55."
example: 'Suite 100'
nullable: true
city:
type: string
description: "The cardholder's city. Max: 55."
example: Atlanta
nullable: true
state:
type: string
description: "The cardholder's state. Max: 2."
example: NY
nullable: true
zip:
type: number
description: "The cardholder's ZIP code. Digits: 5."
example: 10001.0
required:
- zip
shipping_address:
type: object
description: ''
example: []
properties:
addr1:
type: string
description: 'optional The first address line. Max: 50.'
example: '123 A Street'
nullable: true
addr2:
type: string
description: 'optional The second address line. Max: 50.'
example: 'Suite 123'
nullable: true
city:
type: string
description: 'optional The city. Max: 50.'
example: Alpharetta
state:
type: string
description: 'optional The state. Max: 2.'
example: GA
zip:
type: integer
description: 'optional The state. Max: 5.'
example: 0
uuid:
type: string
description: 'The UUID of the customer record.'
example: 60dac128-28da-41ae-8632-aee299de13fd
required:
- amount
- sid
- cardholder_name
/api/transaction/charge-ach:
post:
summary: 'Charge a Bank Account'
operationId: chargeABankAccount
description: ''
parameters: []
responses:
200:
description: 'Successful Transaction'
content:
application/json:
schema:
type: object
example:
data:
transaction_type: ACH
transaction_status: Success
transaction_status_description: Success
transaction_number: '130'
transaction_date: '2021-01-01'
fund_date: '2021-01-01'
settle_date: '2021-01-01'
amount: '25'
description: ''
status_code: '00'
status_text: Success
email: test@test.com
phone: ''
customer_uuid: ''
multi_use_token: ''
pending: false
transaction_info_id: '1234567890'
parent_transaction_info_id: '1234567890'
billing_address:
first_name: First
last_name: Last
addr1: '12 Street Ave'
addr2: 'Suite 123'
city: Boulder
state: CO
zip: '80302'
shipping_address:
addr1: '12 Street Ave'
addr2: 'Suite 123'
city: Boulder
state: CO
zip: '80302'
properties:
data:
type: object
properties:
transaction_type:
type: string
example: ACH
description: 'ACH or Credit Card.'
transaction_status:
type: string
example: Success
description: 'The status of the transaction.'
transaction_status_description:
type: string
example: Success
description: 'The description of the transaction status.'
transaction_number:
type: string
example: '130'
description: 'The unique transaction used for referencing in the future.'
transaction_date:
type: string
example: '2021-01-01'
description: 'The date of the transaction.'
fund_date:
type: string
example: '2021-01-01'
description: 'The date funds were deposited.'
settle_date:
type: string
example: '2021-01-01'
description: 'The date funds were settled.'
amount:
type: string
example: '25'
description: 'The amount of the transaction in USD.'
description:
type: string
example: ''
description: 'The original memo field.'
status_code:
type: string
example: '00'
description: 'Response code from processor.'
status_text:
type: string
example: Success
description: 'Response text from processor.'
email:
type: string
example: test@test.com
description: 'The email address.'
phone:
type: string
example: ''
description: 'The phone number.'
customer_uuid:
type: string
example: ''
description: "The customer's UUID."
multi_use_token:
type: string
example: ''
description: Not
pending:
type: boolean
example: false
description: 'Shows if pending status.'
transaction_info_id:
type: string
example: '1234567890'
description: Not
parent_transaction_info_id:
type: string
example: '1234567890'
description: Not
billing_address:
type: object
properties:
first_name:
type: string
example: First
description: 'The first name field.'
last_name:
type: string
example: Last
description: 'The last name field.'
addr1:
type: string
example: '12 Street Ave'
description: 'The first address line.'
addr2:
type: string
example: 'Suite 123'
description: 'The second address line.'
city:
type: string
example: Boulder
description: 'The city field.'
state:
type: string
example: CO
description: 'The state field.'
zip:
type: string
example: '80302'
description: 'The zip field.'
shipping_address:
type: object
properties:
addr1:
type: string
example: '12 Street Ave'
description: 'The first address line.'
addr2:
type: string
example: 'Suite 123'
description: 'The second address line.'
city:
type: string
example: Boulder
description: 'The city field.'
state:
type: string
example: CO
description: 'The state field.'
zip:
type: string
example: '80302'
description: 'The zip field.'
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
data.amount:
- 'The data.amount field is required.'
data.account_type:
- 'The selected data.account_type is invalid.'
properties:
errors:
type: object
properties:
data.amount:
type: array
example:
- 'The data.amount field is required.'
items:
type: string
data.account_type:
type: array
example:
- 'The selected data.account_type is invalid.'
items:
type: string
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Token unauthorized'
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
-
description: 'Invalid merchant or affiliate authorization'
type: object
example:
data:
message: Unauthorized
properties:
data:
type: object
properties:
message:
type: string
example: Unauthorized
-
description: 'Invalid merchant or affiliate association'
type: object
example:
data:
message: 'Not associated with affiliate'
properties:
data:
type: object
properties:
message:
type: string
example: 'Not associated with affiliate'
404:
description: 'Invalid sid'
content:
application/json:
schema:
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
tags:
- 'Transaction management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: number
description: 'The ID of merchant account processing the charge.'
example: 1234567.0
routing_number:
type: string
description: 'The bank account routing number. Max: 9.'
example: '123456789'
account_number:
type: string
description: 'The bank account number. Max: 50.'
example: '91828382'
account_type:
type: string
description: 'Must be Checking or Savings.'
example: Checking
account_name:
type: string
description: 'The name on the bank account. Max: 50.'
example: 'Acme Inc.'
amount:
type: number
description: 'The transaction amount.'
example: 99.19
phone:
type: string
description: 'The phone number.'
example: '7701234567'
customer_uuid:
type: string
description: "optional The unique UUID of the merchant's customer."
example: 12312312-123123123-1231231231
email:
type: string
description: 'Must be a valid email address. Must not be greater than 50 characters.'
example: okon.justina@example.com
nullable: true
memo:
type: string
description: 'optional The memo field. Max: 120.'
example: 'payment for something'
nullable: true
billing_address:
type: object
description: ''
example: []
properties:
first_name:
type: string
description: 'The first name. Max: 50.'
example: Ryan
nullable: true
last_name:
type: string
description: 'The first name. Max: 50.'
example: Taylor
nullable: true
addr1:
type: string
description: 'optional The first address line. Max: 31.'
example: '123 A Street'
nullable: true
addr2:
type: string
description: 'optional The second address line. Max: 31.'
example: 'Suite 123'
nullable: true
city:
type: string
description: 'optional The city. Max: 52.'
example: Alpharetta
nullable: true
state:
type: string
description: 'optional The state. Max: 2.'
example: GA
nullable: true
zip:
type: integer
description: 'optional The zip code. Max: 5.'
example: 30009
nullable: true
shipping_address:
type: object
description: ''
example: []
properties:
addr1:
type: string
description: 'optional The first address line. Max: 50.'
example: '123 A Street'
nullable: true
addr2:
type: string
description: 'optional The second address line. Max: 50.'
example: 'Suite 123'
nullable: true
city:
type: string
description: 'optional The city. Max: 50.'
example: Alpharetta
nullable: true
state:
type: string
description: 'optional The state. Max: 2.'
example: GA
nullable: true
zip:
type: integer
description: 'optional The state. Max: 5.'
example: 12345
nullable: true
required:
- sid
- routing_number
- account_number
- account_type
- account_name
- amount
/api/transaction/tokenize-card:
post:
summary: 'Tokenize a Credit Card'
operationId: tokenizeACreditCard
description: 'This endpoint allows you to tokenize a credit card, which will verify its validity and return a token representing the card that can be used for transactions. This method requires PCI compliance on the part of the affiliate or merchant.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
token: abcd1234
properties:
data:
type: object
properties:
token:
type: string
example: abcd1234
description: 'The token representing the card. Example: abcd1234'
400:
description: ''
content:
application/json:
schema:
oneOf:
-
description: ''
type: object
example:
errors:
card_number:
- 'The card number must be a number.'
properties:
errors:
type: object
properties:
card_number:
type: array
example:
- 'The card number must be a number.'
items:
type: string
-
description: ''
type: object
example:
data:
message: 'Validation of card failed.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Validation of card failed.'
401:
description: ''
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
tags:
- 'Transaction management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: number
description: 'The ID of the merchant account processing the charge.'
example: 1234567.0
cardholder_name:
type: string
description: 'The name of the cardholder. Max: 50.'
example: 'John Doe'
card_number:
type: number
description: 'The 15/16-digit credit card number.'
example: 1.2345678123457E+15
expiration_date:
type: string
description: 'Expiry date of the card, in the form mm/YYYY.'
example: 01/2025
cvv:
type: number
description: "optional The card's CVV. Min: 3, Max: 4."
example: 123.0
nullable: true
billing_address:
type: object
description: ''
example: []
properties:
addr1:
type: string
description: "The cardholder's address line 1. Can be empty string Max: 55."
example: '1234 Main St'
nullable: true
addr2:
type: string
description: "The cardholder's address line 2. Max: 55."
example: 'Suite 100'
nullable: true
city:
type: string
description: "The cardholder's city. Can be empty string Max: 55."
example: 'New York'
nullable: true
state:
type: string
description: "The cardholder's state. Can be empty string Max: 2."
example: NY
nullable: true
zip:
type: number
description: "The cardholder's ZIP code. Digits: 5."
example: 10001.0
required:
- addr1
- city
- state
- zip
required:
- sid
- cardholder_name
- card_number
- expiration_date
/api/transaction:
get:
summary: 'Show Transaction'
operationId: showTransaction
description: ''
parameters: []
responses:
200:
description: 'Successful Show'
content:
application/json:
schema:
type: object
example:
data:
transaction_type: CC
transaction_status: 'CC Pending'
transaction_status_description: 'A cc transaction that is pending'
transaction_number: '1231'
transaction_date: '2021-01-01'
fund_date: '2021-01-01'
settle_date: '2021-01-01'
amount: '25.0000'
description: ''
status_code: ''
status_text: ''
email: ''
phone: ''
customer_uuid: 68d9feaa-04a9-4c48-8c00-a0b79c8b2f70
multi_use_token: ''
pending: true
transaction_info_id: '1231321'
parent_transaction_info_id: '12313244444'
billing_address:
first_name: ''
last_name: ''
addr1: ''
addr2: ''
city: ''
state: ''
zip: ''
shipping_address:
addr1: '123 Main St'
addr2: 'apt 1'
city: Alpharetta
state: GA
zip: '12345'
properties:
data:
type: object
properties:
transaction_type:
type: string
example: CC
description: 'Transaction type. Example: Checking'
transaction_status:
type: string
example: 'CC Pending'
description: 'Transaction Status. Example: CC Pending'
transaction_status_description:
type: string
example: 'A cc transaction that is pending'
description: 'Transaction Status Description explaining the status. Example: A credit card transaction that has not settled yet.'
transaction_number:
type: string
example: '1231'
transaction_date:
type: string
example: '2021-01-01'
description: 'Transaction Date. Example: 2024-01-17T12:44:28.000000Z'
fund_date:
type: string
example: '2021-01-01'
description: 'Fund Date. Example: 2024-01-18T21:05:21.000000Z'
settle_date:
type: string
example: '2021-01-01'
description: 'Settle Date. Example: 2024-01-17T18:35:00.000000Z'
amount:
type: string
example: '25.0000'
description: 'Transaction amount. Example: $120.00'
description:
type: string
example: ''
description: 'Transaction type. Example: Checking'
status_code:
type: string
example: ''
description: 'The status code of the transaction.'
status_text:
type: string
example: ''
description: 'The status text of the transaction.'
email:
type: string
example: ''
description: 'The email of the transaction.'
phone:
type: string
example: ''
description: 'The phone of the transaction.'
customer_uuid:
type: string
example: 68d9feaa-04a9-4c48-8c00-a0b79c8b2f70
description: 'The customer uuid of the transaction.'
multi_use_token:
type: string
example: ''
description: 'The multi use token of the transaction.'
pending:
type: boolean
example: true
description: 'The pending status of the transaction.'
transaction_info_id:
type: string
example: '1231321'
description: "The transaction's info id that can be used in requests to other API endpoints to look up a specific transaction."
parent_transaction_info_id:
type: string
example: '12313244444'
description: "The transaction's parent's info id that can be used in requests to other API endpoints to look up a specific transaction."
billing_address:
type: object
properties:
first_name:
type: string
example: ''
description: 'The first name field.'
last_name:
type: string
example: ''
description: 'The last name field.'
addr1:
type: string
example: ''
description: 'The first address line.'
addr2:
type: string
example: ''
description: 'The second address line.'
city:
type: string
example: ''
description: 'The city field.'
state:
type: string
example: ''
description: 'The state field.'
zip:
type: string
example: ''
description: 'The zip field.'
shipping_address:
type: object
properties:
addr1:
type: string
example: '123 Main St'
description: 'The first address line.'
addr2:
type: string
example: 'apt 1'
description: 'The second address line.'
city:
type: string
example: Alpharetta
description: 'The city field.'
state:
type: string
example: GA
description: 'The state field.'
zip:
type: string
example: '12345'
description: 'The zip field.'
400:
description: 'Field Validation Failed'
content:
application/json:
schema:
type: object
example:
errors:
data.sid:
- 'The data.sid is not the correct format.'
properties:
errors:
type: object
properties:
data.sid:
type: array
example:
- 'The data.sid is not the correct format.'
items:
type: string
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid API Key Permission'
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
-
description: 'User perm issue'
type: object
example:
data:
message: 'User not associated with the affiliate.'
properties:
data:
type: object
properties:
message:
type: string
example: 'User not associated with the affiliate.'
404:
description: 'No transaction found'
content:
application/json:
schema:
type: object
example:
data:
message: 'No transaction found'
properties:
data:
type: object
properties:
message:
type: string
example: 'No transaction found'
tags:
- 'Transaction management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: number
description: 'The ID of the merchant that processed the transaction.'
example: 1234567.0
transaction_info_id:
type: number
description: 'The transaction info id which is unique only against the SID of the merchant, and ties across all other reporting objects such as transactions.'
example: 6789131231.0
transaction_type:
type: string
description: 'Must be either "CC" or "ACH". This field is required with data.transaction_id when transaction_info_id is not provided.'
example: ACH
transaction_id:
type: number
description: 'The ID of a transaction. This field is required with data.transaction_type when transaction info_id is not provided.'
example: 123.0
required:
- sid
- transaction_type
/api/transaction/refund:
post:
summary: 'Refund Transaction'
operationId: refundTransaction
description: 'Processes a refund for a transaction based on the provided data.'
parameters: []
responses:
200:
description: 'Successful Refund'
content:
application/json:
schema:
type: object
example:
data:
message: refund
properties:
data:
type: object
properties:
message:
type: string
example: refund
description: 'The message returned from the refund. Example: refund'
400:
description: ''
content:
application/json:
schema:
oneOf:
-
description: ''
type: object
example:
errors:
data.sid:
- 'The sid field is required.'
data.transaction_info_id:
- 'The selected transaction_info_id is invalid.'
properties:
errors:
type: object
properties:
data.sid:
type: array
example:
- 'The sid field is required.'
items:
type: string
data.transaction_info_id:
type: array
example:
- 'The selected transaction_info_id is invalid.'
items:
type: string
-
description: ''
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
description: 'The message returned from the refund. Example: refund'
-
description: ''
type: object
example:
data:
message: 'Error processing refund'
properties:
data:
type: object
properties:
message:
type: string
example: 'Error processing refund'
description: 'The message returned from the refund. Example: refund'
-
description: ''
type: object
example:
data:
message: 'Unsupported processor.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Unsupported processor.'
description: 'The message returned from the refund. Example: refund'
401:
description: 'Bad API Key Permission'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
description: 'The message returned from the refund. Example: refund'
tags:
- 'Transaction management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: number
description: 'The ID of merchant that processed the transaction.'
example: 1234567.0
amount:
type: number
description: 'The amount to be refunded. Must be greater than 0 and less than the total amount of transaction.'
example: 100.5
transaction_info_id:
type: number
description: 'The transaction info id which is unique only against the SID of the merchant, and ties across all other reporting objects such as transactions.'
example: 6789131231.0
transaction_type:
type: string
description: 'Only required if not passing transaction_info_id. The transaction type which should be either CC or ACH.'
example: CC
transaction_id:
type: number
description: 'Only required if not passing transaction_info_id. For credit card transactions this is the gateway transaction id, and for ach transactions this is the att number.'
example: 6789131231.0
required:
- sid
- amount
- transaction_info_id
- transaction_type
- transaction_id
/api/transaction/void:
patch:
summary: 'Void Transaction'
operationId: voidTransaction
description: 'Void a transaction'
parameters: []
responses:
200:
description: 'Successful Void'
content:
application/json:
schema:
type: object
example:
data:
message: 'Transaction voided successfully'
properties:
data:
type: object
properties:
message:
type: string
example: 'Transaction voided successfully'
description: 'The message returned from the void. Example: Transaction voided successfully'
400:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Field Validation Failed'
type: object
example:
errors:
data.sid:
- 'The data.sid is not the correct format.'
properties:
errors:
type: object
properties:
data.sid:
type: array
example:
- 'The data.sid is not the correct format.'
items:
type: string
-
description: 'Transaction not found'
type: object
example:
data:
message: 'No transaction found'
properties:
data:
type: object
properties:
message:
type: string
example: 'No transaction found'
description: 'The message returned from the void. Example: Transaction voided successfully'
-
description: 'Unsupported Processor'
type: object
example:
data:
message: 'Unsupported Processor'
properties:
data:
type: object
properties:
message:
type: string
example: 'Unsupported Processor'
description: 'The message returned from the void. Example: Transaction voided successfully'
-
description: 'Transaction cannot be voided'
type: object
example:
data:
message: 'Transaction cannot be voided'
properties:
data:
type: object
properties:
message:
type: string
example: 'Transaction cannot be voided'
description: 'The message returned from the void. Example: Transaction voided successfully'
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Bad API Key Permission'
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
description: 'The message returned from the void. Example: Transaction voided successfully'
-
description: 'User perm issue'
type: object
example:
data:
message: 'User not associated with the affiliate.'
properties:
data:
type: object
properties:
message:
type: string
example: 'User not associated with the affiliate.'
description: 'The message returned from the void. Example: Transaction voided successfully'
tags:
- 'Transaction management'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: string
description: 'Must be unique to the Merchant and less than 150 digits.'
example: '91828382'
transaction_type:
type: string
description: 'Must be either "CC" or "ACH".'
example: ACH
transaction_id:
type: number
description: 'Must be unique to the transaction. For credit card transactions this is the gateway transaction id, and for ach transactions this is the att number.'
example: 123.0
required:
- sid
- transaction_type
- transaction_id
required:
- data
/api/address/list:
get:
summary: 'List Addresses'
operationId: listAddresses
description: 'List all addresses for a specific customer.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
-
id: 1
recipient: null
line_one: ''
line_two: null
line_three: null
city: ''
state: ''
zip: ''
-
id: 1
recipient: null
line_one: ''
line_two: null
line_three: null
city: ''
state: ''
zip: ''
properties:
data:
type: array
example:
-
-
id: 1
recipient: null
line_one: ''
line_two: null
line_three: null
city: ''
state: ''
zip: ''
-
id: 1
recipient: null
line_one: ''
line_two: null
line_three: null
city: ''
state: ''
zip: ''
items:
type: array
401:
description: 'Unauthorized Access'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Customer Not Found'
type: object
example:
data:
message: 'No such Customer'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Customer'
-
description: 'Merchant Not Found'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
tags:
- Addresses
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
uuid:
type: string
description: 'The UUID of the customer.'
example: 60dac128-28da-41ae-8632-aee299de13fd
required:
- sid
- uuid
/api/address/show:
get:
summary: 'Show Address'
operationId: showAddress
description: 'Show details of a specific address.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
address_id: 1
recipient: null
line_one: ''
line_two: null
line_three: null
city: ''
state: ''
zip: ''
properties:
data:
type: object
properties:
address_id:
type: integer
example: 1
recipient:
type: string
example: null
description: 'Name associated with the address.'
line_one:
type: string
example: ''
description: 'Address line 1.'
line_two:
type: string
example: null
description: 'Address line 2.'
line_three:
type: string
example: null
description: 'Address line 3.'
city:
type: string
example: ''
description: City.
state:
type: string
example: ''
description: 'State (2 characters).'
zip:
type: string
example: ''
description: Zip
401:
description: 'Unauthorized Access'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Address Not Found'
type: object
example:
data:
message: 'No such Address'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Address'
-
description: 'Merchant Not Found'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Customer Not Found'
type: object
example:
data:
message: 'No such Customer'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Customer'
tags:
- Addresses
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
uuid:
type: string
description: 'The UUID of the customer.'
example: 60dac128-28da-41ae-8632-aee299de13fd
address_id:
type: integer
description: 'The ID of the address.'
example: 1
required:
- sid
- uuid
- address_id
/api/address/create:
post:
summary: 'Create Address'
operationId: createAddress
description: 'Create a new address for a customer.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
address_id: 1
recipient: null
line_one: ''
line_two: null
line_three: null
city: ''
state: ''
zip: ''
properties:
data:
type: object
properties:
address_id:
type: integer
example: 1
recipient:
type: string
example: null
description: 'Name associated with the address.'
line_one:
type: string
example: ''
description: 'Address line 1.'
line_two:
type: string
example: null
description: 'Address line 2.'
line_three:
type: string
example: null
description: 'Address line 3.'
city:
type: string
example: ''
description: City.
state:
type: string
example: ''
description: 'State (2 characters).'
zip:
type: string
example: ''
description: Zip
400:
description: 'Creation Failed'
content:
application/json:
schema:
type: object
example:
data:
message: 'Failed to create address'
properties:
data:
type: object
properties:
message:
type: string
example: 'Failed to create address'
401:
description: 'Unauthorized Access'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Merchant Not Found'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Customer Not Found'
type: object
example:
data:
message: 'No such Customer'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Customer'
tags:
- Addresses
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
uuid:
type: string
description: 'The UUID of the customer.'
example: 60dac128-28da-41ae-8632-aee299de13fd
recipient:
type: string
description: 'Name associated with the address.'
example: 'John Doe'
line_one:
type: string
description: 'Address line 1.'
example: '123 Main St'
line_two:
type: string
description: 'Address line 2.'
example: 'Apt 4B'
nullable: true
line_three:
type: string
description: 'Address line 3.'
example: architecto
nullable: true
city:
type: string
description: City.
example: Atlanta
state:
type: string
description: 'State (2 characters).'
example: GA
zip:
type: string
description: 'Zip code.'
example: '30301'
required:
- sid
- uuid
- recipient
- line_one
- city
- state
- zip
/api/address/update:
patch:
summary: 'Update Address'
operationId: updateAddress
description: 'Update an existing address.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
address_id: 1
recipient: null
line_one: ''
line_two: null
line_three: null
city: ''
state: ''
zip: ''
properties:
data:
type: object
properties:
address_id:
type: integer
example: 1
recipient:
type: string
example: null
description: 'Name associated with the address.'
line_one:
type: string
example: ''
description: 'Address line 1.'
line_two:
type: string
example: null
description: 'Address line 2.'
line_three:
type: string
example: null
description: 'Address line 3.'
city:
type: string
example: ''
description: City.
state:
type: string
example: ''
description: 'State (2 characters).'
zip:
type: string
example: ''
description: Zip
400:
description: 'Update Failed'
content:
application/json:
schema:
type: object
example:
data:
message: 'Failed to update address'
properties:
data:
type: object
properties:
message:
type: string
example: 'Failed to update address'
401:
description: 'Unauthorized Access'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Merchant Not Found'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Customer Not Found'
type: object
example:
data:
message: 'No such Customer'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Customer'
tags:
- Addresses
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
uuid:
type: string
description: 'The UUID of the customer.'
example: 60dac128-28da-41ae-8632-aee299de13fd
address_id:
type: integer
description: 'The ID of the address to update.'
example: 1
recipient:
type: string
description: 'Name associated with the address.'
example: 'John Doe'
nullable: true
line_one:
type: string
description: 'Address line 1.'
example: '123 Main St'
nullable: true
line_two:
type: string
description: 'Address line 2.'
example: 'Apt 4B'
nullable: true
line_three:
type: string
description: 'Address line 3.'
example: architecto
nullable: true
city:
type: string
description: City.
example: Atlanta
nullable: true
state:
type: string
description: 'State (2 characters).'
example: GA
nullable: true
zip:
type: string
description: 'Zip code.'
example: '30301'
nullable: true
required:
- sid
- uuid
- address_id
/api/address/delete:
post:
summary: 'Delete Address'
operationId: deleteAddress
description: 'Remove an address from a customer.'
parameters: []
responses:
200:
description: 'Address Deleted Successfully'
content:
application/json:
schema:
type: object
example:
data:
message: 'Address deleted successfully'
properties:
data:
type: object
properties:
message:
type: string
example: 'Address deleted successfully'
description: 'Message indicating the success or failure of the deletion.'
400:
description: 'Deletion Failed'
content:
application/json:
schema:
type: object
example:
data:
message: 'Unable to delete'
properties:
data:
type: object
properties:
message:
type: string
example: 'Unable to delete'
description: 'Message indicating the success or failure of the deletion.'
401:
description: 'Unauthorized Access'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
description: 'Message indicating the success or failure of the deletion.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Address Not Found'
type: object
example:
data:
message: 'No such Address'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Address'
description: 'Message indicating the success or failure of the deletion.'
-
description: 'Merchant Not Found'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
description: 'Message indicating the success or failure of the deletion.'
-
description: 'Customer Not Found'
type: object
example:
data:
message: 'No such Customer'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Customer'
description: 'Message indicating the success or failure of the deletion.'
tags:
- Addresses
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
uuid:
type: string
description: 'The UUID of the customer.'
example: 60dac128-28da-41ae-8632-aee299de13fd
address_id:
type: integer
description: 'The ID of the address to delete.'
example: 1
required:
- sid
- uuid
- address_id
/api/customer/list:
get:
summary: 'List Customers'
operationId: listCustomers
description: 'Retrieves a list of customers for a given company, filtered by various parameters.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
-
id: 6
uuid: 66f1c230-68cf-4d58-b47c-1bcb83adfddd
first_name: Ryan
last_name: Taylor
company_name: ''
phone: '+17707892072'
phone_verified_at: null
email: rtaylor82@gmail.com
email_verified_at: null
addr1: '4655 Hwy 136 W'
addr2: ''
addr3: ''
city: Dawsonville
state: GA
zip: '30534'
country: USA
email_communications: true
sms_communications: false
payment_reminders: true
last_login_at: '2026-04-28T20:45:43.000000Z'
last_login_ip: 69.85.118.154
-
id: 6
uuid: 66f1c230-68cf-4d58-b47c-1bcb83adfddd
first_name: Ryan
last_name: Taylor
company_name: ''
phone: '+17707892072'
phone_verified_at: null
email: rtaylor82@gmail.com
email_verified_at: null
addr1: '4655 Hwy 136 W'
addr2: ''
addr3: ''
city: Dawsonville
state: GA
zip: '30534'
country: USA
email_communications: true
sms_communications: false
payment_reminders: true
last_login_at: '2026-04-28T20:45:43.000000Z'
last_login_ip: 69.85.118.154
properties:
data:
type: array
example:
-
-
id: 6
uuid: 66f1c230-68cf-4d58-b47c-1bcb83adfddd
first_name: Ryan
last_name: Taylor
company_name: ''
phone: '+17707892072'
phone_verified_at: null
email: rtaylor82@gmail.com
email_verified_at: null
addr1: '4655 Hwy 136 W'
addr2: ''
addr3: ''
city: Dawsonville
state: GA
zip: '30534'
country: USA
email_communications: true
sms_communications: false
payment_reminders: true
last_login_at: '2026-04-28T20:45:43.000000Z'
last_login_ip: 69.85.118.154
-
id: 6
uuid: 66f1c230-68cf-4d58-b47c-1bcb83adfddd
first_name: Ryan
last_name: Taylor
company_name: ''
phone: '+17707892072'
phone_verified_at: null
email: rtaylor82@gmail.com
email_verified_at: null
addr1: '4655 Hwy 136 W'
addr2: ''
addr3: ''
city: Dawsonville
state: GA
zip: '30534'
country: USA
email_communications: true
sms_communications: false
payment_reminders: true
last_login_at: '2026-04-28T20:45:43.000000Z'
last_login_ip: 69.85.118.154
items:
type: array
400:
description: ''
content:
application/json:
schema:
oneOf:
-
description: ''
type: object
example:
message: 'Validation errors'
properties:
message:
type: string
example: 'Validation errors'
-
description: ''
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: ''
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
-
description: ''
type: object
example:
data:
message: 'Merchant or Affiliate check failed'
properties:
data:
type: object
properties:
message:
type: string
example: 'Merchant or Affiliate check failed'
tags:
- 'Customer management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
required:
- sid
filters:
type: object
description: ''
example: []
properties:
start_date:
type: string
description: 'required_with:filters.end_date The start date for filtering customers in `Y-m-d H:i:s` format. Must be before or equal to filters.end_date.'
example: '2024-01-01 00:00:00'
end_date:
type: string
description: 'required_with:filters.start_date The end date for filtering customers in `Y-m-d H:i:s` format. Must be after or equal to filters.start_date.'
example: '2024-12-31 23:59:59'
phone:
type: string
description: 'A phone number to filter customers by. Must be in the US format e164.'
example: '+15555555555'
email:
type: string
description: 'An email address to filter customers by. Must comply with RFC email format.'
example: example@example.com
/api/customer/show:
get:
summary: 'Show Customer'
operationId: showCustomer
description: "Show a specific customer's details"
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
uuid: 66f1c230-68cf-4d58-b47c-1bcb83adfddd
first_name: Ryan
last_name: Taylor
phone: '+17707892072'
email: rtaylor82@gmail.com
addr1: '4655 Hwy 136 W'
addr2: ''
addr3: ''
city: Dawsonville
state: GA
zip: '30534'
country: USA
properties:
data:
type: object
properties:
uuid:
type: string
example: 66f1c230-68cf-4d58-b47c-1bcb83adfddd
description: 'Unique User ID of customer'
first_name:
type: string
example: Ryan
description: 'First name of customer'
last_name:
type: string
example: Taylor
description: 'Last name of customer'
phone:
type: string
example: '+17707892072'
description: 'Unique phone number of customer'
email:
type: string
example: rtaylor82@gmail.com
description: 'Email address of customer'
addr1:
type: string
example: '4655 Hwy 136 W'
description: 'Address line 1 of customer'
addr2:
type: string
example: ''
description: 'Address line 2 of customer'
addr3:
type: string
example: ''
description: 'Address line 3 of customer'
city:
type: string
example: Dawsonville
description: "Customer's"
state:
type: string
example: GA
description: "Customer's"
zip:
type: string
example: '30534'
description: "Customer's"
country:
type: string
example: USA
description: "Customer's"
400:
description: ''
content:
application/json:
schema:
oneOf:
-
description: ''
type: object
example:
message: 'Validation errors'
properties:
message:
type: string
example: 'Validation errors'
-
description: ''
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: ''
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
-
description: ''
type: object
example:
data:
message: 'Merchant or Affiliate check failed'
properties:
data:
type: object
properties:
message:
type: string
example: 'Merchant or Affiliate check failed'
tags:
- 'Customer management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
required:
- sid
filters:
type: object
description: ''
example: []
properties:
phone:
type: string
description: 'A phone number to filter customers by. Must be in the US format e164.'
example: '+15555555555'
email:
type: string
description: 'An email address to filter customers by. Must comply with RFC email format.'
example: example@example.com
uuid:
type: string
description: 'A UUID to filter customers by. Must comply with UUID format.'
example: 60dac128-28da-41ae-8632-aee299de13fd
/api/customer/create:
post:
summary: 'Create Customer'
operationId: createCustomer
description: 'Create a customer record linked to your Company/Merchant.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
uuid: 66f1c230-68cf-4d58-b47c-1bcb83adfddd
first_name: Ryan
last_name: Taylor
phone: '+17707892072'
email: rtaylor82@gmail.com
addr1: '4655 Hwy 136 W'
addr2: ''
addr3: ''
city: Dawsonville
state: GA
zip: '30534'
country: USA
properties:
data:
type: object
properties:
uuid:
type: string
example: 66f1c230-68cf-4d58-b47c-1bcb83adfddd
description: 'The uuid of the customer.'
first_name:
type: string
example: Ryan
description: 'required The first name of the customer.'
last_name:
type: string
example: Taylor
description: 'required The last name of the customer.'
phone:
type: string
example: '+17707892072'
description: 'required The phone number of the customer.'
email:
type: string
example: rtaylor82@gmail.com
description: "required Customer's email."
addr1:
type: string
example: '4655 Hwy 136 W'
description: "Customer's address line 1"
addr2:
type: string
example: ''
description: "Customer's address line 2"
addr3:
type: string
example: ''
description: "Customer's address line 3"
city:
type: string
example: Dawsonville
description: "Customer's"
state:
type: string
example: GA
description: "Customer's"
zip:
type: string
example: '30534'
description: "Customer's"
country:
type: string
example: USA
description: "Customer's"
400:
description: ''
content:
application/json:
schema:
oneOf:
-
description: ''
type: object
example:
message: 'Validation errors'
properties:
message:
type: string
example: 'Validation errors'
-
description: ''
type: object
example:
message: 'Failed to create Customer'
properties:
message:
type: string
example: 'Failed to create Customer'
-
description: ''
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: ''
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
-
description: ''
type: object
example:
data:
message: 'Merchant or Affiliate check failed'
properties:
data:
type: object
properties:
message:
type: string
example: 'Merchant or Affiliate check failed'
tags:
- 'Customer management'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
first_name:
type: string
description: "Customer's first name"
example: architecto
last_name:
type: string
description: "Customer's last name"
example: architecto
company_name:
type: string
description: 'optional Name of Merchant that customer interacts with'
example: architecto
nullable: true
phone:
type: string
description: "Customer's unique phone number"
example: architecto
email:
type: string
description: "Customer's unique email"
example: gbailey@example.net
addr1:
type: string
description: "optional Customer's address line 1"
example: architecto
nullable: true
addr2:
type: string
description: "optional Customer's address line 2"
example: architecto
nullable: true
addr3:
type: string
description: "optional Customer's address line 3"
example: architecto
nullable: true
city:
type: string
description: "optional Customer's city"
example: architecto
nullable: true
state:
type: string
description: "optional Customer's state"
example: architecto
nullable: true
zip:
type: string
description: "optional Customer's zip code"
example: architecto
nullable: true
country:
type: string
description: 'Must not be greater than 3 characters.'
example: 'n'
nullable: true
required:
- sid
- first_name
- last_name
- phone
- email
required:
- data
/api/customer/update:
patch:
summary: 'Update Customer'
operationId: updateCustomer
description: "Update a customer record. Make changes to the customer referenced by UUID, phone number, or email. One of the\nfilters is required to be provided to select a unique customer. Only pass the fields that require updating in\nthe data object."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
uuid: 66f1c230-68cf-4d58-b47c-1bcb83adfddd
first_name: Ryan
last_name: Taylor
phone: '+17707892072'
email: rtaylor82@gmail.com
addr1: '4655 Hwy 136 W'
addr2: ''
addr3: ''
city: Dawsonville
state: GA
zip: '30534'
country: USA
properties:
data:
type: object
properties:
uuid:
type: string
example: 66f1c230-68cf-4d58-b47c-1bcb83adfddd
description: 'The UUID of the customer.'
first_name:
type: string
example: Ryan
description: 'The first name of the customer.'
last_name:
type: string
example: Taylor
description: 'The last name of the customer.'
phone:
type: string
example: '+17707892072'
description: 'Unique phone number of customer'
email:
type: string
example: rtaylor82@gmail.com
description: 'Email address of customer'
addr1:
type: string
example: '4655 Hwy 136 W'
description: 'Address line 1 of customer'
addr2:
type: string
example: ''
description: 'Address line 2 of customer'
addr3:
type: string
example: ''
description: 'Address line 3 of customer'
city:
type: string
example: Dawsonville
description: "Customer's"
state:
type: string
example: GA
description: "Customer's"
zip:
type: string
example: '30534'
description: "Customer's"
country:
type: string
example: USA
description: "Customer's"
400:
description: ''
content:
application/json:
schema:
oneOf:
-
description: ''
type: object
example:
message: 'Validation errors'
properties:
message:
type: string
example: 'Validation errors'
-
description: ''
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: ''
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
-
description: ''
type: object
example:
data:
message: 'Merchant or Affiliate check failed'
properties:
data:
type: object
properties:
message:
type: string
example: 'Merchant or Affiliate check failed'
tags:
- 'Customer management'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
filters:
type: object
description: 'One of the filters is required to select a unique customer'
example: []
properties:
phone:
type: string
description: 'A phone number to filter customers by. Must be in the US format e164.'
example: '+15555555555'
uuid:
type: string
description: 'A UUID to filter customers by. Must comply with UUID format.'
example: 60dac128-28da-41ae-8632-aee299de13fd
email:
type: string
description: 'An email address to filter customers by. Must comply with RFC email format.'
example: example@example.com
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
first_name:
type: string
description: "optional Customer's first name"
example: architecto
nullable: true
last_name:
type: string
description: "optional Customer's last name"
example: architecto
nullable: true
company_name:
type: string
description: 'optional Name of Merchant that customer interacts with'
example: architecto
nullable: true
addr1:
type: string
description: "optional Customer's address line 1"
example: architecto
nullable: true
addr2:
type: string
description: "optional Customer's address line 2"
example: architecto
nullable: true
addr3:
type: string
description: "optional Customer's address line 3"
example: architecto
nullable: true
city:
type: string
description: "optional Customer's city"
example: architecto
nullable: true
state:
type: string
description: "optional Customer's state"
example: architecto
nullable: true
zip:
type: string
description: "optional Customer's zip code"
example: architecto
nullable: true
country:
type: string
description: 'Must not be greater than 3 characters.'
example: 'n'
nullable: true
required:
- sid
required:
- filters
- data
/api/customer/delete:
post:
summary: 'Delete Customer'
operationId: deleteCustomer
description: 'Delete a customer record from the selected Merchant. One of the filters is required to select a unique customer. This will also cancel any recurring payments associated with the customer for your company.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
oneOf:
-
description: ''
type: object
example:
data:
uuid: 66f1c230-68cf-4d58-b47c-1bcb83adfddd
first_name: Ryan
last_name: Taylor
phone: '+17707892072'
email: rtaylor82@gmail.com
addr1: '4655 Hwy 136 W'
addr2: ''
addr3: ''
city: Dawsonville
state: GA
zip: '30534'
country: USA
properties:
data:
type: object
properties:
uuid:
type: string
example: 66f1c230-68cf-4d58-b47c-1bcb83adfddd
first_name:
type: string
example: Ryan
last_name:
type: string
example: Taylor
phone:
type: string
example: '+17707892072'
email:
type: string
example: rtaylor82@gmail.com
addr1:
type: string
example: '4655 Hwy 136 W'
addr2:
type: string
example: ''
addr3:
type: string
example: ''
city:
type: string
example: Dawsonville
state:
type: string
example: GA
zip:
type: string
example: '30534'
country:
type: string
example: USA
-
description: 'Successful Deletion'
type: object
example:
data:
message: 'Customer removed successfully'
properties:
data:
type: object
properties:
message:
type: string
example: 'Customer removed successfully'
description: 'The message returned from the delete operation.'
400:
description: ''
content:
application/json:
schema:
oneOf:
-
description: ''
type: object
example:
message: 'Validation errors'
properties:
message:
type: string
example: 'Validation errors'
-
description: ''
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
description: 'The message returned from the delete operation.'
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: ''
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
description: 'The message returned from the delete operation.'
-
description: ''
type: object
example:
data:
message: 'Merchant or Affiliate check failed'
properties:
data:
type: object
properties:
message:
type: string
example: 'Merchant or Affiliate check failed'
description: 'The message returned from the delete operation.'
tags:
- 'Customer management'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
filters:
type: object
description: ''
example: []
properties:
phone:
type: string
description: 'A phone number to filter customers by. Must be in the US format e164.'
example: '+15555555555'
uuid:
type: string
description: 'A UUID to filter customers by. Must comply with UUID format.'
example: 60dac128-28da-41ae-8632-aee299de13fd
email:
type: string
description: 'An email address to filter customers by. Must comply with RFC email format.'
example: example@example.com
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the merchant.'
example: 12345
required:
- sid
required:
- data
/api/deposit/list:
get:
summary: 'List Deposits'
operationId: listDeposits
description: 'Get Deposits from Merchant Account with supporting transactions'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
transaction_date: '2023-02-15T19:14:44.000000Z'
fund_date: '2023-02-17 00:05:35'
transaction_info_id: '789161791'
transaction_id: '1'
transaction_detail_account: '1005'
authorization_amount: '1.0000'
net_amount: '0.7200'
sweep_id: '125068038'
type: withdraw_funds
-
transaction_date: '2023-02-15T19:14:44.000000Z'
fund_date: '2023-02-17 00:05:35'
transaction_info_id: '789161791'
transaction_id: '1'
transaction_detail_account: '1005'
authorization_amount: '1.0000'
net_amount: '0.7200'
sweep_id: '125068038'
type: withdraw_funds
links:
prev: null
next: null
meta:
path: /
per_page: 15
next_cursor: null
prev_cursor: null
properties:
data:
type: array
example:
-
transaction_date: '2023-02-15T19:14:44.000000Z'
fund_date: '2023-02-17 00:05:35'
transaction_info_id: '789161791'
transaction_id: '1'
transaction_detail_account: '1005'
authorization_amount: '1.0000'
net_amount: '0.7200'
sweep_id: '125068038'
type: withdraw_funds
-
transaction_date: '2023-02-15T19:14:44.000000Z'
fund_date: '2023-02-17 00:05:35'
transaction_info_id: '789161791'
transaction_id: '1'
transaction_detail_account: '1005'
authorization_amount: '1.0000'
net_amount: '0.7200'
sweep_id: '125068038'
type: withdraw_funds
items:
type: object
properties:
transaction_date:
type: string
example: '2023-02-15T19:14:44.000000Z'
description: 'The datetime stamp of when the transaction was initiated.'
fund_date:
type: string
example: '2023-02-17 00:05:35'
description: 'The datetime stamp of when the funds for the deposit were made available to the merchant.'
transaction_info_id:
type: string
example: '789161791'
description: 'The transaction info ID which is unique only against the SID for the merchant and ties across all reporting objects.'
transaction_id:
type: string
example: '1'
description: 'The transaction ID, unique only to the SID for the merchant.'
transaction_detail_account:
type: string
example: '1005'
description: 'The masked first four digits of the routing number and last four digits of the bank account where funds were deposited.'
authorization_amount:
type: string
example: '1.0000'
description: 'The amount the transaction was authorized for.'
net_amount:
type: string
example: '0.7200'
description: 'The amount the merchant will receive from the transaction after transaction fees.'
sweep_id:
type: string
example: '125068038'
description: 'The ID of the sweep the deposit was associated with, which is associated with single transactions and can be used for referencing transactions included in a deposit.'
type:
type: string
example: withdraw_funds
description: "The type of the deposit will be either add_funds or withdraw_funds. The type of add_funds occurs when the escrow account needs to be replenished from the merchant's bank account to provide returns or refunds to the customer. The type of withdraw_funds occurs when money is moved from the escrow account to the merchant's bank account."
links:
type: object
properties:
prev:
type: string
example: null
nullable: true
next:
type: string
example: null
nullable: true
meta:
type: object
properties:
path:
type: string
example: /
per_page:
type: integer
example: 15
next_cursor:
type: string
example: null
nullable: true
prev_cursor:
type: string
example: null
nullable: true
400:
description: 'Malformed Request'
content:
application/json:
schema:
type: object
example:
errors:
filters.start_date:
- 'The filters.start_date field must be a valid date.'
- 'The filters.start_date field must match the format Y-m-d H:i:s.'
properties:
errors:
type: object
properties:
filters.start_date:
type: array
example:
- 'The filters.start_date field must be a valid date.'
- 'The filters.start_date field must match the format Y-m-d H:i:s.'
items:
type: string
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Incorrect API Key Permission'
type: object
example:
message: 'Permission Denied.'
properties:
message:
type: string
example: 'Permission Denied.'
-
description: 'Not associated with Affiliate'
type: object
example:
message: 'Not associated with Affiliate'
properties:
message:
type: string
example: 'Not associated with Affiliate'
-
description: 'Incorrect SID'
type: object
example:
message: 'The selected data.sid is invalid'
properties:
message:
type: string
example: 'The selected data.sid is invalid'
403:
description: Unauthorized
content:
application/json:
schema:
type: object
example:
message: Unauthorized
properties:
message:
type: string
example: Unauthorized
404:
description: 'No deposits found'
content:
application/json:
schema:
type: object
example:
message: 'No deposits found'
properties:
message:
type: string
example: 'No deposits found'
tags:
- 'Deposit management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: string
description: 'The ID of the merchant.'
example: '91828382'
required:
- sid
filters:
type: object
description: ''
example: []
properties:
start_date:
type: string
description: 'The deposit start date, in UTC, with format: "YYYY-mm-dd 00:00:00"'
example: '"2024-04-01 00:00:00"'
end_date:
type: string
description: 'The deposit end date, in UTC, with format: "YYYY-mm-dd 00:00:00"'
example: '"2024-04-01 23:59:59"'
/api/deposit/list-with-trans:
get:
summary: 'List Deposits with Supporting Trans'
operationId: listDepositsWithSupportingTrans
description: 'Get Deposits from Merchant Account with supporting transactions. Could result in large datasets if range is too large.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Successful Transaction'
type: object
example:
data:
sid: XXXXX
count: 1
deposits:
'128298672':
sid: XXXXX
transaction_info_id: '983999999'
transaction_id: '382'
transaction_date: '2024-05-01T04:00:00.000000Z'
fund_date: '2024-05-01 02:20:35'
type: withdraw_funds
countOfTransactions: 3
transTotal: '545.98'
transactions:
-
transaction_type: ACH
transaction_status: ACH_PAYMENT_CREDIT
transaction_status_description: 'Successfully completed ACH Payment that has been posted to the Escrow Account.'
transaction_number: '369'
transaction_date: '2024-04-29T08:30:25.000000Z'
fund_date: '2024-04-30T20:05:21.000000Z'
settle_date: '2024-04-29T17:51:02.000000Z'
amount: '369.0000'
description: ''
status_code: ''
status_text: ''
email: ''
phone: ''
customer_uuid: ''
multi_use_token: ''
pending: false
transaction_info_id: '123123123123'
parent_transaction_info_id: '123123123124'
billing_address:
first_name: null
last_name: null
addr1: null
addr2: null
city: null
state: null
zip: null
-
transaction_type: CC
transaction_status: CC_CREDIT
transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.'
transaction_number: '1919162951'
transaction_date: '2024-04-29T08:37:29.000000Z'
fund_date: '2024-04-30T20:05:22.000000Z'
settle_date: '2024-05-07T11:30:03.000000Z'
amount: '103.0800'
description: ''
status_code: ''
status_text: ''
email: ''
phone: ''
customer_uuid: ''
multi_use_token: ''
pending: false
transaction_info_id: '123123123123'
parent_transaction_info_id: '123123123124'
billing_address:
first_name: null
last_name: null
addr1: null
addr2: null
city: null
state: null
zip: null
-
transaction_type: CC
transaction_status: CC_CREDIT
transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.'
transaction_number: '1920383851'
transaction_date: '2024-04-29T11:52:43.000000Z'
fund_date: '2024-04-30T20:05:22.000000Z'
settle_date: '2024-05-07T11:30:03.000000Z'
amount: '82.5200'
description: ''
status_code: ''
status_text: ''
email: ''
phone: ''
customer_uuid: ''
multi_use_token: ''
pending: false
transaction_info_id: '123123123123'
parent_transaction_info_id: '123123123124'
billing_address:
first_name: null
last_name: null
addr1: null
addr2: null
city: null
state: null
zip: null
properties:
data:
type: object
properties:
sid:
type: string
example: XXXXX
description: "Merchant's sid that was requested."
count:
type: integer
example: 1
description: 'Number of deposits that have left the escrow account on the way to a merchant account.'
deposits:
type: object
properties:
128298672:
type: object
properties:
sid:
type: string
example: XXXXX
transaction_info_id:
type: string
example: '983999999'
transaction_id:
type: string
example: '382'
transaction_date:
type: string
example: '2024-05-01T04:00:00.000000Z'
fund_date:
type: string
example: '2024-05-01 02:20:35'
type:
type: string
example: withdraw_funds
countOfTransactions:
type: integer
example: 3
transTotal:
type: string
example: '545.98'
transactions:
type: array
example:
- { transaction_type: ACH, transaction_status: ACH_PAYMENT_CREDIT, transaction_status_description: 'Successfully completed ACH Payment that has been posted to the Escrow Account.', transaction_number: '369', transaction_date: '2024-04-29T08:30:25.000000Z', fund_date: '2024-04-30T20:05:21.000000Z', settle_date: '2024-04-29T17:51:02.000000Z', amount: '369.0000', description: '', status_code: '', status_text: '', email: '', phone: '', customer_uuid: '', multi_use_token: '', pending: false, transaction_info_id: '123123123123', parent_transaction_info_id: '123123123124', billing_address: { first_name: null, last_name: null, addr1: null, addr2: null, city: null, state: null, zip: null } }
- { transaction_type: CC, transaction_status: CC_CREDIT, transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.', transaction_number: '1919162951', transaction_date: '2024-04-29T08:37:29.000000Z', fund_date: '2024-04-30T20:05:22.000000Z', settle_date: '2024-05-07T11:30:03.000000Z', amount: '103.0800', description: '', status_code: '', status_text: '', email: '', phone: '', customer_uuid: '', multi_use_token: '', pending: false, transaction_info_id: '123123123123', parent_transaction_info_id: '123123123124', billing_address: { first_name: null, last_name: null, addr1: null, addr2: null, city: null, state: null, zip: null } }
- { transaction_type: CC, transaction_status: CC_CREDIT, transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.', transaction_number: '1920383851', transaction_date: '2024-04-29T11:52:43.000000Z', fund_date: '2024-04-30T20:05:22.000000Z', settle_date: '2024-05-07T11:30:03.000000Z', amount: '82.5200', description: '', status_code: '', status_text: '', email: '', phone: '', customer_uuid: '', multi_use_token: '', pending: false, transaction_info_id: '123123123123', parent_transaction_info_id: '123123123124', billing_address: { first_name: null, last_name: null, addr1: null, addr2: null, city: null, state: null, zip: null } }
items:
type: object
properties: { transaction_type: { type: string, example: ACH }, transaction_status: { type: string, example: ACH_PAYMENT_CREDIT }, transaction_status_description: { type: string, example: 'Successfully completed ACH Payment that has been posted to the Escrow Account.' }, transaction_number: { type: string, example: '369' }, transaction_date: { type: string, example: '2024-04-29T08:30:25.000000Z' }, fund_date: { type: string, example: '2024-04-30T20:05:21.000000Z' }, settle_date: { type: string, example: '2024-04-29T17:51:02.000000Z' }, amount: { type: string, example: '369.0000' }, description: { type: string, example: '' }, status_code: { type: string, example: '' }, status_text: { type: string, example: '' }, email: { type: string, example: '' }, phone: { type: string, example: '' }, customer_uuid: { type: string, example: '' }, multi_use_token: { type: string, example: '' }, pending: { type: boolean, example: false }, transaction_info_id: { type: string, example: '123123123123' }, parent_transaction_info_id: { type: string, example: '123123123124' }, billing_address: { type: object, properties: { first_name: { type: string, example: null, nullable: true }, last_name: { type: string, example: null, nullable: true }, addr1: { type: string, example: null, nullable: true }, addr2: { type: string, example: null, nullable: true }, city: { type: string, example: null, nullable: true }, state: { type: string, example: null, nullable: true }, zip: { type: string, example: null, nullable: true } } } }
description: 'containing any deposits matched in the date range.'
-
description: 'Empty Response'
type: object
example: { }
properties: { }
400:
description: 'Field Validation Failed'
content:
application/json:
schema:
type: object
example:
errors:
data.sid:
- 'The data.sid is not the correct format.'
properties:
errors:
type: object
properties:
data.sid:
type: array
example:
- 'The data.sid is not the correct format.'
items:
type: string
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Bad API Key Permission'
type: object
example:
data.message: 'Permission Denied.'
properties:
data.message:
type: string
example: 'Permission Denied.'
-
description: 'No such Merchant'
type: object
example:
data.message: 'No Merchant found with SID provided.'
properties:
data.message:
type: string
example: 'No Merchant found with SID provided.'
-
description: 'User perm issue'
type: object
example:
data.message: 'User not associated with the affiliate.'
properties:
data.message:
type: string
example: 'User not associated with the affiliate.'
-
description: 'Merchant not associated'
type: object
example:
data.message: 'Merchant not associated with affiliate.'
properties:
data.message:
type: string
example: 'Merchant not associated with affiliate.'
tags:
- 'Deposit management'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: string
description: 'Must be unique to the Merchant and less than 150 digits.'
example: '91828382'
required:
- sid
filters:
type: object
description: ''
example: []
properties:
start_date:
type: string
description: 'The start date of the date range.'
example: '2024-05-01 00:00:00'
end_date:
type: string
description: 'The end date of the date range.'
example: '2024-05-01 00:00:00'
required:
- data
/api/deposit/show:
get:
summary: 'Show Deposit with Supporting Trans'
operationId: showDepositWithSupportingTrans
description: 'Show a Deposit from Merchant Account with supporting transactions'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Successful Transaction'
type: object
example:
data:
sid: XXXXX
transaction_info_id: '983999999'
transaction_id: '382'
transaction_date: '2024-05-01T04:00:00.000000Z'
fund_date: '2024-05-01 02:20:35'
type: withdraw_funds
countOfTransactions: 3
transTotal: '545.98'
transactions:
-
transaction_type: ACH
transaction_status: ACH_PAYMENT_CREDIT
transaction_status_description: 'Successfully completed ACH Payment that has been posted to the Escrow Account.'
transaction_number: '369'
transaction_date: '2024-04-29T08:30:25.000000Z'
fund_date: '2024-04-30T20:05:21.000000Z'
settle_date: '2024-04-29T17:51:02.000000Z'
amount: '369.0000'
description: ''
status_code: ''
status_text: ''
email: ''
phone: ''
customer_uuid: ''
multi_use_token: ''
pending: false
transaction_info_id: '123123212312'
parent_transaction_info_id: '123123212314'
billing_address:
first_name: null
last_name: null
addr1: null
addr2: null
city: null
state: null
zip: null
-
transaction_type: CC
transaction_status: CC_CREDIT
transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.'
transaction_number: '1919162951'
transaction_date: '2024-04-29T08:37:29.000000Z'
fund_date: '2024-04-30T20:05:22.000000Z'
settle_date: '2024-05-07T11:30:03.000000Z'
amount: '103.0800'
description: ''
status_code: ''
status_text: ''
email: ''
phone: ''
customer_uuid: ''
multi_use_token: ''
pending: false
transaction_info_id: '123123212312'
parent_transaction_info_id: '123123212314'
billing_address:
first_name: null
last_name: null
addr1: null
addr2: null
city: null
state: null
zip: null
-
transaction_type: CC
transaction_status: CC_CREDIT
transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.'
transaction_number: '1920383851'
transaction_date: '2024-04-29T11:52:43.000000Z'
fund_date: '2024-04-30T20:05:22.000000Z'
settle_date: '2024-05-07T11:30:03.000000Z'
amount: '82.5200'
description: ''
status_code: ''
status_text: ''
email: ''
phone: ''
customer_uuid: ''
multi_use_token: ''
pending: false
transaction_info_id: '123123212314'
billing_address:
first_name: null
last_name: null
addr1: null
addr2: null
city: null
state: null
zip: null
properties:
data:
type: object
properties:
sid:
type: string
example: XXXXX
description: "Merchant's sid that was requested."
transaction_info_id:
type: string
example: '983999999'
description: 'The transaction_info_id of the deposit.'
transaction_id:
type: string
example: '382'
description: 'The transaction_id of the deposit.'
transaction_date:
type: string
example: '2024-05-01T04:00:00.000000Z'
description: 'The date of the deposit.'
fund_date:
type: string
example: '2024-05-01 02:20:35'
description: 'The date of the deposit.'
type:
type: string
example: withdraw_funds
description: "The type of the deposit will be either add_funds or withdraw_funds. The type of add_funds occurs when the escrow account needs to be replenished from the merchant's bank account to provide returns or refunds to the customer. The type of withdraw_funds occurs when money is moved from the escrow account to the merchant's bank account."
countOfTransactions:
type: integer
example: 3
description: 'The number of transactions in the deposit.'
transTotal:
type: string
example: '545.98'
description: 'The total amount sent to the bank.'
transactions:
type: array
example:
-
transaction_type: ACH
transaction_status: ACH_PAYMENT_CREDIT
transaction_status_description: 'Successfully completed ACH Payment that has been posted to the Escrow Account.'
transaction_number: '369'
transaction_date: '2024-04-29T08:30:25.000000Z'
fund_date: '2024-04-30T20:05:21.000000Z'
settle_date: '2024-04-29T17:51:02.000000Z'
amount: '369.0000'
description: ''
status_code: ''
status_text: ''
email: ''
phone: ''
customer_uuid: ''
multi_use_token: ''
pending: false
transaction_info_id: '123123212312'
parent_transaction_info_id: '123123212314'
billing_address:
first_name: null
last_name: null
addr1: null
addr2: null
city: null
state: null
zip: null
-
transaction_type: CC
transaction_status: CC_CREDIT
transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.'
transaction_number: '1919162951'
transaction_date: '2024-04-29T08:37:29.000000Z'
fund_date: '2024-04-30T20:05:22.000000Z'
settle_date: '2024-05-07T11:30:03.000000Z'
amount: '103.0800'
description: ''
status_code: ''
status_text: ''
email: ''
phone: ''
customer_uuid: ''
multi_use_token: ''
pending: false
transaction_info_id: '123123212312'
parent_transaction_info_id: '123123212314'
billing_address:
first_name: null
last_name: null
addr1: null
addr2: null
city: null
state: null
zip: null
-
transaction_type: CC
transaction_status: CC_CREDIT
transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.'
transaction_number: '1920383851'
transaction_date: '2024-04-29T11:52:43.000000Z'
fund_date: '2024-04-30T20:05:22.000000Z'
settle_date: '2024-05-07T11:30:03.000000Z'
amount: '82.5200'
description: ''
status_code: ''
status_text: ''
email: ''
phone: ''
customer_uuid: ''
multi_use_token: ''
pending: false
transaction_info_id: '123123212314'
billing_address:
first_name: null
last_name: null
addr1: null
addr2: null
city: null
state: null
zip: null
description: 'containing any transactions supporting the deposit.'
items:
type: object
properties:
transaction_type:
type: string
example: ACH
description: 'The type of transaction. Request a listing from developer support if unaware of options.'
transaction_status:
type: string
example: ACH_PAYMENT_CREDIT
description: 'The status of the transaction. Request a listing from developer support if unaware of options.'
transaction_status_description:
type: string
example: 'Successfully completed ACH Payment that has been posted to the Escrow Account.'
description: 'The description of the transaction status..'
transaction_number:
type: string
example: '369'
description: 'The transaction number.'
transaction_date:
type: string
example: '2024-04-29T08:30:25.000000Z'
description: 'The date of the transaction.'
fund_date:
type: string
example: '2024-04-30T20:05:21.000000Z'
description: 'The date of the transaction.'
settle_date:
type: string
example: '2024-04-29T17:51:02.000000Z'
description: 'The date of the transaction.'
amount:
type: string
example: '369.0000'
description: 'The gross amount of the transaction.'
description:
type: string
example: ''
description: 'The description of the transaction.'
status_code:
type: string
example: ''
description: 'The status code of the transaction.'
status_text:
type: string
example: ''
description: 'The status text of the transaction.'
email:
type: string
example: ''
description: 'The email of the transaction.'
phone:
type: string
example: ''
description: 'The phone of the transaction.'
customer_uuid:
type: string
example: ''
description: 'The customer uuid of the transaction.'
multi_use_token:
type: string
example: ''
description: 'The multi use token of the transaction.'
pending:
type: boolean
example: false
description: 'The pending status of the transaction.'
transaction_info_id:
type: string
example: '123123212312'
description: "The transaction's info id that can be used in requests to other API endpoints to look up a specific transaction."
parent_transaction_info_id:
type: string
example: '123123212314'
description: "The transaction's info id that can be used in requests to other API endpoints to look up a specific transaction."
billing_address:
type: object
properties:
first_name:
type: string
example: null
description: 'The first name of the billing address.'
last_name:
type: string
example: null
description: 'The last name of the billing address.'
addr1:
type: string
example: null
description: 'The address 1 of the billing address.'
addr2:
type: string
example: null
description: 'The address 2 of the billing address.'
city:
type: string
example: null
description: 'The city of the billing address.'
state:
type: string
example: null
description: 'The state of the billing address.'
zip:
type: string
example: null
description: 'The zip of the billing address.'
-
description: 'Empty Response'
type: object
example: { }
properties: { }
400:
description: 'Field Validation Failed'
content:
application/json:
schema:
type: object
example:
errors:
data.sid:
- 'The data.sid is not the correct format.'
properties:
errors:
type: object
properties:
data.sid:
type: array
example:
- 'The data.sid is not the correct format.'
items:
type: string
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Bad API Key Permission'
type: object
example:
data.message: 'Permission Denied.'
properties:
data.message:
type: string
example: 'Permission Denied.'
-
description: 'No such Merchant'
type: object
example:
data.message: 'No Merchant found with SID provided.'
properties:
data.message:
type: string
example: 'No Merchant found with SID provided.'
-
description: 'User perm issue'
type: object
example:
data.message: 'User not associated with the affiliate.'
properties:
data.message:
type: string
example: 'User not associated with the affiliate.'
-
description: 'Merchant not associated'
type: object
example:
data.message: 'Merchant not associated with affiliate.'
properties:
data.message:
type: string
example: 'Merchant not associated with affiliate.'
tags:
- 'Deposit management'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: number
description: 'The sid of an existing record in the companies table.'
example: 4326.41688
transaction_info_id:
type: string
description: 'Required if not passing sweep_id. Must be unique to the Merchant and less than 150 digits.'
example: '91828382'
sweep_id:
type: string
description: 'Required if not passing transaction_info_id. Must be in format: "YYYY-mm-dd 00:00:00"'
example: '"2024-04-01 00:00:00"'
required:
- sid
- transaction_info_id
required:
- data
/api/invoices:
get:
summary: 'List Invoices'
operationId: listInvoices
description: "Retrieves a paginated (cursor) list of invoices for a Merchant, optionally\nfiltered by status."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: null
invoice_number: INV-45117
status: draft
customer_name: 'Mr. Gerhard Dach Jr.'
customer_email: lafayette.considine@example.com
total: 0
amount_paid: 0
balance: 0
cover_fee_required: false
issue_date: '2026-08-02'
due_date: '2026-08-17'
is_overdue: false
public_url: 'http://app.dimepayments.com/invoice/b2So1i5izX9IZdfrDJ4ntbeSZ064w8gbMws1wDyr'
-
id: null
invoice_number: INV-67996
status: draft
customer_name: 'Dr. Mona Lemke'
customer_email: rosario67@example.net
total: 0
amount_paid: 0
balance: 0
cover_fee_required: false
issue_date: '2026-08-01'
due_date: '2026-08-16'
is_overdue: false
public_url: 'http://app.dimepayments.com/invoice/oP5bLFpz2Kcv4h8YEs1Kuw76bL07KKqWXH3XSmyk'
links:
prev: null
next: null
meta:
path: /
per_page: 500
next_cursor: null
prev_cursor: null
properties:
data:
type: array
example:
-
id: null
invoice_number: INV-45117
status: draft
customer_name: 'Mr. Gerhard Dach Jr.'
customer_email: lafayette.considine@example.com
total: 0
amount_paid: 0
balance: 0
cover_fee_required: false
issue_date: '2026-08-02'
due_date: '2026-08-17'
is_overdue: false
public_url: 'http://app.dimepayments.com/invoice/b2So1i5izX9IZdfrDJ4ntbeSZ064w8gbMws1wDyr'
-
id: null
invoice_number: INV-67996
status: draft
customer_name: 'Dr. Mona Lemke'
customer_email: rosario67@example.net
total: 0
amount_paid: 0
balance: 0
cover_fee_required: false
issue_date: '2026-08-01'
due_date: '2026-08-16'
is_overdue: false
public_url: 'http://app.dimepayments.com/invoice/oP5bLFpz2Kcv4h8YEs1Kuw76bL07KKqWXH3XSmyk'
items:
type: object
properties:
id:
type: string
example: null
description: 'The internal id of the invoice. Example: 42'
invoice_number:
type: string
example: INV-45117
description: 'The human-readable invoice number. Example: INV-0007'
status:
type: string
example: draft
description: 'The invoice status. Example: sent'
customer_name:
type: string
example: 'Mr. Gerhard Dach Jr.'
description: 'The customer name snapshot. Example: Jane Doe'
customer_email:
type: string
example: lafayette.considine@example.com
description: 'The customer email snapshot. Example: jane@example.com'
total:
type: integer
example: 0
description: 'The invoice total in dollars. Example: 250.00'
amount_paid:
type: integer
example: 0
description: 'The amount paid in dollars. Example: 0'
balance:
type: integer
example: 0
description: 'The outstanding balance in dollars. Example: 250.00'
cover_fee_required:
type: boolean
example: false
issue_date:
type: string
example: '2026-08-02'
description: 'The issue date (Y-m-d). Example: 2026-07-01'
due_date:
type: string
example: '2026-08-17'
description: 'The due date (Y-m-d). Example: 2026-07-16'
is_overdue:
type: boolean
example: false
description: 'Whether the invoice is past due with a balance. Example: false'
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/b2So1i5izX9IZdfrDJ4ntbeSZ064w8gbMws1wDyr'
description: 'The public pay link. Example: https://example.test/invoice/abcd'
links:
type: object
properties:
prev:
type: string
example: null
nullable: true
next:
type: string
example: null
nullable: true
meta:
type: object
properties:
path:
type: string
example: /
per_page:
type: integer
example: 500
next_cursor:
type: string
example: null
nullable: true
prev_cursor:
type: string
example: null
nullable: true
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
filters.status:
- 'The selected filters.status is invalid.'
properties:
errors:
type: object
properties:
filters.status:
type: array
example:
- 'The selected filters.status is invalid.'
items:
type: string
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: 'Invalid sid'
content:
application/json:
schema:
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
required:
- sid
filters:
type: object
description: ''
example: []
properties:
status:
type: string
description: 'A status to filter by. One of: draft, sent, viewed, partially_paid, paid, void, refunded, overdue, all. Omit for all.'
example: sent
/api/invoice:
get:
summary: 'Show Invoice'
operationId: showInvoice
description: 'Retrieves a single invoice with its line items, payments, and event history.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
token: wfoRK8iyXYDUOYq8eeau1BeNWyGayrcJGUHrU6Og
invoice_number: INV-92439
status: draft
payment_terms: net_15
issue_date: '2026-08-08'
due_date: '2026-08-23'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
cover_fee_required: false
cover_fee_quote: null
thank_you_note: 'Ipsum nostrum omnis autem et consequatur aut dolores enim.'
public_url: 'http://app.dimepayments.com/invoice/wfoRK8iyXYDUOYq8eeau1BeNWyGayrcJGUHrU6Og'
customer:
id: 15770
name: 'Domingo Leuschke'
email: jleffler@example.com
items: []
payments: []
events: []
properties:
data:
type: object
properties:
id:
type: string
example: null
description: 'The internal id of the invoice. Example: 42'
token:
type: string
example: wfoRK8iyXYDUOYq8eeau1BeNWyGayrcJGUHrU6Og
description: 'The public token. Example: r8s...'
invoice_number:
type: string
example: INV-92439
description: 'The invoice number. Example: INV-0007'
status:
type: string
example: draft
description: 'The invoice status. Example: sent'
payment_terms:
type: string
example: net_15
description: 'The payment terms. Example: net_15'
issue_date:
type: string
example: '2026-08-08'
description: 'The issue date (Y-m-d). Example: 2026-07-01'
due_date:
type: string
example: '2026-08-23'
description: 'The due date (Y-m-d). Example: 2026-07-16'
is_overdue:
type: boolean
example: false
description: 'Whether the invoice is past due with a balance. Example: false'
subtotal:
type: integer
example: 0
description: 'The subtotal in dollars. Example: 250.00'
total:
type: integer
example: 0
description: 'The total in dollars. Example: 250.00'
amount_paid:
type: integer
example: 0
description: 'The amount paid in dollars. Example: 0'
balance:
type: integer
example: 0
description: 'The outstanding balance in dollars. Example: 250.00'
allow_partial_payment:
type: boolean
example: true
description: 'Whether partial payments are allowed. Example: false'
cover_fee_required:
type: boolean
example: false
description: 'Whether the customer must cover the processing fee. When true the fee is added on top of the amount being paid, so the card/bank is charged more than `total`. Example: false'
cover_fee_quote:
type: string
example: null
description: 'The fee quoted against the current balance, per payment method (`base`, `cc.fee`, `cc.total`, `ach.fee`, `ach.total`), or null when no fee is required. Card and ACH rates differ, so the charged total depends on how the customer pays.'
thank_you_note:
type: string
example: 'Ipsum nostrum omnis autem et consequatur aut dolores enim.'
description: 'An optional note shown on the invoice. Example: Thanks for your business!'
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/wfoRK8iyXYDUOYq8eeau1BeNWyGayrcJGUHrU6Og'
description: 'The public pay link. Example: https://example.test/invoice/abcd'
customer:
type: object
properties:
id:
type: integer
example: 15770
name:
type: string
example: 'Domingo Leuschke'
email:
type: string
example: jleffler@example.com
description: 'The linked/snapshot customer (id, name, email).'
items:
type: array
example: []
description: 'The line items (id, item_id, name, description, quantity, unit_price, amount).'
payments:
type: array
example: []
description: 'Recorded payments (amount, cover_fee, paid_at, method, transaction_id). `amount` is credited to the invoice; `cover_fee` was charged on top of it.'
events:
type: array
example: []
description: 'The invoice event/activity log (type, label, description, created_at).'
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Invoice not found'
type: object
example:
data:
message: 'Invoice not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Invoice not found'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
invoice_id:
type: integer
description: 'The id of the invoice.'
example: 42
required:
- sid
- invoice_id
/api/invoice/create:
post:
summary: 'Create Invoice'
operationId: createInvoice
description: "Creates a draft invoice with its line items. Every line must reference an\nitem (fund/designation) that belongs to the Merchant; the line name and\nunit price are snapshotted onto the invoice. The invoice number may be\nsupplied, otherwise the next number is allocated automatically."
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
token: BRGVmgZ1XkFaKY88Sgjubz3Ckk8P8GpGTdUTW3m7
invoice_number: INV-26855
status: draft
payment_terms: net_15
issue_date: '2026-07-14'
due_date: '2026-07-29'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
cover_fee_required: false
cover_fee_quote: null
thank_you_note: 'Sunt nihil accusantium harum mollitia.'
public_url: 'http://app.dimepayments.com/invoice/BRGVmgZ1XkFaKY88Sgjubz3Ckk8P8GpGTdUTW3m7'
customer:
id: 15771
name: 'Vesta Schuster PhD'
email: breitenberg.gilbert@example.com
items: []
payments: []
events: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
token:
type: string
example: BRGVmgZ1XkFaKY88Sgjubz3Ckk8P8GpGTdUTW3m7
invoice_number:
type: string
example: INV-26855
status:
type: string
example: draft
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-07-14'
due_date:
type: string
example: '2026-07-29'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 0
total:
type: integer
example: 0
amount_paid:
type: integer
example: 0
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: true
cover_fee_required:
type: boolean
example: false
cover_fee_quote:
type: string
example: null
nullable: true
thank_you_note:
type: string
example: 'Sunt nihil accusantium harum mollitia.'
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/BRGVmgZ1XkFaKY88Sgjubz3Ckk8P8GpGTdUTW3m7'
customer:
type: object
properties:
id:
type: integer
example: 15771
name:
type: string
example: 'Vesta Schuster PhD'
email:
type: string
example: breitenberg.gilbert@example.com
items:
type: array
example: []
payments:
type: array
example: []
events:
type: array
example: []
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
data.lines:
- 'The data.lines field is required.'
properties:
errors:
type: object
properties:
data.lines:
type: array
example:
- 'The data.lines field is required.'
items:
type: string
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: 'Invalid sid'
content:
application/json:
schema:
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
invoice_number:
type: string
description: 'An optional custom invoice number (unique per Merchant).'
example: INV-0007
customer_uuid:
type: string
description: 'The uuid of an existing customer belonging to the Merchant. Preferred over data.customer_id; supply exactly one.'
example: 9f2a6c14-3e8b-4d21-9a77-5c1e0b8f4d33
customer_id:
type: integer
description: 'An existing customer id belonging to the Merchant to link. Required unless data.customer_uuid is supplied.'
example: 88
customer_name:
type: string
description: 'The customer name to show on the invoice.'
example: 'Jane Doe'
customer_email:
type: string
description: 'The customer email the invoice is addressed to.'
example: jane@example.com
payment_terms:
type: string
description: 'One of: due_on_receipt, net_15, net_30, net_60.'
example: net_15
issue_date:
type: string
description: 'The issue date (Y-m-d); defaults to today.'
example: '2026-07-01'
thank_you_note:
type: string
description: 'An optional note shown on the invoice.'
example: 'Thanks for your business!'
allow_partial_payment:
type: boolean
description: 'Whether partial payments are allowed.'
example: true
cover_fee_required:
type: boolean
description: "Require the customer to cover the processing fee. The fee is added on top of the invoice total at payment time (card and ACH rates differ), so it is not part of `total` and does not appear as a line item. Defaults to the Merchant's invoice setting."
example: true
reminder_settings:
type: object
description: 'Optional per-invoice reminder toggles.'
example:
before_due: true
properties: { }
lines:
type: array
description: 'The line items (at least one).'
example:
- []
items:
type: object
properties:
item_id:
type: integer
description: 'The Merchant item id this line is sourced from.'
example: 5
name:
type: string
description: 'The line name.'
example: Consulting
description:
type: string
description: 'An optional line description.'
example: '2 hours'
quantity:
type: number
description: 'The quantity.'
example: 2.0
unit_price:
type: number
description: 'The unit price in dollars.'
example: 125.0
required:
- item_id
- name
- quantity
- unit_price
required:
- sid
- customer_name
- customer_email
- payment_terms
- lines
/api/invoice/update:
patch:
summary: 'Update Invoice'
operationId: updateInvoice
description: "Updates a draft invoice. Only draft invoices can be edited — once sent, an\ninvoice is locked. Passing `data.lines` replaces the existing line items."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
token: 53UWap9b3uDf5vCviaLdplnk3EJKPjlPSMnCrjMf
invoice_number: INV-23164
status: draft
payment_terms: net_15
issue_date: '2026-07-14'
due_date: '2026-07-29'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
cover_fee_required: false
cover_fee_quote: null
thank_you_note: 'Nihil accusantium harum mollitia modi deserunt.'
public_url: 'http://app.dimepayments.com/invoice/53UWap9b3uDf5vCviaLdplnk3EJKPjlPSMnCrjMf'
customer:
id: 15772
name: 'Shaina Cormier'
email: gilbert32@example.com
items: []
payments: []
events: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
token:
type: string
example: 53UWap9b3uDf5vCviaLdplnk3EJKPjlPSMnCrjMf
invoice_number:
type: string
example: INV-23164
status:
type: string
example: draft
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-07-14'
due_date:
type: string
example: '2026-07-29'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 0
total:
type: integer
example: 0
amount_paid:
type: integer
example: 0
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: true
cover_fee_required:
type: boolean
example: false
cover_fee_quote:
type: string
example: null
nullable: true
thank_you_note:
type: string
example: 'Nihil accusantium harum mollitia modi deserunt.'
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/53UWap9b3uDf5vCviaLdplnk3EJKPjlPSMnCrjMf'
customer:
type: object
properties:
id:
type: integer
example: 15772
name:
type: string
example: 'Shaina Cormier'
email:
type: string
example: gilbert32@example.com
items:
type: array
example: []
payments:
type: array
example: []
events:
type: array
example: []
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
data.customer_email:
- 'The data.customer email field is required.'
properties:
errors:
type: object
properties:
data.customer_email:
type: array
example:
- 'The data.customer email field is required.'
items:
type: string
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Invoice not found'
type: object
example:
data:
message: 'Invoice not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Invoice not found'
422:
description: 'Invoice locked'
content:
application/json:
schema:
type: object
example:
data:
message: 'Only draft invoices can be edited.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Only draft invoices can be edited.'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
invoice_id:
type: integer
description: 'The id of the draft invoice to update.'
example: 42
invoice_number:
type: string
description: 'An optional custom invoice number (unique per Merchant).'
example: INV-0007
customer_uuid:
type: string
description: 'The uuid of an existing customer belonging to the Merchant. Preferred over data.customer_id; supply exactly one.'
example: 9f2a6c14-3e8b-4d21-9a77-5c1e0b8f4d33
customer_id:
type: integer
description: 'An existing customer id belonging to the Merchant to link. Required unless data.customer_uuid is supplied.'
example: 88
customer_name:
type: string
description: 'The customer name.'
example: 'Jane Doe'
customer_email:
type: string
description: 'The customer email.'
example: jane@example.com
payment_terms:
type: string
description: 'One of: due_on_receipt, net_15, net_30, net_60.'
example: net_15
issue_date:
type: string
description: 'The issue date (Y-m-d).'
example: '2026-07-01'
thank_you_note:
type: string
description: 'An optional note.'
example: Thanks!
allow_partial_payment:
type: boolean
description: 'Whether partial payments are allowed.'
example: true
cover_fee_required:
type: boolean
description: 'Require the customer to cover the processing fee. Omitting it clears the flag, like the other optional invoice fields on this endpoint.'
example: true
reminder_settings:
type: object
description: 'Optional per-invoice reminder toggles.'
example:
before_due: true
properties: { }
lines:
type: array
description: 'The replacement line items (at least one).'
example:
- []
items:
type: object
properties:
item_id:
type: integer
description: 'The Merchant item id.'
example: 5
name:
type: string
description: 'The line name.'
example: Consulting
description:
type: string
description: 'An optional line description.'
example: '2 hours'
quantity:
type: number
description: 'The quantity.'
example: 2.0
unit_price:
type: number
description: 'The unit price in dollars.'
example: 125.0
required:
- item_id
- name
- quantity
- unit_price
required:
- sid
- invoice_id
- customer_name
- customer_email
- payment_terms
- lines
/api/invoice/delete:
post:
summary: 'Delete Invoice'
operationId: deleteInvoice
description: 'Soft-deletes a draft invoice. Only draft invoices can be deleted.'
parameters: []
responses:
200:
description: Deleted
content:
application/json:
schema:
type: object
example:
data:
message: 'Draft invoice deleted.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Draft invoice deleted.'
description: 'The result message. Example: Draft invoice deleted.'
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
description: 'The result message. Example: Draft invoice deleted.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
description: 'The result message. Example: Draft invoice deleted.'
-
description: 'Invoice not found'
type: object
example:
data:
message: 'Invoice not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Invoice not found'
description: 'The result message. Example: Draft invoice deleted.'
422:
description: 'Invoice locked'
content:
application/json:
schema:
type: object
example:
data:
message: 'Only draft invoices can be deleted.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Only draft invoices can be deleted.'
description: 'The result message. Example: Draft invoice deleted.'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
invoice_id:
type: integer
description: 'The id of the draft invoice.'
example: 42
required:
- sid
- invoice_id
/api/invoice/send:
post:
summary: 'Send Invoice'
operationId: sendInvoice
description: "Emails the invoice to the customer with a link to the public pay page and\nadvances the invoice to Sent. A paid, void, or refunded invoice cannot be\nsent."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
token: 9UqnbAWRfXkGIs2DsHdlgXwDMid0EJLhG7Tlduyg
invoice_number: INV-47352
status: draft
payment_terms: net_15
issue_date: '2026-08-08'
due_date: '2026-08-23'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
cover_fee_required: false
cover_fee_quote: null
thank_you_note: 'Nostrum omnis autem et consequatur aut.'
public_url: 'http://app.dimepayments.com/invoice/9UqnbAWRfXkGIs2DsHdlgXwDMid0EJLhG7Tlduyg'
customer:
id: 15773
name: 'Henri Mitchell'
email: tleuschke@example.net
items: []
payments: []
events: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
token:
type: string
example: 9UqnbAWRfXkGIs2DsHdlgXwDMid0EJLhG7Tlduyg
invoice_number:
type: string
example: INV-47352
status:
type: string
example: draft
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-08-08'
due_date:
type: string
example: '2026-08-23'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 0
total:
type: integer
example: 0
amount_paid:
type: integer
example: 0
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: true
cover_fee_required:
type: boolean
example: false
cover_fee_quote:
type: string
example: null
nullable: true
thank_you_note:
type: string
example: 'Nostrum omnis autem et consequatur aut.'
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/9UqnbAWRfXkGIs2DsHdlgXwDMid0EJLhG7Tlduyg'
customer:
type: object
properties:
id:
type: integer
example: 15773
name:
type: string
example: 'Henri Mitchell'
email:
type: string
example: tleuschke@example.net
items:
type: array
example: []
payments:
type: array
example: []
events:
type: array
example: []
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Invoice not found'
type: object
example:
data:
message: 'Invoice not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Invoice not found'
422:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'No email'
type: object
example:
data:
message: 'Invoice has no customer email to send to.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Invoice has no customer email to send to.'
-
description: Terminal
type: object
example:
data:
message: 'A paid, void, or refunded invoice cannot be sent.'
properties:
data:
type: object
properties:
message:
type: string
example: 'A paid, void, or refunded invoice cannot be sent.'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
invoice_id:
type: integer
description: 'The id of the invoice to send.'
example: 42
required:
- sid
- invoice_id
/api/invoice/mark-sent:
post:
summary: 'Mark Invoice Sent'
operationId: markInvoiceSent
description: "Activates a draft invoice for payment WITHOUT emailing it — for Merchants\nwho share the public link themselves. Advances Draft to Sent so the pay\nlink becomes live."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
token: dndLiqkIiBvcjM1pDkifMMwxPml5bh8SjVlrCYmp
invoice_number: INV-40640
status: draft
payment_terms: net_15
issue_date: '2026-08-08'
due_date: '2026-08-23'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
cover_fee_required: false
cover_fee_quote: null
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/dndLiqkIiBvcjM1pDkifMMwxPml5bh8SjVlrCYmp'
customer:
id: 15774
name: 'Oswald Koch'
email: bailee15@example.org
items: []
payments: []
events: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
token:
type: string
example: dndLiqkIiBvcjM1pDkifMMwxPml5bh8SjVlrCYmp
invoice_number:
type: string
example: INV-40640
status:
type: string
example: draft
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-08-08'
due_date:
type: string
example: '2026-08-23'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 0
total:
type: integer
example: 0
amount_paid:
type: integer
example: 0
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: true
cover_fee_required:
type: boolean
example: false
cover_fee_quote:
type: string
example: null
nullable: true
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/dndLiqkIiBvcjM1pDkifMMwxPml5bh8SjVlrCYmp'
customer:
type: object
properties:
id:
type: integer
example: 15774
name:
type: string
example: 'Oswald Koch'
email:
type: string
example: bailee15@example.org
items:
type: array
example: []
payments:
type: array
example: []
events:
type: array
example: []
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Invoice not found'
type: object
example:
data:
message: 'Invoice not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Invoice not found'
422:
description: 'Already sent'
content:
application/json:
schema:
type: object
example:
data:
message: 'This invoice has already been sent.'
properties:
data:
type: object
properties:
message:
type: string
example: 'This invoice has already been sent.'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
invoice_id:
type: integer
description: 'The id of the draft invoice.'
example: 42
required:
- sid
- invoice_id
/api/invoice/void:
patch:
summary: 'Void Invoice'
operationId: voidInvoice
description: "Voids an invoice. Voiding is terminal — the invoice can no longer be paid.\nAn already void or refunded invoice cannot be voided again."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
token: ICxcBALkIGLnahYefX3wPnG9D0B2YcOSEVdEnMBR
invoice_number: INV-35644
status: draft
payment_terms: net_15
issue_date: '2026-08-08'
due_date: '2026-08-23'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
cover_fee_required: false
cover_fee_quote: null
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/ICxcBALkIGLnahYefX3wPnG9D0B2YcOSEVdEnMBR'
customer:
id: 15775
name: 'Mr. Carey Smitham'
email: sleffler@example.org
items: []
payments: []
events: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
token:
type: string
example: ICxcBALkIGLnahYefX3wPnG9D0B2YcOSEVdEnMBR
invoice_number:
type: string
example: INV-35644
status:
type: string
example: draft
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-08-08'
due_date:
type: string
example: '2026-08-23'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 0
total:
type: integer
example: 0
amount_paid:
type: integer
example: 0
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: true
cover_fee_required:
type: boolean
example: false
cover_fee_quote:
type: string
example: null
nullable: true
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/ICxcBALkIGLnahYefX3wPnG9D0B2YcOSEVdEnMBR'
customer:
type: object
properties:
id:
type: integer
example: 15775
name:
type: string
example: 'Mr. Carey Smitham'
email:
type: string
example: sleffler@example.org
items:
type: array
example: []
payments:
type: array
example: []
events:
type: array
example: []
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Invoice not found'
type: object
example:
data:
message: 'Invoice not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Invoice not found'
422:
description: Terminal
content:
application/json:
schema:
type: object
example:
data:
message: 'This invoice is already void or refunded.'
properties:
data:
type: object
properties:
message:
type: string
example: 'This invoice is already void or refunded.'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
invoice_id:
type: integer
description: 'The id of the invoice to void.'
example: 42
required:
- sid
- invoice_id
/api/invoice/duplicate:
post:
summary: 'Duplicate Invoice'
operationId: duplicateInvoice
description: "Clones any invoice into a new draft (copying its line items) with a freshly\nallocated invoice number."
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
token: 7ph4VPMMQUX0cvunq53BveOJ44nENL9GqpXIT1QK
invoice_number: INV-8317
status: draft
payment_terms: net_15
issue_date: '2026-08-08'
due_date: '2026-08-23'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
cover_fee_required: false
cover_fee_quote: null
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/7ph4VPMMQUX0cvunq53BveOJ44nENL9GqpXIT1QK'
customer:
id: 15776
name: 'Carey Smitham'
email: sleffler@example.org
items: []
payments: []
events: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
token:
type: string
example: 7ph4VPMMQUX0cvunq53BveOJ44nENL9GqpXIT1QK
invoice_number:
type: string
example: INV-8317
status:
type: string
example: draft
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-08-08'
due_date:
type: string
example: '2026-08-23'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 0
total:
type: integer
example: 0
amount_paid:
type: integer
example: 0
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: true
cover_fee_required:
type: boolean
example: false
cover_fee_quote:
type: string
example: null
nullable: true
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/7ph4VPMMQUX0cvunq53BveOJ44nENL9GqpXIT1QK'
customer:
type: object
properties:
id:
type: integer
example: 15776
name:
type: string
example: 'Carey Smitham'
email:
type: string
example: sleffler@example.org
items:
type: array
example: []
payments:
type: array
example: []
events:
type: array
example: []
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Invoice not found'
type: object
example:
data:
message: 'Invoice not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Invoice not found'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
invoice_id:
type: integer
description: 'The id of the invoice to duplicate.'
example: 42
required:
- sid
- invoice_id
/api/invoice/pay:
post:
summary: 'Pay Invoice'
operationId: payInvoice
description: "Records a merchant-initiated (MOTO) payment against an open invoice, charging\na credit card (raw card or a stored token) or a bank account (ACH) through\nProPay. Mirrors the card/ACH charge endpoints but targets the invoice: the\namount is the invoice balance (or a partial amount when the invoice allows\nit), and on approval the invoice status/payment history/per-line\nclassification are updated exactly as a customer payment.\n\nWhen the invoice has `cover_fee_required`, the processing fee for the method\nbeing charged is added on top of `data.amount` — so the card or bank account\nis charged more than the amount credited to the invoice. The invoice is\ncredited `data.amount`; the fee appears as `cover_fee` on the resulting entry\nin the response's `payments` array. Card and ACH rates differ, so the same\n`data.amount` produces a different charge per `data.payment_type`. Read\n`cover_fee_quote` from the invoice beforehand to know the totals in advance.\n\nThe invoice must be open (Sent/Viewed/Partially Paid) with a balance due on\nan active ProPay merchant. A declined card is NOT recorded as a payment."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
token: lADdiOFLOhl1p7fXaCiDHSxhNN5fV9v1q2J60XD1
invoice_number: INV-98251
status: draft
payment_terms: net_15
issue_date: '2026-08-08'
due_date: '2026-08-23'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
cover_fee_required: false
cover_fee_quote: null
thank_you_note: 'Consequatur aut dolores enim non facere tempora.'
public_url: 'http://app.dimepayments.com/invoice/lADdiOFLOhl1p7fXaCiDHSxhNN5fV9v1q2J60XD1'
customer:
id: 15777
name: 'Vesta Glover'
email: schultz.audrey@example.org
items: []
payments: []
events: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
token:
type: string
example: lADdiOFLOhl1p7fXaCiDHSxhNN5fV9v1q2J60XD1
invoice_number:
type: string
example: INV-98251
status:
type: string
example: draft
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-08-08'
due_date:
type: string
example: '2026-08-23'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 0
total:
type: integer
example: 0
amount_paid:
type: integer
example: 0
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: true
cover_fee_required:
type: boolean
example: false
cover_fee_quote:
type: string
example: null
nullable: true
thank_you_note:
type: string
example: 'Consequatur aut dolores enim non facere tempora.'
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/lADdiOFLOhl1p7fXaCiDHSxhNN5fV9v1q2J60XD1'
customer:
type: object
properties:
id:
type: integer
example: 15777
name:
type: string
example: 'Vesta Glover'
email:
type: string
example: schultz.audrey@example.org
items:
type: array
example: []
payments:
type: array
example: []
events:
type: array
example: []
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
data.card_number:
- 'The data.card number field is required when data.token is not present.'
properties:
errors:
type: object
properties:
data.card_number:
type: array
example:
- 'The data.card number field is required when data.token is not present.'
items:
type: string
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Invoice not found'
type: object
example:
data:
message: 'Invoice not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Invoice not found'
422:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Not payable'
type: object
example:
data:
message: 'This invoice cannot be paid (it must be an open invoice with a balance due on an active ProPay merchant).'
properties:
data:
type: object
properties:
message:
type: string
example: 'This invoice cannot be paid (it must be an open invoice with a balance due on an active ProPay merchant).'
-
description: 'Method not accepted'
type: object
example:
data:
message: 'This payment method is not accepted by the merchant.'
properties:
data:
type: object
properties:
message:
type: string
example: 'This payment method is not accepted by the merchant.'
-
description: 'Already processing'
type: object
example:
data:
message: 'A payment for this invoice is already being processed. Please try again in a moment.'
properties:
data:
type: object
properties:
message:
type: string
example: 'A payment for this invoice is already being processed. Please try again in a moment.'
-
description: 'Amount exceeds balance'
type: object
example:
data:
message: 'The payment amount exceeds the $50.00 balance now due.'
properties:
data:
type: object
properties:
message:
type: string
example: 'The payment amount exceeds the $50.00 balance now due.'
-
description: Declined
type: object
example:
data:
message: 'The card was declined.'
code: '51'
properties:
data:
type: object
properties:
message:
type: string
example: 'The card was declined.'
code:
type: string
example: '51'
500:
description: 'Captured but not recorded'
content:
application/json:
schema:
type: object
example:
data:
message: 'The payment was captured but could not be recorded. Do not retry — please contact support to reconcile this invoice.'
properties:
data:
type: object
properties:
message:
type: string
example: 'The payment was captured but could not be recorded. Do not retry — please contact support to reconcile this invoice.'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
invoice_id:
type: integer
description: 'The id of the open invoice to pay.'
example: 42
payment_type:
type: string
description: 'The method to charge. One of: cc, ach.'
example: cc
amount:
type: number
description: 'A partial amount to pay (only when the invoice allows partial payments); defaults to the full balance.'
example: 100.0
memo:
type: string
description: 'An optional memo for the transaction.'
example: 'Phone payment'
token:
type: string
description: '(cc) A stored ProPay card token to charge instead of raw card details.'
example: abc123
cardholder_name:
type: string
description: '(cc, required without data.token) The name on the card.'
example: 'Jane Doe'
card_number:
type: string
description: '(cc, required without data.token) The card number (15-16 digits).'
example: '4111111111111111'
expiration_date:
type: string
description: '(cc, required without data.token) The expiration in m/Y.'
example: 01/2028
cvv:
type: string
description: '(cc) The card CVV (3-4 digits).'
example: '123'
account_number:
type: string
description: '(ach, required) The bank account number.'
example: '91828382'
routing_number:
type: string
description: '(ach, required) The 9-digit routing number.'
example: '123456789'
account_type:
type: string
description: '(ach, required) Checking or Savings.'
example: Checking
account_name:
type: string
description: '(ach, required) The name on the bank account.'
example: 'Jane Doe'
billing_address:
type: object
description: ''
example:
first_name: Jane
properties:
first_name:
type: string
description: 'Billing first name.'
example: Jane
last_name:
type: string
description: 'Billing last name.'
example: Doe
addr1:
type: string
description: 'Billing address line 1.'
example: '123 Main St'
addr2:
type: string
description: 'Billing address line 2.'
example: 'Suite 2'
city:
type: string
description: 'Billing city.'
example: Alpharetta
state:
type: string
description: 'Billing state (2 letters).'
example: GA
zip:
type: string
description: 'Billing ZIP (5 digits).'
example: '30004'
required:
- sid
- invoice_id
- payment_type
/api/invoice/link:
get:
summary: 'Get Invoice Link'
operationId: getInvoiceLink
description: 'Returns the public pay link (and token) for an invoice.'
parameters: []
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
data:
public_url: 'https://example.test/invoice/abcd'
token: abcd
properties:
data:
type: object
properties:
public_url:
type: string
example: 'https://example.test/invoice/abcd'
description: 'The public pay link. Example: https://example.test/invoice/abcd'
token:
type: string
example: abcd
description: 'The public token. Example: abcd'
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Invoice not found'
type: object
example:
data:
message: 'Invoice not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Invoice not found'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
invoice_id:
type: integer
description: 'The id of the invoice.'
example: 42
required:
- sid
- invoice_id
/api/invoice/line-item/add:
post:
summary: 'Add Line Item'
operationId: addLineItem
description: 'Appends a single line item to a draft invoice and recalculates totals.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
token: swXnLrONDYpa4ylMsQM8WMrxaoBMR1SPysVAznFO
invoice_number: INV-82093
status: draft
payment_terms: net_15
issue_date: '2026-08-08'
due_date: '2026-08-23'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
cover_fee_required: false
cover_fee_quote: null
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/swXnLrONDYpa4ylMsQM8WMrxaoBMR1SPysVAznFO'
customer:
id: 15778
name: 'Donny Leffler'
email: mitchell.matilda@example.org
items: []
payments: []
events: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
token:
type: string
example: swXnLrONDYpa4ylMsQM8WMrxaoBMR1SPysVAznFO
invoice_number:
type: string
example: INV-82093
status:
type: string
example: draft
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-08-08'
due_date:
type: string
example: '2026-08-23'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 0
total:
type: integer
example: 0
amount_paid:
type: integer
example: 0
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: true
cover_fee_required:
type: boolean
example: false
cover_fee_quote:
type: string
example: null
nullable: true
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/swXnLrONDYpa4ylMsQM8WMrxaoBMR1SPysVAznFO'
customer:
type: object
properties:
id:
type: integer
example: 15778
name:
type: string
example: 'Donny Leffler'
email:
type: string
example: mitchell.matilda@example.org
items:
type: array
example: []
payments:
type: array
example: []
events:
type: array
example: []
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
data.item_id:
- 'The selected data.item id is invalid.'
properties:
errors:
type: object
properties:
data.item_id:
type: array
example:
- 'The selected data.item id is invalid.'
items:
type: string
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Invoice not found'
type: object
example:
data:
message: 'Invoice not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Invoice not found'
422:
description: 'Invoice locked'
content:
application/json:
schema:
type: object
example:
data:
message: 'Only draft invoices can be edited.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Only draft invoices can be edited.'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
invoice_id:
type: integer
description: 'The id of the draft invoice.'
example: 42
item_id:
type: integer
description: 'The Merchant item id this line is sourced from.'
example: 5
name:
type: string
description: 'The line name.'
example: Consulting
description:
type: string
description: 'An optional line description.'
example: '2 hours'
quantity:
type: number
description: 'The quantity.'
example: 2.0
unit_price:
type: number
description: 'The unit price in dollars.'
example: 125.0
required:
- sid
- invoice_id
- item_id
- name
- quantity
- unit_price
/api/invoice/line-item/update:
patch:
summary: 'Update Line Item'
operationId: updateLineItem
description: "Updates a single line item on a draft invoice. Only the fields you pass are\nchanged; the line amount is recomputed and invoice totals refreshed."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
token: QUXMSPPEnnPAkhbM9ShfxDOqcDxDJHfv2dFRNpe8
invoice_number: INV-52976
status: draft
payment_terms: net_15
issue_date: '2026-08-08'
due_date: '2026-08-23'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
cover_fee_required: false
cover_fee_quote: null
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/QUXMSPPEnnPAkhbM9ShfxDOqcDxDJHfv2dFRNpe8'
customer:
id: 15779
name: 'Elenora Stokes'
email: matilda.feeney@example.net
items: []
payments: []
events: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
token:
type: string
example: QUXMSPPEnnPAkhbM9ShfxDOqcDxDJHfv2dFRNpe8
invoice_number:
type: string
example: INV-52976
status:
type: string
example: draft
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-08-08'
due_date:
type: string
example: '2026-08-23'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 0
total:
type: integer
example: 0
amount_paid:
type: integer
example: 0
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: true
cover_fee_required:
type: boolean
example: false
cover_fee_quote:
type: string
example: null
nullable: true
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/QUXMSPPEnnPAkhbM9ShfxDOqcDxDJHfv2dFRNpe8'
customer:
type: object
properties:
id:
type: integer
example: 15779
name:
type: string
example: 'Elenora Stokes'
email:
type: string
example: matilda.feeney@example.net
items:
type: array
example: []
payments:
type: array
example: []
events:
type: array
example: []
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
data.quantity:
- 'The data.quantity field must be at least 0.'
properties:
errors:
type: object
properties:
data.quantity:
type: array
example:
- 'The data.quantity field must be at least 0.'
items:
type: string
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Invoice not found'
type: object
example:
data:
message: 'Invoice not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Invoice not found'
-
description: 'Line item not found'
type: object
example:
data:
message: 'Line item not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Line item not found'
422:
description: 'Invoice locked'
content:
application/json:
schema:
type: object
example:
data:
message: 'Only draft invoices can be edited.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Only draft invoices can be edited.'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
invoice_id:
type: integer
description: 'The id of the draft invoice.'
example: 42
line_item_id:
type: integer
description: 'The id of the line item to update.'
example: 9
item_id:
type: integer
description: 'The Merchant item id this line is sourced from.'
example: 5
name:
type: string
description: 'The line name.'
example: Consulting
description:
type: string
description: 'The line description.'
example: '3 hours'
quantity:
type: number
description: 'The quantity.'
example: 3.0
unit_price:
type: number
description: 'The unit price in dollars.'
example: 125.0
required:
- sid
- invoice_id
- line_item_id
/api/invoice/line-item/delete:
post:
summary: 'Delete Line Item'
operationId: deleteLineItem
description: 'Removes a single line item from a draft invoice and recalculates totals.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
token: LOZMRZirHdxIhovgwucC0mgfLmABk57ZX8y6cTui
invoice_number: INV-66650
status: draft
payment_terms: net_15
issue_date: '2026-08-08'
due_date: '2026-08-23'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
cover_fee_required: false
cover_fee_quote: null
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/LOZMRZirHdxIhovgwucC0mgfLmABk57ZX8y6cTui'
customer:
id: 15780
name: 'Henri Mitchell'
email: tleuschke@example.net
items: []
payments: []
events: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
token:
type: string
example: LOZMRZirHdxIhovgwucC0mgfLmABk57ZX8y6cTui
invoice_number:
type: string
example: INV-66650
status:
type: string
example: draft
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-08-08'
due_date:
type: string
example: '2026-08-23'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 0
total:
type: integer
example: 0
amount_paid:
type: integer
example: 0
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: true
cover_fee_required:
type: boolean
example: false
cover_fee_quote:
type: string
example: null
nullable: true
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/LOZMRZirHdxIhovgwucC0mgfLmABk57ZX8y6cTui'
customer:
type: object
properties:
id:
type: integer
example: 15780
name:
type: string
example: 'Henri Mitchell'
email:
type: string
example: tleuschke@example.net
items:
type: array
example: []
payments:
type: array
example: []
events:
type: array
example: []
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Invoice not found'
type: object
example:
data:
message: 'Invoice not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Invoice not found'
-
description: 'Line item not found'
type: object
example:
data:
message: 'Line item not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Line item not found'
422:
description: 'Invoice locked'
content:
application/json:
schema:
type: object
example:
data:
message: 'Only draft invoices can be edited.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Only draft invoices can be edited.'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
invoice_id:
type: integer
description: 'The id of the draft invoice.'
example: 42
line_item_id:
type: integer
description: 'The id of the line item to remove.'
example: 9
required:
- sid
- invoice_id
- line_item_id
/api/invoice/items:
get:
summary: 'List Invoice Items'
operationId: listInvoiceItems
description: "Lists the Merchant's items (funds/designations) available to use as invoice\nline items, ordered alphabetically."
parameters: []
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
data:
-
id: 5
name: Consulting
description: null
price: 125.0
properties:
data:
type: array
example:
-
id: 5
name: Consulting
description: null
price: 125
items:
type: object
properties:
id:
type: integer
example: 5
name:
type: string
example: Consulting
description:
type: string
example: null
nullable: true
price:
type: number
example: 125.0
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: 'Invalid sid'
content:
application/json:
schema:
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
required:
- sid
/api/invoice/item/create:
post:
summary: 'Create Invoice Item'
operationId: createInvoiceItem
description: "Creates an invoicing-only item (fund/designation) for the Merchant. The\nitem is hidden from public giving pages and can be referenced as a line\nitem's `item_id`."
parameters: []
responses:
201:
description: Created
content:
application/json:
schema:
type: object
example:
data:
id: 5
name: Consulting
description: null
price: 125.0
tax_deductible: false
properties:
data:
type: object
properties:
id:
type: integer
example: 5
description: 'The item id. Example: 5'
name:
type: string
example: Consulting
description: 'The item name. Example: Consulting'
description:
type: string
example: null
description: 'The item description. Example: null'
price:
type: number
example: 125.0
description: 'The default unit price in dollars, if set. Example: 125.00'
tax_deductible:
type: boolean
example: false
description: 'Whether the item is tax deductible. Example: false'
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
data.name:
- 'The data.name field is required.'
properties:
errors:
type: object
properties:
data.name:
type: array
example:
- 'The data.name field is required.'
items:
type: string
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: 'Invalid sid'
content:
application/json:
schema:
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
name:
type: string
description: 'The item name.'
example: Consulting
description:
type: string
description: 'An optional description.'
example: 'Professional services'
nullable: true
price:
type: number
description: 'An optional default unit price in dollars.'
example: 125.0
nullable: true
tax_deductible:
type: boolean
description: 'Whether the item is tax deductible.'
example: false
required:
- sid
- name
/api/recurring-invoices:
get:
summary: 'List Recurring Invoices'
operationId: listRecurringInvoices
description: "Retrieves a paginated (cursor) list of recurring-invoice templates for a\nMerchant, optionally filtered by status."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: null
status: Active
recurrence_schedule: Monthly
payment_terms: net_15
cover_fee_required: false
start_date: '2026-08-10'
end_date: null
next_run_date: '2026-09-10'
last_run_date: null
customer_name: 'Lafayette Considine'
-
id: null
status: Active
recurrence_schedule: Monthly
payment_terms: net_15
cover_fee_required: false
start_date: '2026-08-10'
end_date: null
next_run_date: '2026-09-10'
last_run_date: null
customer_name: 'Margaretta Thiel'
links:
prev: null
next: null
meta:
path: /
per_page: 500
next_cursor: null
prev_cursor: null
properties:
data:
type: array
example:
-
id: null
status: Active
recurrence_schedule: Monthly
payment_terms: net_15
cover_fee_required: false
start_date: '2026-08-10'
end_date: null
next_run_date: '2026-09-10'
last_run_date: null
customer_name: 'Lafayette Considine'
-
id: null
status: Active
recurrence_schedule: Monthly
payment_terms: net_15
cover_fee_required: false
start_date: '2026-08-10'
end_date: null
next_run_date: '2026-09-10'
last_run_date: null
customer_name: 'Margaretta Thiel'
items:
type: object
properties:
id:
type: string
example: null
description: 'The template id. Example: 3'
status:
type: string
example: Active
description: 'The template status. Example: Active'
recurrence_schedule:
type: string
example: Monthly
description: 'The schedule. Example: Monthly'
payment_terms:
type: string
example: net_15
description: 'The payment terms applied to generated invoices. Example: net_15'
cover_fee_required:
type: boolean
example: false
start_date:
type: string
example: '2026-08-10'
description: 'The start date (Y-m-d). Example: 2026-07-01'
end_date:
type: string
example: null
description: 'The optional end date (Y-m-d), or null. Example: 2027-07-01'
next_run_date:
type: string
example: '2026-09-10'
description: 'The next run date (Y-m-d), or null once ended. Example: 2026-08-01'
last_run_date:
type: string
example: null
description: 'The most recent run date (Y-m-d), or null. Example: 2026-07-01'
customer_name:
type: string
example: 'Lafayette Considine'
description: 'The linked customer name. Example: Jane Doe'
links:
type: object
properties:
prev:
type: string
example: null
nullable: true
next:
type: string
example: null
nullable: true
meta:
type: object
properties:
path:
type: string
example: /
per_page:
type: integer
example: 500
next_cursor:
type: string
example: null
nullable: true
prev_cursor:
type: string
example: null
nullable: true
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: 'Invalid sid'
content:
application/json:
schema:
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
required:
- sid
filters:
type: object
description: ''
example: []
properties:
status:
type: string
description: 'A status to filter by. One of: Active, Ended, Cancelled.'
example: Active
/api/recurring-invoice:
get:
summary: 'Show Recurring Invoice'
operationId: showRecurringInvoice
description: "Retrieves a single recurring-invoice template with its line items, the\ninvoices it has generated (the 50 most recent), and the upcoming run dates."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
status: Active
recurrence_schedule: Monthly
payment_terms: net_15
cover_fee_required: false
start_date: '2026-08-10'
end_date: null
next_run_date: '2026-09-10'
last_run_date: null
thank_you_note: null
customer:
id: 15783
name: 'Marcelo Predovic'
email: kconsidine@example.net
items: []
upcoming_run_dates:
- '2026-09-10'
- '2026-10-10'
- '2026-11-10'
invoices: []
properties:
data:
type: object
properties:
id:
type: string
example: null
description: 'The template id. Example: 3'
status:
type: string
example: Active
description: 'The template status. Example: Active'
recurrence_schedule:
type: string
example: Monthly
description: 'The schedule. Example: Monthly'
payment_terms:
type: string
example: net_15
description: 'The payment terms applied to generated invoices. Example: net_15'
cover_fee_required:
type: boolean
example: false
start_date:
type: string
example: '2026-08-10'
description: 'The first run date (Y-m-d). Example: 2026-08-01'
end_date:
type: string
example: null
description: 'The optional end date (Y-m-d), or null. Example: 2027-08-01'
next_run_date:
type: string
example: '2026-09-10'
description: 'The next scheduled run date (Y-m-d), or null once ended. Example: 2026-09-01'
last_run_date:
type: string
example: null
description: 'The most recent run date (Y-m-d), or null. Example: 2026-08-01'
thank_you_note:
type: string
example: null
description: 'An optional note shown on generated invoices. Example: Thanks!'
customer:
type: object
properties:
id:
type: integer
example: 15783
name:
type: string
example: 'Marcelo Predovic'
email:
type: string
example: kconsidine@example.net
description: 'The linked customer (id, name, email).'
items:
type: array
example: []
description: 'The template line items (id, item_id, name, description, quantity, unit_price, amount).'
upcoming_run_dates:
type: array
example:
- '2026-09-10'
- '2026-10-10'
- '2026-11-10'
description: 'The next few scheduled run dates (Y-m-d), computed on read.'
items:
type: string
invoices:
type: array
example: []
description: 'The 50 most recent generated invoices (id, invoice_number, status, total, issue_date, public_url).'
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Not found'
type: object
example:
data:
message: 'Recurring invoice not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Recurring invoice not found'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
recurring_invoice_id:
type: integer
description: 'The id of the template.'
example: 3
required:
- sid
- recurring_invoice_id
/api/recurring-invoice/create:
post:
summary: 'Create Recurring Invoice'
operationId: createRecurringInvoice
description: "Creates a recurring-invoice template. The template carries its own snapshot\nof the line items and requires a linked customer (used to resolve the email\non every run). When the start date is today the first invoice is generated\nand sent immediately; a future start date just schedules the first run."
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
status: Active
recurrence_schedule: Monthly
payment_terms: net_15
cover_fee_required: false
start_date: '2026-08-10'
end_date: null
next_run_date: '2026-09-10'
last_run_date: null
thank_you_note: null
customer:
id: 15784
name: 'Pauline Runte'
email: alayna44@example.org
items: []
upcoming_run_dates:
- '2026-09-10'
- '2026-10-10'
- '2026-11-10'
invoices: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
status:
type: string
example: Active
recurrence_schedule:
type: string
example: Monthly
payment_terms:
type: string
example: net_15
cover_fee_required:
type: boolean
example: false
start_date:
type: string
example: '2026-08-10'
end_date:
type: string
example: null
nullable: true
next_run_date:
type: string
example: '2026-09-10'
last_run_date:
type: string
example: null
nullable: true
thank_you_note:
type: string
example: null
nullable: true
customer:
type: object
properties:
id:
type: integer
example: 15784
name:
type: string
example: 'Pauline Runte'
email:
type: string
example: alayna44@example.org
items:
type: array
example: []
upcoming_run_dates:
type: array
example:
- '2026-09-10'
- '2026-10-10'
- '2026-11-10'
items:
type: string
invoices:
type: array
example: []
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
data.customer_id:
- 'The data.customer id field is required.'
properties:
errors:
type: object
properties:
data.customer_id:
type: array
example:
- 'The data.customer id field is required.'
items:
type: string
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: 'Invalid sid'
content:
application/json:
schema:
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
customer_uuid:
type: string
description: 'The uuid of an existing customer belonging to the Merchant. Preferred over data.customer_id; supply exactly one.'
example: 9f2a6c14-3e8b-4d21-9a77-5c1e0b8f4d33
customer_id:
type: integer
description: 'An existing customer id belonging to the Merchant. Required unless data.customer_uuid is supplied.'
example: 88
payment_terms:
type: string
description: 'One of: due_on_receipt, net_15, net_30, net_60.'
example: net_15
cover_fee_required:
type: boolean
description: "Require the customer to cover the processing fee on every invoice this template generates. Defaults to the Merchant's invoice setting."
example: true
recurring_frequency:
type: string
description: 'The schedule. One of: Weekly, Biweekly, FirstFifteenth, Monthly, Yearly.'
example: Monthly
recurring_start_date:
type: string
description: 'The first run date (Y-m-d).'
example: '2026-08-01'
recurring_end_date:
type: string
description: 'An optional end date (Y-m-d), on/after the start date.'
example: '2027-08-01'
thank_you_note:
type: string
description: 'An optional note shown on generated invoices.'
example: Thanks!
lines:
type: array
description: 'The line items (at least one).'
example:
- []
items:
type: object
properties:
item_id:
type: integer
description: 'The Merchant item id.'
example: 5
name:
type: string
description: 'The line name.'
example: 'Monthly retainer'
description:
type: string
description: 'An optional line description.'
example: 'Support plan'
quantity:
type: number
description: 'The quantity.'
example: 1.0
unit_price:
type: number
description: 'The unit price in dollars.'
example: 500.0
required:
- item_id
- name
- quantity
- unit_price
required:
- sid
- payment_terms
- recurring_frequency
- recurring_start_date
- lines
/api/recurring-invoice/cancel:
post:
summary: 'Cancel Recurring Invoice'
operationId: cancelRecurringInvoice
description: "Cancels an active recurring-invoice template. No further invoices are\ngenerated. Only active templates can be cancelled."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
status: Active
recurrence_schedule: Monthly
payment_terms: net_15
cover_fee_required: false
start_date: '2026-08-10'
end_date: null
next_run_date: '2026-09-10'
last_run_date: null
thank_you_note: null
customer:
id: 15785
name: 'Marcelo Predovic'
email: micaela88@example.org
items: []
upcoming_run_dates:
- '2026-09-10'
- '2026-10-10'
- '2026-11-10'
invoices: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
status:
type: string
example: Active
recurrence_schedule:
type: string
example: Monthly
payment_terms:
type: string
example: net_15
cover_fee_required:
type: boolean
example: false
start_date:
type: string
example: '2026-08-10'
end_date:
type: string
example: null
nullable: true
next_run_date:
type: string
example: '2026-09-10'
last_run_date:
type: string
example: null
nullable: true
thank_you_note:
type: string
example: null
nullable: true
customer:
type: object
properties:
id:
type: integer
example: 15785
name:
type: string
example: 'Marcelo Predovic'
email:
type: string
example: micaela88@example.org
items:
type: array
example: []
upcoming_run_dates:
type: array
example:
- '2026-09-10'
- '2026-10-10'
- '2026-11-10'
items:
type: string
invoices:
type: array
example: []
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Not found'
type: object
example:
data:
message: 'Recurring invoice not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Recurring invoice not found'
422:
description: 'Not active'
content:
application/json:
schema:
type: object
example:
data:
message: 'Only active recurring invoices can be cancelled.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Only active recurring invoices can be cancelled.'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
recurring_invoice_id:
type: integer
description: 'The id of the template to cancel.'
example: 3
required:
- sid
- recurring_invoice_id
/api/payment-method/list:
get:
summary: 'List payment methods for a customer'
operationId: listPaymentMethodsForACustomer
description: "This endpoint shows all payment methods for a customer. Must pass at least one filter to select\n a specific customer"
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 1
type: cc
token: B6EXEPCIC8WGK63Y19RE5222
first_name: Lisa
last_name: 'Wallow '
cc_name_on_card: 'Lisa Wallow'
cc_last_four: '5222'
cc_expiration_date: 08/2028
cc_brand: Visa
status: New
status_date: '2026-04-20 08:32:30'
enabled: true
default: false
addr1: '1504 Minnesota Ave'
addr2: ''
addr3: null
city: Kenner
state: LA
zip: '30534'
-
id: 1
type: cc
token: B6EXEPCIC8WGK63Y19RE5222
first_name: Lisa
last_name: 'Wallow '
cc_name_on_card: 'Lisa Wallow'
cc_last_four: '5222'
cc_expiration_date: 08/2028
cc_brand: Visa
status: New
status_date: '2026-04-20 08:32:30'
enabled: true
default: false
addr1: '1504 Minnesota Ave'
addr2: ''
addr3: null
city: Kenner
state: LA
zip: '30534'
links:
prev: null
next: null
meta:
path: /
per_page: 15
next_cursor: null
prev_cursor: null
properties:
data:
type: array
example:
-
id: 1
type: cc
token: B6EXEPCIC8WGK63Y19RE5222
first_name: Lisa
last_name: 'Wallow '
cc_name_on_card: 'Lisa Wallow'
cc_last_four: '5222'
cc_expiration_date: 08/2028
cc_brand: Visa
status: New
status_date: '2026-04-20 08:32:30'
enabled: true
default: false
addr1: '1504 Minnesota Ave'
addr2: ''
addr3: null
city: Kenner
state: LA
zip: '30534'
-
id: 1
type: cc
token: B6EXEPCIC8WGK63Y19RE5222
first_name: Lisa
last_name: 'Wallow '
cc_name_on_card: 'Lisa Wallow'
cc_last_four: '5222'
cc_expiration_date: 08/2028
cc_brand: Visa
status: New
status_date: '2026-04-20 08:32:30'
enabled: true
default: false
addr1: '1504 Minnesota Ave'
addr2: ''
addr3: null
city: Kenner
state: LA
zip: '30534'
items:
type: object
properties:
id:
type: integer
example: 1
description: 'The ID of the Payment Method. Example: 12345'
type:
type: string
example: cc
description: 'The type of the Payment Method. Example: cc'
token:
type: string
example: B6EXEPCIC8WGK63Y19RE5222
description: 'The token of the Payment Method. Example: xxxxxxxx'
first_name:
type: string
example: Lisa
description: 'The first name of the customer. Example: John'
last_name:
type: string
example: 'Wallow '
description: 'The last name of the customer. Example: Doe'
cc_name_on_card:
type: string
example: 'Lisa Wallow'
description: 'The name on the card. Example: John Doe'
cc_last_four:
type: string
example: '5222'
description: 'The last four digits of the card. Example: 1234'
cc_expiration_date:
type: string
example: 08/2028
description: 'The expiration date of the card. Example: 01/2025'
cc_brand:
type: string
example: Visa
description: 'The brand of the card. Example: Visa'
status:
type: string
example: New
description: 'The status of the Payment Method. Example: New'
status_date:
type: string
example: '2026-04-20 08:32:30'
description: 'The date the Payment Method was created. Example: 2024-12-08 05:00:04'
enabled:
type: boolean
example: true
description: 'Whether the Payment Method is enabled or not. Example: true'
default:
type: boolean
example: false
description: 'Whether the Payment Method is default or not. Example: true'
addr1:
type: string
example: '1504 Minnesota Ave'
description: 'Address Line One. Example: 123 First St.'
addr2:
type: string
example: ''
description: 'Address Line Two. Example: Suite 111'
addr3:
type: string
example: null
description: 'Address Line Three. Example: Suite 111'
city:
type: string
example: Kenner
description: 'City name. Example: Alpharetta'
state:
type: string
example: LA
description: 'Two character State. Example: GA'
zip:
type: string
example: '30534'
description: 'Zip code. Example: 30009'
links:
type: object
properties:
prev:
type: string
example: null
nullable: true
next:
type: string
example: null
nullable: true
meta:
type: object
properties:
path:
type: string
example: /
per_page:
type: integer
example: 15
next_cursor:
type: string
example: null
nullable: true
prev_cursor:
type: string
example: null
nullable: true
401:
description: 'Token permission error'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission denied'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission denied'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Customer not found'
type: object
example:
data:
message: 'Customer not found.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Customer not found.'
-
description: 'No such Merchant'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
tags:
- 'Payment Method management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
required:
- sid
filters:
type: object
description: ''
example: []
properties:
phone:
type: string
description: 'Phone number of the customer. Must be in e.164 format.'
example: '+15551237890'
uuid:
type: string
description: 'UUID of the customer. Must be in uuid format.'
example: 3c37db03-dc71-4e8b-90e7-6668290b7c3d
email:
type: string
description: 'Email of the customer. Must be in rfc compliant.'
example: an-email@domain.com
/api/payment-method/show:
get:
summary: 'Show a Payment Method for a customer'
operationId: showAPaymentMethodForACustomer
description: "This endpoint shows a specific payment method for a customer. Must pass at least one filter to select\n a specific customer"
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 1
type: cc
token: B6EXEPCIC8WGK63Y19RE5222
first_name: Lisa
last_name: 'Wallow '
cc_name_on_card: 'Lisa Wallow'
cc_last_four: '5222'
cc_expiration_date: 08/2028
cc_brand: Visa
status: New
status_date: '2026-04-20 08:32:30'
enabled: true
default: false
addr1: '1504 Minnesota Ave'
addr2: ''
addr3: null
city: Kenner
state: LA
zip: '30534'
properties:
data:
type: object
properties:
id:
type: integer
example: 1
description: 'The ID of the Payment Method. Example: 12345'
type:
type: string
example: cc
description: 'The type of the Payment Method. Example: cc'
token:
type: string
example: B6EXEPCIC8WGK63Y19RE5222
description: 'The token of the Payment Method. Example: xxxxxxxx'
first_name:
type: string
example: Lisa
description: 'The first name of the customer. Example: John'
last_name:
type: string
example: 'Wallow '
description: 'The last name of the customer. Example: Doe'
cc_name_on_card:
type: string
example: 'Lisa Wallow'
description: 'The name on the card. Example: John Doe'
cc_last_four:
type: string
example: '5222'
description: 'The last four digits of the card. Example: 1234'
cc_expiration_date:
type: string
example: 08/2028
description: 'The expiration date of the card. Example: 01/2025'
cc_brand:
type: string
example: Visa
description: 'The brand of the card. Example: Visa'
status:
type: string
example: New
description: 'The status of the Payment Method. Example: New'
status_date:
type: string
example: '2026-04-20 08:32:30'
description: 'The date the Payment Method was created. Example: 2024-12-08 05:00:04'
enabled:
type: boolean
example: true
description: 'Whether the Payment Method is enabled or not. Example: true'
default:
type: boolean
example: false
description: 'Whether the Payment Method is default or not. Example: true'
addr1:
type: string
example: '1504 Minnesota Ave'
description: 'Address Line One. Example: 123 First St.'
addr2:
type: string
example: ''
description: 'Address Line Two. Example: Suite 111'
addr3:
type: string
example: null
description: 'Address Line Three. Example: Suite 111'
city:
type: string
example: Kenner
description: 'City name. Example: Alpharetta'
state:
type: string
example: LA
description: 'Two character State. Example: GA'
zip:
type: string
example: '30534'
description: 'Zip code. Example: 30009'
401:
description: 'Token permission error'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission denied'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission denied'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Customer not found'
type: object
example:
data:
message: 'Customer not found.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Customer not found.'
-
description: 'Payment Method not found'
type: object
example:
data:
message: 'Payment Method not found.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Payment Method not found.'
-
description: 'No such Merchant'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
tags:
- 'Payment Method management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
payment_method_id:
type: integer
description: 'The ID of the Payment Method.'
example: 12345
required:
- sid
- payment_method_id
filters:
type: object
description: ''
example: []
properties:
phone:
type: string
description: 'Phone number of the customer. Must be in e.164 format.'
example: '+15551237890'
uuid:
type: string
description: 'UUID of the customer. Must be in uuid format.'
example: 3c37db03-dc71-4e8b-90e7-6668290b7c3d
email:
type: string
description: 'Email of the customer. Must be in rfc compliant.'
example: an-email@domain.com
/api/payment-method/create:
post:
summary: 'Create a Payment Method for a customer'
operationId: createAPaymentMethodForACustomer
description: "This endpoint creates a new payment method for a customer. Must pass at least one filter to select\n a specific customer"
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 1
type: cc
token: B6EXEPCIC8WGK63Y19RE5222
first_name: Lisa
last_name: 'Wallow '
cc_name_on_card: 'Lisa Wallow'
cc_last_four: '5222'
cc_expiration_date: 08/2028
cc_brand: Visa
status: New
status_date: '2026-04-20 08:32:30'
enabled: true
default: false
addr1: '1504 Minnesota Ave'
addr2: ''
addr3: null
city: Kenner
state: LA
zip: '30534'
properties:
data:
type: object
properties:
id:
type: integer
example: 1
description: 'The ID of the Payment Method. Example: 12345'
type:
type: string
example: cc
description: 'The type of the Payment Method. Example: cc'
token:
type: string
example: B6EXEPCIC8WGK63Y19RE5222
description: 'The token of the Payment Method. Example: xxxxxxxx'
first_name:
type: string
example: Lisa
description: 'The first name of the customer. Example: John'
last_name:
type: string
example: 'Wallow '
description: 'The last name of the customer. Example: Doe'
cc_name_on_card:
type: string
example: 'Lisa Wallow'
description: 'The name on the card. Example: John Doe'
cc_last_four:
type: string
example: '5222'
description: 'The last four digits of the card. Example: 1234'
cc_expiration_date:
type: string
example: 08/2028
description: 'The expiration date of the card. Example: 01/2025'
cc_brand:
type: string
example: Visa
description: 'The brand of the card. Example: Visa'
status:
type: string
example: New
description: 'The status of the Payment Method. Example: New'
status_date:
type: string
example: '2026-04-20 08:32:30'
description: 'The date the Payment Method was created. Example: 2024-12-08 05:00:04'
enabled:
type: boolean
example: true
description: 'Whether the Payment Method is enabled or not. Example: true'
default:
type: boolean
example: false
description: 'Whether the Payment Method is default or not. Example: true'
addr1:
type: string
example: '1504 Minnesota Ave'
description: 'Address Line One. Example: 123 First St.'
addr2:
type: string
example: ''
description: 'Address Line Two. Example: Suite 111'
addr3:
type: string
example: null
description: 'Address Line Three. Example: Suite 111'
city:
type: string
example: Kenner
description: 'City name. Example: Alpharetta'
state:
type: string
example: LA
description: 'Two character State. Example: GA'
zip:
type: string
example: '30534'
description: 'Zip code. Example: 30009'
401:
description: 'Token permission error'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission denied'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission denied'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Customer not found'
type: object
example:
data:
message: 'Customer not found.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Customer not found.'
-
description: 'No such Merchant'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
tags:
- 'Payment Method management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
uuid:
type: string
description: 'UUID of the customer. Must be in uuid format.'
example: 3c37db03-dc71-4e8b-90e7-6668290b7c3d
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
type:
type: string
description: "Type of payment method 'cc' for credit card or 'ach' for bank accounts."
example: cc
cc_name_on_card:
type: string
description: "The name on the card. Required IF type is 'cc' Max: 255."
example: 'John Doe'
cc_number:
type: string
description: "The card number. Required IF type is 'cc' Max: 255."
example: '7890'
cc_expiration_date:
type: string
description: "The expiration date of card. Required IF type is 'cc' Max: 7."
example: 01/2025
cc_cvv:
type: string
description: "The CVV of card. Required IF type is 'cc' Max: 4."
example: '1234'
cc_brand:
type: string
description: "The brand of the card. Must be Visa, MasterCard, or Amex. Required IF type is 'cc' Max: 10."
example: Visa
ach_bank_account_name:
type: string
description: "The name on the bank account. Required IF type is 'ach' Max: 50."
example: 'Acme Inc.'
ach_routing_number:
type: string
description: "Routing number for ach type. Required IF type is 'ach' Digits: 9."
example: '123456789'
ach_account_number:
type: string
description: "Account number for ach type. Required IF type is 'ach' Max: 35."
example: '123456789'
ach_ownership_type:
type: string
description: "Ownership type of the account. Must be Personal or Business. Required IF type is 'ach' Max: 35."
example: Personal
ach_account_type:
type: string
description: "Type of the account. Must be Checking or Savings. Required IF type is 'ach' Max: 35."
example: Checking
ach_bank_name:
type: string
description: "The name of the bank. Required IF type is 'ach' Max: 50."
example: 'Wells Fargo'
default:
type: boolean
description: 'Should this be default payment method.'
example: true
addr1:
type: string
description: 'Address Line One. Max: 75.'
example: '123 First St.'
addr2:
type: string
description: 'Address Line Two. Max: 50.'
example: 'Suite 111'
nullable: true
city:
type: string
description: 'City name. Max: 75.'
example: Alpharetta
state:
type: string
description: 'Two character State. Max: 2.'
example: GA
zip:
type: string
description: 'Zip code. Digits: 5.'
example: '30009'
required:
- sid
- type
- cc_name_on_card
- cc_number
- cc_expiration_date
- cc_cvv
- cc_brand
- ach_bank_account_name
- ach_routing_number
- ach_account_number
- ach_ownership_type
- ach_account_type
- ach_bank_name
/api/payment-method/update:
patch:
summary: 'Update a Payment Method for a customer'
operationId: updateAPaymentMethodForACustomer
description: "This endpoint updates a payment method for a customer. Must pass at least one filter to select\n a specific customer"
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 1
type: cc
token: B6EXEPCIC8WGK63Y19RE5222
first_name: Lisa
last_name: 'Wallow '
cc_name_on_card: 'Lisa Wallow'
cc_last_four: '5222'
cc_expiration_date: 08/2028
cc_brand: Visa
status: New
status_date: '2026-04-20 08:32:30'
enabled: true
default: false
addr1: '1504 Minnesota Ave'
addr2: ''
addr3: null
city: Kenner
state: LA
zip: '30534'
properties:
data:
type: object
properties:
id:
type: integer
example: 1
description: 'The ID of the Payment Method. Example: 12345'
type:
type: string
example: cc
description: 'The type of the Payment Method. Example: cc'
token:
type: string
example: B6EXEPCIC8WGK63Y19RE5222
description: 'The token of the Payment Method. Example: xxxxxxxx'
first_name:
type: string
example: Lisa
description: 'The first name of the customer. Example: John'
last_name:
type: string
example: 'Wallow '
description: 'The last name of the customer. Example: Doe'
cc_name_on_card:
type: string
example: 'Lisa Wallow'
description: 'The name on the card. Example: John Doe'
cc_last_four:
type: string
example: '5222'
description: 'The last four digits of the card. Example: 1234'
cc_expiration_date:
type: string
example: 08/2028
description: 'The expiration date of the card. Example: 01/2025'
cc_brand:
type: string
example: Visa
description: 'The brand of the card. Example: Visa'
status:
type: string
example: New
description: 'The status of the Payment Method. Example: New'
status_date:
type: string
example: '2026-04-20 08:32:30'
description: 'The date the Payment Method was created. Example: 2024-12-08 05:00:04'
enabled:
type: boolean
example: true
description: 'Whether the Payment Method is enabled or not. Example: true'
default:
type: boolean
example: false
description: 'Whether the Payment Method is default or not. Example: true'
addr1:
type: string
example: '1504 Minnesota Ave'
description: 'Address Line One. Example: 123 First St.'
addr2:
type: string
example: ''
description: 'Address Line Two. Example: Suite 111'
addr3:
type: string
example: null
description: 'Address Line Three. Example: Suite 111'
city:
type: string
example: Kenner
description: 'City name. Example: Alpharetta'
state:
type: string
example: LA
description: 'Two character State. Example: GA'
zip:
type: string
example: '30534'
description: 'Zip code. Example: 30009'
401:
description: 'Token permission error'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission denied'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission denied'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Customer not found'
type: object
example:
data:
message: 'Customer not found.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Customer not found.'
-
description: 'Merchant not found'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
tags:
- 'Payment Method management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
uuid:
type: string
description: 'Must be a valid UUID. The uuid of an existing record in the customers table.'
example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
payment_method_id:
type: number
description: 'The id of an existing record in the payment_methods table.'
example: 4326.41688
type:
type: string
description: "Type of payment method 'cc' for credit card or 'ach' for bank accounts."
example: cc
cc_name_on_card:
type: string
description: "The name on the card. Required IF type is 'cc' Max: 255."
example: 'John Doe'
cc_number:
type: string
description: "The card number. Required IF type is 'cc' Max: 255."
example: '7890'
cc_expiration_date:
type: string
description: "The expiration date of card. Required IF type is 'cc' Max: 7."
example: 01/2025
cc_cvv:
type: string
description: "The CVV of card. Required IF type is 'cc' Max: 4."
example: '1234'
cc_brand:
type: string
description: "The brand of the card. Must be Visa, MasterCard, or Amex. Required IF type is 'cc' Max: 10."
example: Visa
ach_bank_account_name:
type: string
description: "The name on the bank account. Required IF type is 'ach' Max: 50."
example: 'Acme Inc.'
ach_routing_number:
type: string
description: "Routing number for ach type. Required IF type is 'ach' Digits: 9."
example: '123456789'
ach_account_number:
type: string
description: "Account number for ach type. Required IF type is 'ach' Max: 35."
example: '123456789'
ach_ownership_type:
type: string
description: "Ownership type of the account. Must be Personal or Business. Required IF type is 'ach' Max: 35."
example: Personal
ach_account_type:
type: string
description: "Type of the account. Must be Checking or Savings. Required IF type is 'ach' Max: 35."
example: Checking
ach_bank_name:
type: string
description: "The name of the bank. Required IF type is 'ach' Max: 50."
example: 'Wells Fargo'
default:
type: boolean
description: 'Should this be default payment method.'
example: true
addr1:
type: string
description: 'Address Line One. Max: 75.'
example: '123 First St.'
addr2:
type: string
description: 'Address Line Two. Max: 50.'
example: 'Suite 111'
nullable: true
city:
type: string
description: 'City name. Max: 75.'
example: Alpharetta
state:
type: string
description: 'Two character State. Max: 2.'
example: GA
zip:
type: string
description: 'Zip code. Digits: 5.'
example: '30009'
required:
- uuid
- sid
- payment_method_id
- type
- cc_name_on_card
- cc_number
- cc_expiration_date
- cc_cvv
- cc_brand
- ach_bank_account_name
- ach_routing_number
- ach_account_number
- ach_ownership_type
- ach_account_type
- ach_bank_name
- addr1
- city
- state
- zip
filters:
type: object
description: ''
example:
phone: '+15551237890'
properties:
phone:
type: string
description: 'Phone number of the customer. Must be in e.164 format.'
example: '+15551237890'
email:
type: string
description: 'Email of the customer. Must be in rfc compliant.'
example: an-email@domain.com
uuid:
type: string
description: 'UUID of the customer. Must be in uuid format.'
example: 3c37db03-dc71-4e8b-90e7-6668290b7c3d
/api/payment-method/delete:
post:
summary: 'Delete a Payment Method for a customer'
operationId: deleteAPaymentMethodForACustomer
description: "This endpoint deletes a payment method for a customer. Must pass at least one filter to select\n a specific customer"
parameters: []
responses:
200:
description: 'Successful Deletion'
content:
application/json:
schema:
type: object
example:
data:
message: 'Payment Method deleted successfully.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Payment Method deleted successfully.'
description: 'The message of the response. Example: Payment Method deleted successfully.'
401:
description: 'Token permission error'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission denied'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission denied'
description: 'The message of the response. Example: Payment Method deleted successfully.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Customer not found'
type: object
example:
data:
message: 'Customer not found.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Customer not found.'
description: 'The message of the response. Example: Payment Method deleted successfully.'
-
description: 'Merchant not found'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
description: 'The message of the response. Example: Payment Method deleted successfully.'
-
description: 'Payment Method not found'
type: object
example:
data:
message: 'Payment Method not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Payment Method not found'
description: 'The message of the response. Example: Payment Method deleted successfully.'
409:
description: 'Payment method has active recurring payments'
content:
application/json:
schema:
type: object
example:
data:
message: 'Cannot delete payment method with active recurring payments.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Cannot delete payment method with active recurring payments.'
description: 'The message of the response. Example: Payment Method deleted successfully.'
tags:
- 'Payment Method management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
payment_method_id:
type: integer
description: 'The ID of the payment method.'
example: 12345
uuid:
type: string
description: 'UUID of the customer. Must be in uuid format.'
example: 3c37db03-dc71-4e8b-90e7-6668290b7c3d
required:
- sid
- payment_method_id
/api/recurring-payment/list:
get:
summary: 'List Recurring Payments'
operationId: listRecurringPayments
description: 'Retrieves a list of recurring payments for a given Merchant, filtered by various parameters.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 1
name: 'Car Was Solutions '
amount: '4,574.99'
start_date: '2024-11-07T05:00:00.000000Z'
end_date: '2026-12-31T05:00:00.000000Z'
recurrence_schedule: Monthly
last_run_date: '2025-12-15T05:00:00.000000Z'
last_run_status: Failed
last_run_failed_count: 3
next_run_date: null
status: Cancelled
paused_until_date: null
customer_uuid: 9a242468-6b4e-4382-a61b-a728fbc8edae
cancelled_at: '2026-06-29T04:00:00.000000Z'
error: DECLINE
payment_method:
id: 7
type: cc
last_four: '4003'
expiration: 09/2029
zip: ''
name_on_card: 'Geo Perez'
shipping_address:
addr1: null
addr2: null
city: null
state: null
zip: null
-
id: 1
name: 'Car Was Solutions '
amount: '4,574.99'
start_date: '2024-11-07T05:00:00.000000Z'
end_date: '2026-12-31T05:00:00.000000Z'
recurrence_schedule: Monthly
last_run_date: '2025-12-15T05:00:00.000000Z'
last_run_status: Failed
last_run_failed_count: 3
next_run_date: null
status: Cancelled
paused_until_date: null
customer_uuid: 9a242468-6b4e-4382-a61b-a728fbc8edae
cancelled_at: '2026-06-29T04:00:00.000000Z'
error: DECLINE
payment_method:
id: 7
type: cc
last_four: '4003'
expiration: 09/2029
zip: ''
name_on_card: 'Geo Perez'
shipping_address:
addr1: null
addr2: null
city: null
state: null
zip: null
links:
prev: null
next: null
meta:
path: /
per_page: 15
next_cursor: null
prev_cursor: null
properties:
data:
type: array
example:
-
id: 1
name: 'Car Was Solutions '
amount: '4,574.99'
start_date: '2024-11-07T05:00:00.000000Z'
end_date: '2026-12-31T05:00:00.000000Z'
recurrence_schedule: Monthly
last_run_date: '2025-12-15T05:00:00.000000Z'
last_run_status: Failed
last_run_failed_count: 3
next_run_date: null
status: Cancelled
paused_until_date: null
customer_uuid: 9a242468-6b4e-4382-a61b-a728fbc8edae
cancelled_at: '2026-06-29T04:00:00.000000Z'
error: DECLINE
payment_method:
id: 7
type: cc
last_four: '4003'
expiration: 09/2029
zip: ''
name_on_card: 'Geo Perez'
shipping_address:
addr1: null
addr2: null
city: null
state: null
zip: null
-
id: 1
name: 'Car Was Solutions '
amount: '4,574.99'
start_date: '2024-11-07T05:00:00.000000Z'
end_date: '2026-12-31T05:00:00.000000Z'
recurrence_schedule: Monthly
last_run_date: '2025-12-15T05:00:00.000000Z'
last_run_status: Failed
last_run_failed_count: 3
next_run_date: null
status: Cancelled
paused_until_date: null
customer_uuid: 9a242468-6b4e-4382-a61b-a728fbc8edae
cancelled_at: '2026-06-29T04:00:00.000000Z'
error: DECLINE
payment_method:
id: 7
type: cc
last_four: '4003'
expiration: 09/2029
zip: ''
name_on_card: 'Geo Perez'
shipping_address:
addr1: null
addr2: null
city: null
state: null
zip: null
items:
type: object
properties:
id:
type: integer
example: 1
description: 'The id assigned. Example: 453.'
name:
type: string
example: 'Car Was Solutions '
description: 'The name assigned. Example: Acme Corp.'
amount:
type: string
example: '4,574.99'
description: 'The amount. Example: 11.11'
start_date:
type: string
example: '2024-11-07T05:00:00.000000Z'
description: 'The start date. Example: 2025-04-04T04:00:00.000000Z'
end_date:
type: string
example: '2026-12-31T05:00:00.000000Z'
description: 'The end date. Example: 2024-01-17T12:44:28.000000Z'
recurrence_schedule:
type: string
example: Monthly
description: 'The schedule set. Example: Monthly, Daily, Weekly, Yearly'
last_run_date:
type: string
example: '2025-12-15T05:00:00.000000Z'
description: 'The last date the payment was attempted. Example: 2024-01-17T18:35:00.000000Z'
last_run_status:
type: string
example: Failed
description: 'The status of the last attempt. Example: Success'
last_run_failed_count:
type: integer
example: 3
description: 'The number of times this has failed. Example: 0'
next_run_date:
type: string
example: null
description: 'The next date the attempt will be made. Example: 2024-01-17T18:35:00.000000Z'
status:
type: string
example: Cancelled
description: 'The overall status of the recurring payment. Example: Active'
paused_until_date:
type: string
example: null
description: 'The date that payment is paused until. Example: 2024-01-17T18:35:00.000000Z'
customer_uuid:
type: string
example: 9a242468-6b4e-4382-a61b-a728fbc8edae
description: 'The UUID of the customer if applicable. Example: 123123-123132-1231231-1231231'
cancelled_at:
type: string
example: '2026-06-29T04:00:00.000000Z'
description: 'The date this recurring payment was canceled. Example: 2024-01-17T18:35:00.000000Z'
error:
type: string
example: DECLINE
description: 'The error of a failed attempt if known. Example: EXPIRED CARD'
payment_method:
type: object
properties:
id:
type: integer
example: 7
description: 'The id of the assigned payment method. Example: 69'
type:
type: string
example: cc
description: 'The type of the assigned payment method. Example: cc OR ach'
last_four:
type: string
example: '4003'
description: 'The last four digits of the assigned payment method. Example: 1234'
expiration:
type: string
example: 09/2029
description: 'The expiration of the assigned payment method. Example: MM/YYYY'
zip:
type: string
example: ''
description: 'The zip of the assigned payment method. Example: 30090'
name_on_card:
type: string
example: 'Geo Perez'
description: 'The name on the card of the assigned payment method. Example: John Doe'
shipping_address:
type: object
properties:
addr1:
type: string
example: null
description: 'The shipping address line 1. Example: 123 Main St.'
addr2:
type: string
example: null
description: 'The shipping address line 2. Example: apt 1.'
city:
type: string
example: null
description: 'The shipping city. Example: Alpharetta.'
state:
type: string
example: null
description: 'The shipping state. Example: GA.'
zip:
type: string
example: null
description: 'The shipping zip. Example: 12345.'
links:
type: object
properties:
prev:
type: string
example: null
nullable: true
next:
type: string
example: null
nullable: true
meta:
type: object
properties:
path:
type: string
example: /
per_page:
type: integer
example: 15
next_cursor:
type: string
example: null
nullable: true
prev_cursor:
type: string
example: null
nullable: true
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
filters.status:
- 'The filters.status field is not valid.'
properties:
errors:
type: object
properties:
filters.status:
type: array
example:
- 'The filters.status field is not valid.'
items:
type: string
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Token unauthorized'
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
-
description: 'Invalid merchant or affiliate authorization'
type: object
example:
data:
message: Unauthorized
properties:
data:
type: object
properties:
message:
type: string
example: Unauthorized
-
description: 'Invalid merchant or affiliate associations'
type: object
example:
data:
message: 'Not associated with affiliate'
properties:
data:
type: object
properties:
message:
type: string
example: 'Not associated with affiliate'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'No recurring payments found'
type: object
example:
data:
message: 'No recurring payments found'
properties:
data:
type: object
properties:
message:
type: string
example: 'No recurring payments found'
tags:
- 'Recurring Payments management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: string
description: 'The ID of the merchant that processed the transactions.'
example: '12345'
required:
- sid
filters:
type: object
description: ''
example: []
properties:
status:
type: string
description: 'The status of the recurring payment.'
example: 'Active, Failed, Paused, Canceled'
customer_uuid:
type: string
description: 'The customer UUID associated with the transaction.'
example: cust_456
/api/recurring-payment/pause:
patch:
summary: 'Pause Recurring Payment'
operationId: pauseRecurringPayment
description: 'Pauses a scheduled recurring payment. If pause_until_date is not passed, it will be set to 2099-12-31'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 1
name: 'Car Was Solutions '
amount: '4,574.99'
start_date: '2024-11-07T05:00:00.000000Z'
end_date: '2026-12-31T05:00:00.000000Z'
recurrence_schedule: Monthly
last_run_date: '2025-12-15T05:00:00.000000Z'
last_run_status: Failed
last_run_failed_count: 3
next_run_date: null
status: Cancelled
paused_until_date: null
customer_uuid: 9a242468-6b4e-4382-a61b-a728fbc8edae
cancelled_at: '2026-06-29T04:00:00.000000Z'
error: DECLINE
payment_method:
id: 7
type: cc
last_four: '4003'
expiration: 09/2029
zip: ''
name_on_card: 'Geo Perez'
shipping_address:
addr1: null
addr2: null
city: null
state: null
zip: null
properties:
data:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: 'Car Was Solutions '
amount:
type: string
example: '4,574.99'
start_date:
type: string
example: '2024-11-07T05:00:00.000000Z'
end_date:
type: string
example: '2026-12-31T05:00:00.000000Z'
recurrence_schedule:
type: string
example: Monthly
last_run_date:
type: string
example: '2025-12-15T05:00:00.000000Z'
last_run_status:
type: string
example: Failed
last_run_failed_count:
type: integer
example: 3
next_run_date:
type: string
example: null
nullable: true
status:
type: string
example: Cancelled
paused_until_date:
type: string
example: null
nullable: true
customer_uuid:
type: string
example: 9a242468-6b4e-4382-a61b-a728fbc8edae
cancelled_at:
type: string
example: '2026-06-29T04:00:00.000000Z'
error:
type: string
example: DECLINE
payment_method:
type: object
properties:
id:
type: integer
example: 7
type:
type: string
example: cc
last_four:
type: string
example: '4003'
expiration:
type: string
example: 09/2029
zip:
type: string
example: ''
name_on_card:
type: string
example: 'Geo Perez'
shipping_address:
type: object
properties:
addr1:
type: string
example: null
nullable: true
addr2:
type: string
example: null
nullable: true
city:
type: string
example: null
nullable: true
state:
type: string
example: null
nullable: true
zip:
type: string
example: null
nullable: true
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
data.pause_until_date:
- 'Invalid date format.'
properties:
errors:
type: object
properties:
data.pause_until_date:
type: array
example:
- 'Invalid date format.'
items:
type: string
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Token unauthorized'
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
-
description: 'Invalid merchant or affiliate authorization'
type: object
example:
data:
message: Unauthorized
properties:
data:
type: object
properties:
message:
type: string
example: Unauthorized
-
description: 'Invalid merchant or affiliate associations'
type: object
example:
data:
message: 'Not associated with affiliate'
properties:
data:
type: object
properties:
message:
type: string
example: 'Not associated with affiliate'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'No recurring payment found'
type: object
example:
data:
message: 'No recurring payment found'
properties:
data:
type: object
properties:
message:
type: string
example: 'No recurring payment found'
tags:
- 'Recurring Payments management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: string
description: 'The ID of the merchant that processed the transactions.'
example: '12345'
recurring_payment_id:
type: integer
description: 'The ID of the recurring payment to pause.'
example: 12345
pause_until_date:
type: string
description: 'optional The date to pause until in `Y-m-d H:i:s` format.'
example: '2021-01-01 00:00:00'
required:
- sid
- recurring_payment_id
/api/recurring-payment/cancel:
patch:
summary: 'Cancel Recurring Payment'
operationId: cancelRecurringPayment
description: 'Cancels a scheduled recurring payment.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 1
name: 'Car Was Solutions '
amount: '4,574.99'
start_date: '2024-11-07T05:00:00.000000Z'
end_date: '2026-12-31T05:00:00.000000Z'
recurrence_schedule: Monthly
last_run_date: '2025-12-15T05:00:00.000000Z'
last_run_status: Failed
last_run_failed_count: 3
next_run_date: null
status: Cancelled
paused_until_date: null
customer_uuid: 9a242468-6b4e-4382-a61b-a728fbc8edae
cancelled_at: '2026-06-29T04:00:00.000000Z'
error: DECLINE
payment_method:
id: 7
type: cc
last_four: '4003'
expiration: 09/2029
zip: ''
name_on_card: 'Geo Perez'
shipping_address:
addr1: null
addr2: null
city: null
state: null
zip: null
properties:
data:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: 'Car Was Solutions '
amount:
type: string
example: '4,574.99'
start_date:
type: string
example: '2024-11-07T05:00:00.000000Z'
end_date:
type: string
example: '2026-12-31T05:00:00.000000Z'
recurrence_schedule:
type: string
example: Monthly
last_run_date:
type: string
example: '2025-12-15T05:00:00.000000Z'
last_run_status:
type: string
example: Failed
last_run_failed_count:
type: integer
example: 3
next_run_date:
type: string
example: null
nullable: true
status:
type: string
example: Cancelled
paused_until_date:
type: string
example: null
nullable: true
customer_uuid:
type: string
example: 9a242468-6b4e-4382-a61b-a728fbc8edae
cancelled_at:
type: string
example: '2026-06-29T04:00:00.000000Z'
error:
type: string
example: DECLINE
payment_method:
type: object
properties:
id:
type: integer
example: 7
type:
type: string
example: cc
last_four:
type: string
example: '4003'
expiration:
type: string
example: 09/2029
zip:
type: string
example: ''
name_on_card:
type: string
example: 'Geo Perez'
shipping_address:
type: object
properties:
addr1:
type: string
example: null
nullable: true
addr2:
type: string
example: null
nullable: true
city:
type: string
example: null
nullable: true
state:
type: string
example: null
nullable: true
zip:
type: string
example: null
nullable: true
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Token unauthorized'
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
-
description: 'Invalid merchant or affiliate authorization'
type: object
example:
data:
message: Unauthorized
properties:
data:
type: object
properties:
message:
type: string
example: Unauthorized
-
description: 'Invalid merchant or affiliate associations'
type: object
example:
data:
message: 'Not associated with affiliate'
properties:
data:
type: object
properties:
message:
type: string
example: 'Not associated with affiliate'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'No recurring payment found'
type: object
example:
data:
message: 'No recurring payment found'
properties:
data:
type: object
properties:
message:
type: string
example: 'No recurring payment found'
tags:
- 'Recurring Payments management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: string
description: 'The ID of the merchant that processed the transactions.'
example: '12345'
recurring_payment_id:
type: integer
description: 'The ID of the recurring payment to pause.'
example: 12345
required:
- sid
- recurring_payment_id
/api/recurring-payment/activate:
patch:
summary: 'Activate Recurring Payment'
operationId: activateRecurringPayment
description: 'Activates a scheduled recurring payment. Set to status of Active and calculates next run date.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 1
name: 'Car Was Solutions '
amount: '4,574.99'
start_date: '2024-11-07T05:00:00.000000Z'
end_date: '2026-12-31T05:00:00.000000Z'
recurrence_schedule: Monthly
last_run_date: '2025-12-15T05:00:00.000000Z'
last_run_status: Failed
last_run_failed_count: 3
next_run_date: null
status: Cancelled
paused_until_date: null
customer_uuid: 9a242468-6b4e-4382-a61b-a728fbc8edae
cancelled_at: '2026-06-29T04:00:00.000000Z'
error: DECLINE
payment_method:
id: 7
type: cc
last_four: '4003'
expiration: 09/2029
zip: ''
name_on_card: 'Geo Perez'
shipping_address:
addr1: null
addr2: null
city: null
state: null
zip: null
properties:
data:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: 'Car Was Solutions '
amount:
type: string
example: '4,574.99'
start_date:
type: string
example: '2024-11-07T05:00:00.000000Z'
end_date:
type: string
example: '2026-12-31T05:00:00.000000Z'
recurrence_schedule:
type: string
example: Monthly
last_run_date:
type: string
example: '2025-12-15T05:00:00.000000Z'
last_run_status:
type: string
example: Failed
last_run_failed_count:
type: integer
example: 3
next_run_date:
type: string
example: null
nullable: true
status:
type: string
example: Cancelled
paused_until_date:
type: string
example: null
nullable: true
customer_uuid:
type: string
example: 9a242468-6b4e-4382-a61b-a728fbc8edae
cancelled_at:
type: string
example: '2026-06-29T04:00:00.000000Z'
error:
type: string
example: DECLINE
payment_method:
type: object
properties:
id:
type: integer
example: 7
type:
type: string
example: cc
last_four:
type: string
example: '4003'
expiration:
type: string
example: 09/2029
zip:
type: string
example: ''
name_on_card:
type: string
example: 'Geo Perez'
shipping_address:
type: object
properties:
addr1:
type: string
example: null
nullable: true
addr2:
type: string
example: null
nullable: true
city:
type: string
example: null
nullable: true
state:
type: string
example: null
nullable: true
zip:
type: string
example: null
nullable: true
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Token unauthorized'
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
-
description: 'Invalid merchant or affiliate authorization'
type: object
example:
data:
message: Unauthorized
properties:
data:
type: object
properties:
message:
type: string
example: Unauthorized
-
description: 'Invalid merchant or affiliate associations'
type: object
example:
data:
message: 'Not associated with affiliate'
properties:
data:
type: object
properties:
message:
type: string
example: 'Not associated with affiliate'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'No recurring payment found'
type: object
example:
data:
message: 'No recurring payment found'
properties:
data:
type: object
properties:
message:
type: string
example: 'No recurring payment found'
tags:
- 'Recurring Payments management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: string
description: 'The ID of the merchant that processed the transactions.'
example: '12345'
recurring_payment_id:
type: integer
description: 'The ID of the recurring payment to pause.'
example: 12345
required:
- sid
- recurring_payment_id
/api/recurring-payment/edit:
patch:
summary: 'Edit Recurring Payment'
operationId: editRecurringPayment
description: "Edits an existing recurring payment. All fields other than `sid` and `recurring_payment_id` are optional; only\nthe fields you pass will be updated. The customer cannot be changed, and a new payment method must belong to the\nrecurring payment's existing customer. When `recurrence_schedule` or `start_date` change on an Active payment,\nthe next run date is recalculated automatically."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 1
name: 'Car Was Solutions '
amount: '4,574.99'
start_date: '2024-11-07T05:00:00.000000Z'
end_date: '2026-12-31T05:00:00.000000Z'
recurrence_schedule: Monthly
last_run_date: '2025-12-15T05:00:00.000000Z'
last_run_status: Failed
last_run_failed_count: 3
next_run_date: null
status: Cancelled
paused_until_date: null
customer_uuid: 9a242468-6b4e-4382-a61b-a728fbc8edae
cancelled_at: '2026-06-29T04:00:00.000000Z'
error: DECLINE
payment_method:
id: 7
type: cc
last_four: '4003'
expiration: 09/2029
zip: ''
name_on_card: 'Geo Perez'
shipping_address:
addr1: null
addr2: null
city: null
state: null
zip: null
properties:
data:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: 'Car Was Solutions '
amount:
type: string
example: '4,574.99'
start_date:
type: string
example: '2024-11-07T05:00:00.000000Z'
end_date:
type: string
example: '2026-12-31T05:00:00.000000Z'
recurrence_schedule:
type: string
example: Monthly
last_run_date:
type: string
example: '2025-12-15T05:00:00.000000Z'
last_run_status:
type: string
example: Failed
last_run_failed_count:
type: integer
example: 3
next_run_date:
type: string
example: null
nullable: true
status:
type: string
example: Cancelled
paused_until_date:
type: string
example: null
nullable: true
customer_uuid:
type: string
example: 9a242468-6b4e-4382-a61b-a728fbc8edae
cancelled_at:
type: string
example: '2026-06-29T04:00:00.000000Z'
error:
type: string
example: DECLINE
payment_method:
type: object
properties:
id:
type: integer
example: 7
type:
type: string
example: cc
last_four:
type: string
example: '4003'
expiration:
type: string
example: 09/2029
zip:
type: string
example: ''
name_on_card:
type: string
example: 'Geo Perez'
shipping_address:
type: object
properties:
addr1:
type: string
example: null
nullable: true
addr2:
type: string
example: null
nullable: true
city:
type: string
example: null
nullable: true
state:
type: string
example: null
nullable: true
zip:
type: string
example: null
nullable: true
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
data.amount:
- 'The data.amount field must be greater than 0.'
properties:
errors:
type: object
properties:
data.amount:
type: array
example:
- 'The data.amount field must be greater than 0.'
items:
type: string
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Token unauthorized'
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
-
description: 'Invalid merchant or affiliate authorization'
type: object
example:
data:
message: Unauthorized
properties:
data:
type: object
properties:
message:
type: string
example: Unauthorized
-
description: 'Invalid merchant or affiliate associations'
type: object
example:
data:
message: 'Not associated with affiliate'
properties:
data:
type: object
properties:
message:
type: string
example: 'Not associated with affiliate'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Invalid payment method'
type: object
example:
data:
message: 'No such Payment Method'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Payment Method'
-
description: 'Payment method belongs to another customer'
type: object
example:
data:
message: 'Payment Method does not belong to Customer'
properties:
data:
type: object
properties:
message:
type: string
example: 'Payment Method does not belong to Customer'
-
description: 'No recurring payment found'
type: object
example:
data:
message: 'No recurring payment found'
properties:
data:
type: object
properties:
message:
type: string
example: 'No recurring payment found'
tags:
- 'Recurring Payments management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: string
description: 'The ID of the merchant that owns the recurring payment.'
example: '12345'
recurring_payment_id:
type: integer
description: 'The ID of the recurring payment to edit.'
example: 12345
name:
type: string
description: 'The name for the recurring payment.'
example: Rent
amount:
type: number
description: 'The amount for the recurring payment in US Dollars and Cents.'
example: 1101.69
start_date:
type: string
description: 'The date the recurring payment should start in the correct format.'
example: '2025-06-12 13:26:00'
end_date:
type: string
description: 'The date the recurring payment should end in the correct format, or null to clear it.'
example: '2026-06-12 13:26:00'
nullable: true
recurrence_schedule:
type: string
description: 'The schedule: Weekly, Biweekly, FirstFifteenth, Monthly, Yearly.'
example: Monthly
payment_method:
type: integer
description: "The ID of the payment method. Must belong to the recurring payment's customer."
example: 69585
shipping_address:
type: object
description: ''
example: []
properties:
addr1:
type: string
description: 'Line 1 of the shipping address.'
example: '123 Main St.'
nullable: true
addr2:
type: string
description: 'Line 2 of the shipping address.'
example: 'apt 1'
nullable: true
city:
type: string
description: 'The city of the shipping address.'
example: Alpharetta.
nullable: true
state:
type: string
description: 'The state of the shipping address.'
example: GA.
nullable: true
zip:
type: string
description: 'The zip of the shipping address.'
example: '12345.'
nullable: true
required:
- sid
- recurring_payment_id
/api/recurring-payment/create:
post:
summary: 'Create Recurring Payment'
operationId: createRecurringPayment
description: "Creates a scheduled recurring payment. The payment will run on the next date based on schedule and start date. So\nif you create one that starts on 2025-01-01 00:00:00 with Monthly, then the payment method will be charged on 2025-02-01\nRecurring Payments run around 0500 EST."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 1
name: 'Car Was Solutions '
amount: '4,574.99'
start_date: '2024-11-07T05:00:00.000000Z'
end_date: '2026-12-31T05:00:00.000000Z'
recurrence_schedule: Monthly
last_run_date: '2025-12-15T05:00:00.000000Z'
last_run_status: Failed
last_run_failed_count: 3
next_run_date: null
status: Cancelled
paused_until_date: null
customer_uuid: 9a242468-6b4e-4382-a61b-a728fbc8edae
cancelled_at: '2026-06-29T04:00:00.000000Z'
error: DECLINE
payment_method:
id: 7
type: cc
last_four: '4003'
expiration: 09/2029
zip: ''
name_on_card: 'Geo Perez'
shipping_address:
addr1: null
addr2: null
city: null
state: null
zip: null
properties:
data:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: 'Car Was Solutions '
amount:
type: string
example: '4,574.99'
start_date:
type: string
example: '2024-11-07T05:00:00.000000Z'
end_date:
type: string
example: '2026-12-31T05:00:00.000000Z'
recurrence_schedule:
type: string
example: Monthly
last_run_date:
type: string
example: '2025-12-15T05:00:00.000000Z'
last_run_status:
type: string
example: Failed
last_run_failed_count:
type: integer
example: 3
next_run_date:
type: string
example: null
nullable: true
status:
type: string
example: Cancelled
paused_until_date:
type: string
example: null
nullable: true
customer_uuid:
type: string
example: 9a242468-6b4e-4382-a61b-a728fbc8edae
cancelled_at:
type: string
example: '2026-06-29T04:00:00.000000Z'
error:
type: string
example: DECLINE
payment_method:
type: object
properties:
id:
type: integer
example: 7
type:
type: string
example: cc
last_four:
type: string
example: '4003'
expiration:
type: string
example: 09/2029
zip:
type: string
example: ''
name_on_card:
type: string
example: 'Geo Perez'
shipping_address:
type: object
properties:
addr1:
type: string
example: null
nullable: true
addr2:
type: string
example: null
nullable: true
city:
type: string
example: null
nullable: true
state:
type: string
example: null
nullable: true
zip:
type: string
example: null
nullable: true
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Token unauthorized'
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
-
description: 'Invalid merchant or affiliate authorization'
type: object
example:
data:
message: Unauthorized
properties:
data:
type: object
properties:
message:
type: string
example: Unauthorized
-
description: 'Invalid merchant or affiliate associations'
type: object
example:
data:
message: 'Not associated with affiliate'
properties:
data:
type: object
properties:
message:
type: string
example: 'Not associated with affiliate'
404:
description: 'Invalid sid'
content:
application/json:
schema:
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
tags:
- 'Recurring Payments management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: string
description: 'The ID of the merchant that processed the transactions.'
example: '12345'
name:
type: string
description: 'The name for the recurring payment.'
example: Rent
amount:
type: number
description: 'The amount for the recurring payment in US Dollars and Cents.'
example: 1101.69
start_date:
type: string
description: 'The date the recurring payment should start in the correct format.'
example: '2025-06-12 13:26:00'
end_date:
type: string
description: 'The date the recurring payment should end in the correct format.'
example: '2026-06-12 13:26:00'
nullable: true
recurrence_schedule:
type: string
description: 'The schedule: Weekly, Biweekly, FirstFifteenth, Monthly, Yearly.'
example: Monthly
payment_method:
type: integer
description: 'The ID of the payment method.'
example: 69585
customer_uuid:
type: string
description: 'The UUID of the customer.'
example: 12312312-12312321-12312312-12312312
shipping_address:
type: object
description: ''
example: []
properties:
addr1:
type: string
description: 'Line 1 of the shipping address to be associated with the recurring payment.'
example: '123 Main St.'
nullable: true
addr2:
type: string
description: 'Line 2 of the shipping address to be associated with the recurring payment.'
example: 'apt 1'
nullable: true
city:
type: string
description: 'The city of the shipping address to be associated with the recurring payment.'
example: Alpharetta.
nullable: true
state:
type: string
description: 'The state of the shipping address to be associated with the recurring payment.'
example: GA.
nullable: true
zip:
type: string
description: 'The zip of the shipping address to be associated with the recurring payment.'
example: '12345.'
nullable: true
required:
- sid
- name
- amount
- start_date
- recurrence_schedule
- payment_method
- customer_uuid
/api/recurring-payment/show:
get:
summary: 'Show Recurring Payment'
operationId: showRecurringPayment
description: 'Show details of a scheduled recurring payment.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 1
name: 'Car Was Solutions '
amount: '4,574.99'
start_date: '2024-11-07T05:00:00.000000Z'
end_date: '2026-12-31T05:00:00.000000Z'
recurrence_schedule: Monthly
last_run_date: '2025-12-15T05:00:00.000000Z'
last_run_status: Failed
last_run_failed_count: 3
next_run_date: null
status: Cancelled
paused_until_date: null
customer_uuid: 9a242468-6b4e-4382-a61b-a728fbc8edae
cancelled_at: '2026-06-29T04:00:00.000000Z'
error: DECLINE
payment_method:
id: 7
type: cc
last_four: '4003'
expiration: 09/2029
zip: ''
name_on_card: 'Geo Perez'
shipping_address:
addr1: null
addr2: null
city: null
state: null
zip: null
properties:
data:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: 'Car Was Solutions '
amount:
type: string
example: '4,574.99'
start_date:
type: string
example: '2024-11-07T05:00:00.000000Z'
end_date:
type: string
example: '2026-12-31T05:00:00.000000Z'
recurrence_schedule:
type: string
example: Monthly
last_run_date:
type: string
example: '2025-12-15T05:00:00.000000Z'
last_run_status:
type: string
example: Failed
last_run_failed_count:
type: integer
example: 3
next_run_date:
type: string
example: null
nullable: true
status:
type: string
example: Cancelled
paused_until_date:
type: string
example: null
nullable: true
customer_uuid:
type: string
example: 9a242468-6b4e-4382-a61b-a728fbc8edae
cancelled_at:
type: string
example: '2026-06-29T04:00:00.000000Z'
error:
type: string
example: DECLINE
payment_method:
type: object
properties:
id:
type: integer
example: 7
type:
type: string
example: cc
last_four:
type: string
example: '4003'
expiration:
type: string
example: 09/2029
zip:
type: string
example: ''
name_on_card:
type: string
example: 'Geo Perez'
shipping_address:
type: object
properties:
addr1:
type: string
example: null
nullable: true
addr2:
type: string
example: null
nullable: true
city:
type: string
example: null
nullable: true
state:
type: string
example: null
nullable: true
zip:
type: string
example: null
nullable: true
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Token unauthorized'
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
-
description: 'Invalid merchant or affiliate authorization'
type: object
example:
data:
message: Unauthorized
properties:
data:
type: object
properties:
message:
type: string
example: Unauthorized
-
description: 'Invalid merchant or affiliate associations'
type: object
example:
data:
message: 'Not associated with affiliate'
properties:
data:
type: object
properties:
message:
type: string
example: 'Not associated with affiliate'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'No recurring payment found'
type: object
example:
data:
message: 'No recurring payment found'
properties:
data:
type: object
properties:
message:
type: string
example: 'No recurring payment found'
tags:
- 'Recurring Payments management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: string
description: 'The ID of the merchant that processed the transactions.'
example: '12345'
recurring_payment_id:
type: integer
description: 'The ID of the recurring payment to show.'
example: 12345
required:
- sid
- recurring_payment_id
/api/recurring-payment/delete:
post:
summary: 'Delete Recurring Payment'
operationId: deleteRecurringPayment
description: 'Delete a recurring payment.'
parameters: []
responses:
200:
description: 'Successful Deletion'
content:
application/json:
schema:
type: object
example:
data:
message: 'Recurring payment successfully deleted.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Recurring payment successfully deleted.'
description: 'The message. Example: Recurring payment successfully deleted.'
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Token unauthorized'
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
description: 'The message. Example: Recurring payment successfully deleted.'
-
description: 'Invalid merchant or affiliate authorization'
type: object
example:
data:
message: Unauthorized
properties:
data:
type: object
properties:
message:
type: string
example: Unauthorized
description: 'The message. Example: Recurring payment successfully deleted.'
-
description: 'Invalid merchant or affiliate associations'
type: object
example:
data:
message: 'Not associated with affiliate'
properties:
data:
type: object
properties:
message:
type: string
example: 'Not associated with affiliate'
description: 'The message. Example: Recurring payment successfully deleted.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
description: 'The message. Example: Recurring payment successfully deleted.'
-
description: 'No recurring payment found'
type: object
example:
data:
message: 'No recurring payment found'
properties:
data:
type: object
properties:
message:
type: string
example: 'No recurring payment found'
description: 'The message. Example: Recurring payment successfully deleted.'
tags:
- 'Recurring Payments management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: string
description: 'The ID of the merchant that processed the transactions.'
example: '12345'
recurring_payment_id:
type: integer
description: 'The ID of the recurring payment to show.'
example: 12345
required:
- sid
- recurring_payment_id
/api/subscription-plan/list:
get:
summary: 'List subscription plans'
operationId: listSubscriptionPlans
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: null
name: 'Premium Plan 18824'
description: 'Officiis placeat tempore sed deleniti quibusdam.'
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: u4vb3llhDjZ6dtb2hrgYMPZZT5LrqNruuWjqKZV9
public_url: 'http://app.dimepayments.com/subscribe/u4vb3llhDjZ6dtb2hrgYMPZZT5LrqNruuWjqKZV9'
allow_public: true
created_at: null
items: []
-
id: null
name: 'Annual Support 46267'
description: 'Doloribus dolore qui quos animi.'
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: 79TLf7arZ1fadDVq8TjXaABjCKjUjzPhQGvrrAYB
public_url: 'http://app.dimepayments.com/subscribe/79TLf7arZ1fadDVq8TjXaABjCKjUjzPhQGvrrAYB'
allow_public: true
created_at: null
items: []
links:
prev: null
next: null
meta:
path: /
per_page: 500
next_cursor: null
prev_cursor: null
properties:
data:
type: array
example:
-
id: null
name: 'Premium Plan 18824'
description: 'Officiis placeat tempore sed deleniti quibusdam.'
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: u4vb3llhDjZ6dtb2hrgYMPZZT5LrqNruuWjqKZV9
public_url: 'http://app.dimepayments.com/subscribe/u4vb3llhDjZ6dtb2hrgYMPZZT5LrqNruuWjqKZV9'
allow_public: true
created_at: null
items: []
-
id: null
name: 'Annual Support 46267'
description: 'Doloribus dolore qui quos animi.'
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: 79TLf7arZ1fadDVq8TjXaABjCKjUjzPhQGvrrAYB
public_url: 'http://app.dimepayments.com/subscribe/79TLf7arZ1fadDVq8TjXaABjCKjUjzPhQGvrrAYB'
allow_public: true
created_at: null
items: []
items:
type: object
properties:
id:
type: string
example: null
nullable: true
name:
type: string
example: 'Premium Plan 18824'
description:
type: string
example: 'Officiis placeat tempore sed deleniti quibusdam.'
recurrence_schedule:
type: string
example: Monthly
status:
type: string
example: active
subtotal:
type: integer
example: 0
total:
type: integer
example: 0
token:
type: string
example: u4vb3llhDjZ6dtb2hrgYMPZZT5LrqNruuWjqKZV9
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/u4vb3llhDjZ6dtb2hrgYMPZZT5LrqNruuWjqKZV9'
allow_public:
type: boolean
example: true
created_at:
type: string
example: null
nullable: true
items:
type: array
example: []
links:
type: object
properties:
prev:
type: string
example: null
nullable: true
next:
type: string
example: null
nullable: true
meta:
type: object
properties:
path:
type: string
example: /
per_page:
type: integer
example: 500
next_cursor:
type: string
example: null
nullable: true
prev_cursor:
type: string
example: null
nullable: true
tags:
- 'Subscription Plans management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The merchant SID.'
example: 12345
status:
type: string
description: 'Filter by status (draft, active, archived).'
example: active
required:
- sid
/api/subscription-plan/show:
get:
summary: 'Show a subscription plan'
operationId: showASubscriptionPlan
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
name: 'Monthly Membership 54634'
description: 'Qui commodi incidunt iure odit.'
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: 5FYv4AmGNVIn4xrLC2mIM0etgvst9HSK5UfHGFtU
public_url: 'http://app.dimepayments.com/subscribe/5FYv4AmGNVIn4xrLC2mIM0etgvst9HSK5UfHGFtU'
allow_public: true
created_at: null
items: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
name:
type: string
example: 'Monthly Membership 54634'
description:
type: string
example: 'Qui commodi incidunt iure odit.'
recurrence_schedule:
type: string
example: Monthly
status:
type: string
example: active
subtotal:
type: integer
example: 0
total:
type: integer
example: 0
token:
type: string
example: 5FYv4AmGNVIn4xrLC2mIM0etgvst9HSK5UfHGFtU
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/5FYv4AmGNVIn4xrLC2mIM0etgvst9HSK5UfHGFtU'
allow_public:
type: boolean
example: true
created_at:
type: string
example: null
nullable: true
items:
type: array
example: []
tags:
- 'Subscription Plans management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The merchant SID.'
example: 12345
subscription_plan_id:
type: integer
description: 'The plan id.'
example: 42
required:
- sid
- subscription_plan_id
/api/subscription-plan/create:
post:
summary: 'Create a subscription plan'
operationId: createASubscriptionPlan
description: "The plan is created as a draft. Publish it (or use the merchant UI) before\ncustomers can subscribe."
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
name: 'Community Circle 70546'
description: 'Quos velit et fugiat sunt nihil accusantium harum.'
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: FarDnfLeBHTSdDS6lB6ijBPmGADeFr1VzUverXPC
public_url: 'http://app.dimepayments.com/subscribe/FarDnfLeBHTSdDS6lB6ijBPmGADeFr1VzUverXPC'
allow_public: true
created_at: null
items: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
name:
type: string
example: 'Community Circle 70546'
description:
type: string
example: 'Quos velit et fugiat sunt nihil accusantium harum.'
recurrence_schedule:
type: string
example: Monthly
status:
type: string
example: active
subtotal:
type: integer
example: 0
total:
type: integer
example: 0
token:
type: string
example: FarDnfLeBHTSdDS6lB6ijBPmGADeFr1VzUverXPC
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/FarDnfLeBHTSdDS6lB6ijBPmGADeFr1VzUverXPC'
allow_public:
type: boolean
example: true
created_at:
type: string
example: null
nullable: true
items:
type: array
example: []
tags:
- 'Subscription Plans management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The merchant SID.'
example: 12345
name:
type: string
description: 'The plan name.'
example: 'Monthly Membership'
description:
type: string
description: 'A description.'
example: 'Full access, billed monthly.'
recurrence_schedule:
type: string
description: 'One of Weekly, Biweekly, FirstFifteenth, Monthly, Yearly.'
example: Monthly
allow_public:
type: boolean
description: 'List in the public catalog.'
example: true
lines:
type: array
description: 'At least one line item.'
example:
- []
items:
type: object
properties:
item_id:
type: integer
description: 'A catalog item id owned by the merchant.'
example: 5
name:
type: string
description: ''
example: 'Base membership'
quantity:
type: number
description: ''
example: 1.0
unit_price:
type: number
description: ''
example: 25.0
required:
- item_id
- name
- quantity
- unit_price
required:
- sid
- name
- recurrence_schedule
- lines
/api/subscription-plan/edit:
patch:
summary: 'Update a subscription plan'
operationId: updateASubscriptionPlan
description: "Replaces the plan's fields and line items wholesale. Existing subscribers\nkeep their own snapshot and are unaffected."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
name: 'Community Circle 63526'
description: null
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: zBuTAncUOVz5vIjLrTgQjYrVm6aAlTMnl3XzubQx
public_url: 'http://app.dimepayments.com/subscribe/zBuTAncUOVz5vIjLrTgQjYrVm6aAlTMnl3XzubQx'
allow_public: true
created_at: null
items: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
name:
type: string
example: 'Community Circle 63526'
description:
type: string
example: null
nullable: true
recurrence_schedule:
type: string
example: Monthly
status:
type: string
example: active
subtotal:
type: integer
example: 0
total:
type: integer
example: 0
token:
type: string
example: zBuTAncUOVz5vIjLrTgQjYrVm6aAlTMnl3XzubQx
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/zBuTAncUOVz5vIjLrTgQjYrVm6aAlTMnl3XzubQx'
allow_public:
type: boolean
example: true
created_at:
type: string
example: null
nullable: true
items:
type: array
example: []
tags:
- 'Subscription Plans management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The merchant SID.'
example: 12345
subscription_plan_id:
type: integer
description: 'The plan id.'
example: 42
name:
type: string
description: 'The plan name.'
example: 'Monthly Membership'
recurrence_schedule:
type: string
description: 'One of Weekly, Biweekly, FirstFifteenth, Monthly, Yearly.'
example: Monthly
lines:
type: array
description: 'At least one line item.'
example:
- []
items:
type: object
required:
- sid
- subscription_plan_id
- name
- recurrence_schedule
- lines
/api/subscription-plan/delete:
post:
summary: 'Delete a subscription plan'
operationId: deleteASubscriptionPlan
description: 'Only plans with no subscribers can be deleted; otherwise archive it.'
parameters: []
responses:
200:
description: Deleted
content:
application/json:
schema:
type: object
example:
data:
message: 'Subscription plan deleted'
properties:
data:
type: object
properties:
message:
type: string
example: 'Subscription plan deleted'
422:
description: 'Has subscribers'
content:
application/json:
schema:
type: object
example:
data:
message: 'Cannot delete a plan with subscribers. Archive it instead.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Cannot delete a plan with subscribers. Archive it instead.'
tags:
- 'Subscription Plans management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The merchant SID.'
example: 12345
subscription_plan_id:
type: integer
description: 'The plan id.'
example: 42
required:
- sid
- subscription_plan_id
/api/subscription-plan/publish:
patch:
summary: 'Publish a subscription plan'
operationId: publishASubscriptionPlan
description: "Moves a draft plan to active so customers can subscribe. The plan must be a\ndraft and carry at least one line item."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
name: 'Monthly Membership 80304'
description: 'Commodi incidunt iure odit.'
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: 92vTInBp93IgnKxvdShgpwg12uv9I45psHpXdPmf
public_url: 'http://app.dimepayments.com/subscribe/92vTInBp93IgnKxvdShgpwg12uv9I45psHpXdPmf'
allow_public: true
created_at: null
items: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
name:
type: string
example: 'Monthly Membership 80304'
description:
type: string
example: 'Commodi incidunt iure odit.'
recurrence_schedule:
type: string
example: Monthly
status:
type: string
example: active
subtotal:
type: integer
example: 0
total:
type: integer
example: 0
token:
type: string
example: 92vTInBp93IgnKxvdShgpwg12uv9I45psHpXdPmf
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/92vTInBp93IgnKxvdShgpwg12uv9I45psHpXdPmf'
allow_public:
type: boolean
example: true
created_at:
type: string
example: null
nullable: true
items:
type: array
example: []
tags:
- 'Subscription Plans management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The merchant SID.'
example: 12345
subscription_plan_id:
type: integer
description: 'The plan id.'
example: 42
required:
- sid
- subscription_plan_id
/api/subscription-plan/archive:
patch:
summary: 'Archive a subscription plan'
operationId: archiveASubscriptionPlan
description: "Stops new subscriptions and hides it from the catalog. Existing subscribers\nkeep their subscription."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
name: 'Monthly Membership 14650'
description: null
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: FOWFANjqzYs30OOjdEx85R5r5NZDAUsxKM1RTsEG
public_url: 'http://app.dimepayments.com/subscribe/FOWFANjqzYs30OOjdEx85R5r5NZDAUsxKM1RTsEG'
allow_public: true
created_at: null
items: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
name:
type: string
example: 'Monthly Membership 14650'
description:
type: string
example: null
nullable: true
recurrence_schedule:
type: string
example: Monthly
status:
type: string
example: active
subtotal:
type: integer
example: 0
total:
type: integer
example: 0
token:
type: string
example: FOWFANjqzYs30OOjdEx85R5r5NZDAUsxKM1RTsEG
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/FOWFANjqzYs30OOjdEx85R5r5NZDAUsxKM1RTsEG'
allow_public:
type: boolean
example: true
created_at:
type: string
example: null
nullable: true
items:
type: array
example: []
tags:
- 'Subscription Plans management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The merchant SID.'
example: 12345
subscription_plan_id:
type: integer
description: 'The plan id.'
example: 42
required:
- sid
- subscription_plan_id
/api/subscription-plan/unarchive:
patch:
summary: 'Reactivate a subscription plan'
operationId: reactivateASubscriptionPlan
description: "Moves an archived plan back to draft so it can be reviewed and re-published.\n`allow_public` stays off until the merchant opts back into the catalog."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
name: 'Monthly Membership 62492'
description: 'Iure odit et et modi ipsum nostrum omnis.'
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: t653LV0Rbt2jSoPHCHsjYzrXhxDkznqQdGh6XbxG
public_url: 'http://app.dimepayments.com/subscribe/t653LV0Rbt2jSoPHCHsjYzrXhxDkznqQdGh6XbxG'
allow_public: true
created_at: null
items: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
name:
type: string
example: 'Monthly Membership 62492'
description:
type: string
example: 'Iure odit et et modi ipsum nostrum omnis.'
recurrence_schedule:
type: string
example: Monthly
status:
type: string
example: active
subtotal:
type: integer
example: 0
total:
type: integer
example: 0
token:
type: string
example: t653LV0Rbt2jSoPHCHsjYzrXhxDkznqQdGh6XbxG
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/t653LV0Rbt2jSoPHCHsjYzrXhxDkznqQdGh6XbxG'
allow_public:
type: boolean
example: true
created_at:
type: string
example: null
nullable: true
items:
type: array
example: []
tags:
- 'Subscription Plans management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The merchant SID.'
example: 12345
subscription_plan_id:
type: integer
description: 'The plan id.'
example: 42
required:
- sid
- subscription_plan_id
/api/subscription-plan/subscribe:
post:
summary: 'Subscribe a customer to a plan'
operationId: subscribeACustomerToAPlan
description: "Charges the first payment against the customer's saved payment method and\nenrolls them in the plan. The plan must be active. Fires SUBSCRIPTION_CREATED."
parameters: []
responses:
201:
description: Subscribed
content:
application/json:
schema:
type: object
example:
data:
subscription_id: 10
status: Active
next_run_date: '2026-08-21'
transaction_number: TXN-123
amount: 25.0
properties:
data:
type: object
properties:
subscription_id:
type: integer
example: 10
status:
type: string
example: Active
next_run_date:
type: string
example: '2026-08-21'
transaction_number:
type: string
example: TXN-123
amount:
type: number
example: 25.0
422:
description: 'Charge failed'
content:
application/json:
schema:
type: object
example:
data:
message: 'Card declined'
transaction_number: null
properties:
data:
type: object
properties:
message:
type: string
example: 'Card declined'
transaction_number:
type: string
example: null
nullable: true
tags:
- 'Subscription Plans management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The merchant SID.'
example: 12345
subscription_plan_id:
type: integer
description: 'The plan id.'
example: 42
customer_uuid:
type: string
description: "The customer's uuid."
example: 9b1c...
payment_method:
type: integer
description: 'A saved payment method id for the customer.'
example: 88
required:
- sid
- subscription_plan_id
- customer_uuid
- payment_method
/api/subscription/list:
get:
summary: 'List subscriptions'
operationId: listSubscriptions
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: null
subscription_plan_id: 85
plan_name: 'Premium Plan 24492'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-07-10T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-09-10T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: ef433d87-a54a-4051-a0f8-388506854ad8
error: null
payment_method:
id: 5963
type: cc
last_four: '3642'
expiration: 08/2030
-
id: null
subscription_plan_id: 86
plan_name: 'Monthly Membership 88481'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-07-10T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-09-10T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: c800d6bd-2ffc-40fb-9713-f694da6dac80
error: null
payment_method:
id: 5964
type: cc
last_four: '5053'
expiration: 08/2030
links:
prev: null
next: null
meta:
path: /
per_page: 500
next_cursor: null
prev_cursor: null
properties:
data:
type: array
example:
-
id: null
subscription_plan_id: 85
plan_name: 'Premium Plan 24492'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-07-10T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-09-10T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: ef433d87-a54a-4051-a0f8-388506854ad8
error: null
payment_method:
id: 5963
type: cc
last_four: '3642'
expiration: 08/2030
-
id: null
subscription_plan_id: 86
plan_name: 'Monthly Membership 88481'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-07-10T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-09-10T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: c800d6bd-2ffc-40fb-9713-f694da6dac80
error: null
payment_method:
id: 5964
type: cc
last_four: '5053'
expiration: 08/2030
items:
type: object
properties:
id:
type: string
example: null
nullable: true
subscription_plan_id:
type: integer
example: 85
plan_name:
type: string
example: 'Premium Plan 24492'
amount:
type: string
example: '0.00'
recurrence_schedule:
type: string
example: Monthly
start_date:
type: string
example: '2026-07-10T04:00:00.000000Z'
end_date:
type: string
example: null
nullable: true
last_run_date:
type: string
example: null
nullable: true
last_run_status:
type: string
example: null
nullable: true
last_run_failed_count:
type: integer
example: 0
next_run_date:
type: string
example: '2026-09-10T04:00:00.000000Z'
status:
type: string
example: Active
paused_until_date:
type: string
example: null
nullable: true
cancelled_at:
type: string
example: null
nullable: true
cancelled_by:
type: string
example: null
nullable: true
customer_uuid:
type: string
example: ef433d87-a54a-4051-a0f8-388506854ad8
error:
type: string
example: null
nullable: true
payment_method:
type: object
properties:
id:
type: integer
example: 5963
type:
type: string
example: cc
last_four:
type: string
example: '3642'
expiration:
type: string
example: 08/2030
links:
type: object
properties:
prev:
type: string
example: null
nullable: true
next:
type: string
example: null
nullable: true
meta:
type: object
properties:
path:
type: string
example: /
per_page:
type: integer
example: 500
next_cursor:
type: string
example: null
nullable: true
prev_cursor:
type: string
example: null
nullable: true
tags:
- 'Subscriptions management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The merchant SID.'
example: 12345
required:
- sid
filters:
type: object
description: ''
example: []
properties:
status:
type: string
description: 'Filter by status (Active, Failed, Paused, Cancelled, Ended).'
example: Active
customer_uuid:
type: string
description: "Filter to a single customer's subscriptions."
example: 9c1e6a7e-1f2b-4c3d-8e9f-0a1b2c3d4e5f
/api/subscription/show:
get:
summary: 'Show a subscription'
operationId: showASubscription
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
subscription_plan_id: 87
plan_name: 'Monthly Membership 45193'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-07-10T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-09-10T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: 74155cfd-ae61-48ab-aff5-643078c1ea87
error: null
payment_method:
id: 5965
type: cc
last_four: '8330'
expiration: 08/2030
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
subscription_plan_id:
type: integer
example: 87
plan_name:
type: string
example: 'Monthly Membership 45193'
amount:
type: string
example: '0.00'
recurrence_schedule:
type: string
example: Monthly
start_date:
type: string
example: '2026-07-10T04:00:00.000000Z'
end_date:
type: string
example: null
nullable: true
last_run_date:
type: string
example: null
nullable: true
last_run_status:
type: string
example: null
nullable: true
last_run_failed_count:
type: integer
example: 0
next_run_date:
type: string
example: '2026-09-10T04:00:00.000000Z'
status:
type: string
example: Active
paused_until_date:
type: string
example: null
nullable: true
cancelled_at:
type: string
example: null
nullable: true
cancelled_by:
type: string
example: null
nullable: true
customer_uuid:
type: string
example: 74155cfd-ae61-48ab-aff5-643078c1ea87
error:
type: string
example: null
nullable: true
payment_method:
type: object
properties:
id:
type: integer
example: 5965
type:
type: string
example: cc
last_four:
type: string
example: '8330'
expiration:
type: string
example: 08/2030
tags:
- 'Subscriptions management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The merchant SID.'
example: 12345
subscription_id:
type: integer
description: 'The subscription id.'
example: 42
required:
- sid
- subscription_id
/api/subscription/pause:
patch:
summary: 'Pause a subscription'
operationId: pauseASubscription
description: "Pauses an active subscription until the given date. If `data.pause_until_date`\nis omitted it pauses indefinitely. Fires the `SUBSCRIPTION_PAUSED` webhook."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
subscription_plan_id: 88
plan_name: 'Monthly Membership 30805'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-07-10T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-09-10T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: 368d43dd-24e9-426f-b79c-f14b63c701a2
error: null
payment_method:
id: 5966
type: cc
last_four: '1161'
expiration: 08/2030
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
subscription_plan_id:
type: integer
example: 88
plan_name:
type: string
example: 'Monthly Membership 30805'
amount:
type: string
example: '0.00'
recurrence_schedule:
type: string
example: Monthly
start_date:
type: string
example: '2026-07-10T04:00:00.000000Z'
end_date:
type: string
example: null
nullable: true
last_run_date:
type: string
example: null
nullable: true
last_run_status:
type: string
example: null
nullable: true
last_run_failed_count:
type: integer
example: 0
next_run_date:
type: string
example: '2026-09-10T04:00:00.000000Z'
status:
type: string
example: Active
paused_until_date:
type: string
example: null
nullable: true
cancelled_at:
type: string
example: null
nullable: true
cancelled_by:
type: string
example: null
nullable: true
customer_uuid:
type: string
example: 368d43dd-24e9-426f-b79c-f14b63c701a2
error:
type: string
example: null
nullable: true
payment_method:
type: object
properties:
id:
type: integer
example: 5966
type:
type: string
example: cc
last_four:
type: string
example: '1161'
expiration:
type: string
example: 08/2030
tags:
- 'Subscriptions management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The merchant SID.'
example: 12345
subscription_id:
type: integer
description: 'The subscription id.'
example: 42
pause_until_date:
type: string
description: 'The date to resume on (must be in the future).'
example: '2026-09-01'
required:
- sid
- subscription_id
/api/subscription/resume:
patch:
summary: 'Resume a subscription'
operationId: resumeASubscription
description: "Reactivates a paused subscription and recomputes its next charge date. Fires\nthe `SUBSCRIPTION_RESUMED` webhook."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
subscription_plan_id: 89
plan_name: 'Monthly Membership 93082'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-07-10T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-09-10T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: 2d11e745-fbda-4e48-a9ea-65d839676fc0
error: null
payment_method:
id: 5967
type: cc
last_four: '7849'
expiration: 08/2030
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
subscription_plan_id:
type: integer
example: 89
plan_name:
type: string
example: 'Monthly Membership 93082'
amount:
type: string
example: '0.00'
recurrence_schedule:
type: string
example: Monthly
start_date:
type: string
example: '2026-07-10T04:00:00.000000Z'
end_date:
type: string
example: null
nullable: true
last_run_date:
type: string
example: null
nullable: true
last_run_status:
type: string
example: null
nullable: true
last_run_failed_count:
type: integer
example: 0
next_run_date:
type: string
example: '2026-09-10T04:00:00.000000Z'
status:
type: string
example: Active
paused_until_date:
type: string
example: null
nullable: true
cancelled_at:
type: string
example: null
nullable: true
cancelled_by:
type: string
example: null
nullable: true
customer_uuid:
type: string
example: 2d11e745-fbda-4e48-a9ea-65d839676fc0
error:
type: string
example: null
nullable: true
payment_method:
type: object
properties:
id:
type: integer
example: 5967
type:
type: string
example: cc
last_four:
type: string
example: '7849'
expiration:
type: string
example: 08/2030
tags:
- 'Subscriptions management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The merchant SID.'
example: 12345
subscription_id:
type: integer
description: 'The subscription id.'
example: 42
required:
- sid
- subscription_id
/api/subscription/cancel:
patch:
summary: 'Cancel a subscription'
operationId: cancelASubscription
description: "Permanently cancels a subscription — no further charges are made. Fires the\n`SUBSCRIPTION_CANCELLED` webhook."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
subscription_plan_id: 90
plan_name: 'Monthly Membership 43383'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-07-10T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-09-10T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: 6eb9029c-e4fd-4386-8a75-378b7d407672
error: null
payment_method:
id: 5968
type: cc
last_four: '2895'
expiration: 08/2030
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
subscription_plan_id:
type: integer
example: 90
plan_name:
type: string
example: 'Monthly Membership 43383'
amount:
type: string
example: '0.00'
recurrence_schedule:
type: string
example: Monthly
start_date:
type: string
example: '2026-07-10T04:00:00.000000Z'
end_date:
type: string
example: null
nullable: true
last_run_date:
type: string
example: null
nullable: true
last_run_status:
type: string
example: null
nullable: true
last_run_failed_count:
type: integer
example: 0
next_run_date:
type: string
example: '2026-09-10T04:00:00.000000Z'
status:
type: string
example: Active
paused_until_date:
type: string
example: null
nullable: true
cancelled_at:
type: string
example: null
nullable: true
cancelled_by:
type: string
example: null
nullable: true
customer_uuid:
type: string
example: 6eb9029c-e4fd-4386-8a75-378b7d407672
error:
type: string
example: null
nullable: true
payment_method:
type: object
properties:
id:
type: integer
example: 5968
type:
type: string
example: cc
last_four:
type: string
example: '2895'
expiration:
type: string
example: 08/2030
tags:
- 'Subscriptions management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The merchant SID.'
example: 12345
subscription_id:
type: integer
description: 'The subscription id.'
example: 42
required:
- sid
- subscription_id
/api/zapier/new-customers:
get:
summary: 'Get New Customers'
operationId: getNewCustomers
description: 'Get a list of all new customers since the last time it was checked.'
parameters: []
responses:
200:
description: 'Successful Listing'
content:
application/json:
schema:
type: object
example:
data:
-
id: 1
first_name: John
last_name: Doe
phone: '1234567890'
email: email@email.com
addr1: '123 Main St'
addr2: ''
addr3: ''
city: Anytown
state: CA
zip: '12345'
country: US
properties:
data:
type: array
example:
-
id: 1
first_name: John
last_name: Doe
phone: '1234567890'
email: email@email.com
addr1: '123 Main St'
addr2: ''
addr3: ''
city: Anytown
state: CA
zip: '12345'
country: US
items:
type: object
properties:
id:
type: integer
example: 1
description: "Customer's"
first_name:
type: string
example: John
description: "Customer's first name"
last_name:
type: string
example: Doe
description: "Customer's last name"
phone:
type: string
example: '1234567890'
description: "Customer's phone number"
email:
type: string
example: email@email.com
description: "Customer's"
addr1:
type: string
example: '123 Main St'
description: "Customer's address line 1"
addr2:
type: string
example: ''
description: "Customer's address line 2"
addr3:
type: string
example: ''
description: "Customer's address line 3"
city:
type: string
example: Anytown
description: "Customer's"
state:
type: string
example: CA
description: "Customer's"
zip:
type: string
example: '12345'
description: "Customer's zip code"
country:
type: string
example: US
description: "Customer's"
401:
description: 'Token permission error'
content:
application/json:
schema:
type: object
example:
message: Unauthorized
properties:
message:
type: string
example: Unauthorized
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Merchant not found'
type: object
example:
message: 'Merchant not found'
properties:
message:
type: string
example: 'Merchant not found'
-
description: 'Transactions not found'
type: object
example:
message: 'No transactions found'
properties:
message:
type: string
example: 'No transactions found'
tags:
- Zapier
/api/zapier/transactions:
get:
summary: 'Get Transactions'
operationId: getTransactions
description: 'Get a list of all transactions for a Merchant'
parameters: []
responses:
200:
description: 'Successful Listing'
content:
application/json:
schema:
type: array
items:
type: object
properties:
amount:
type: string
example: '100.00'
business:
type: string
example: 'Acme Inc'
transaction_date:
type: string
example: '2020-10-15 12:00:00'
customer_uuid:
type: string
example: '1234567890'
first_name:
type: string
example: John
last_name:
type: string
example: Doe
customer_phone:
type: string
example: '1234567890'
customer_email:
type: string
example: email@email.com
example:
-
amount: '100.00'
business: 'Acme Inc'
transaction_date: '2020-10-15 12:00:00'
customer_uuid: '1234567890'
first_name: John
last_name: Doe
customer_phone: '1234567890'
customer_email: email@email.com
-
amount: '100.00'
business: 'Acme Inc'
transaction_date: '2020-10-15 12:00:00'
customer_uuid: '1234567890'
first_name: John
last_name: Doe
customer_phone: '1234567890'
customer_email: email@email.com
401:
description: 'Token permission error'
content:
application/json:
schema:
type: object
example:
message: 'Permission denied'
properties:
message:
type: string
example: 'Permission denied'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Merchant not found'
type: object
example:
message: 'Merchant not found'
properties:
message:
type: string
example: 'Merchant not found'
-
description: 'Transactions not found'
type: array
items:
type: object
example: []
tags:
- Zapier
'/api/zapier/transactions/{phone}':
get:
summary: 'Get Transactions by Customer'
operationId: getTransactionsByCustomer
description: "Get a list of all transactions for a given customer using their phone number\n\n "
parameters: []
responses:
200:
description: 'Successful Listing'
content:
application/json:
schema:
type: array
items:
type: object
properties:
amount:
type: string
example: '100.00'
description: Transaction
transaction_date:
type: string
example: '2020-10-15 12:00:00'
description: Transaction
invoice_number:
type: string
example: '1234567890'
description: 'Transaction invoice number'
first_name:
type: string
example: John
description: "Customer's first name"
last_name:
type: string
example: Doe
description: "Customer's first name"
phone:
type: string
example: '1234567890'
description: "Customer's phone number"
email:
type: string
example: email@email.com
description: "Customer's email address"
example:
-
amount: '100.00'
transaction_date: '2020-10-15 12:00:00'
invoice_number: '1234567890'
first_name: John
last_name: Doe
phone: '1234567890'
email: email@email.com
400:
description: 'Invalid input data'
content:
application/json:
schema:
type: object
example:
data.message: 'Can only contain last days or start and end date'
properties:
data.message:
type: string
example: 'Can only contain last days or start and end date'
401:
description: 'Token permission error'
content:
application/json:
schema:
type: object
example:
message: 'Permission denied.'
properties:
message:
type: string
example: 'Permission denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Merchant not found'
type: object
example:
message: 'Merchant not found'
properties:
message:
type: string
example: 'Merchant not found'
-
description: 'Transactions not found'
type: array
items:
type: object
example: []
tags:
- Zapier
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
start_date:
type: string
description: 'in the form of YYYY-MM-DD'
example: '2020-10-15'
end_date:
type: string
description: 'in the form of YYYY-MM-DD'
example: '2020-10-15'
last_days:
type: integer
description: 'number of days'
example: 90
parameters:
-
in: path
name: phone
description: ''
example: 1
required: true
schema:
type: integer
/api/zapier/new-transactions:
get:
summary: 'Get Most Recent Transaction'
operationId: getMostRecentTransaction
description: 'Get the most recent transactions details'
parameters: []
responses:
200:
description: 'Successful Listing'
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: integer
example: 1
description: Transaction
invoice_number:
type: string
example: '1234567890'
description: "Customer's"
amount:
type: string
example: '100.00'
description: Transaction
transaction_date:
type: string
example: '2020-10-15 12:00:00'
description: Transaction
first_name:
type: string
example: John
description: "Customer's first name"
last_name:
type: string
example: Doe
description: "Customer's first name"
phone:
type: string
example: '1234567890'
description: "Customer's phone number"
email:
type: string
example: email@email.com
description: "Customer's email address"
example:
-
id: 1
invoice_number: '1234567890'
amount: '100.00'
transaction_date: '2020-10-15 12:00:00'
first_name: John
last_name: Doe
phone: '1234567890'
email: email@email.com
401:
description: 'Token permission error'
content:
application/json:
schema:
type: object
example:
message: 'Permission denied'
properties:
message:
type: string
example: 'Permission denied'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Merchant not found'
type: object
example:
message: 'Merchant not found'
properties:
message:
type: string
example: 'Merchant not found'
-
description: 'Transactions not found'
type: array
items:
type: object
example: []
tags:
- Zapier