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
issue_date: '2026-07-28'
due_date: '2026-08-12'
is_overdue: false
public_url: 'http://app.dimepayments.com/invoice/XepzeEH4j3UoSX9YjR1uEOXebXjwWCBJCIj9MZMR'
-
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
issue_date: '2026-07-27'
due_date: '2026-08-11'
is_overdue: false
public_url: 'http://app.dimepayments.com/invoice/j8dXIMrfoaeUtCV69NHzOusR3vQkqUeFhdjhABP2'
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
issue_date: '2026-07-28'
due_date: '2026-08-12'
is_overdue: false
public_url: 'http://app.dimepayments.com/invoice/XepzeEH4j3UoSX9YjR1uEOXebXjwWCBJCIj9MZMR'
-
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
issue_date: '2026-07-27'
due_date: '2026-08-11'
is_overdue: false
public_url: 'http://app.dimepayments.com/invoice/j8dXIMrfoaeUtCV69NHzOusR3vQkqUeFhdjhABP2'
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'
issue_date:
type: string
example: '2026-07-28'
description: 'The issue date (Y-m-d). Example: 2026-07-01'
due_date:
type: string
example: '2026-08-12'
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/XepzeEH4j3UoSX9YjR1uEOXebXjwWCBJCIj9MZMR'
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: mpXHIdVBlykMQYG4vNjmZoUEMnSliGSCFrVc2zzK
invoice_number: INV-92439
status: draft
payment_terms: net_15
issue_date: '2026-08-03'
due_date: '2026-08-18'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
thank_you_note: 'Ipsum nostrum omnis autem et consequatur aut dolores enim.'
public_url: 'http://app.dimepayments.com/invoice/mpXHIdVBlykMQYG4vNjmZoUEMnSliGSCFrVc2zzK'
customer:
id: 15604
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: mpXHIdVBlykMQYG4vNjmZoUEMnSliGSCFrVc2zzK
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-03'
description: 'The issue date (Y-m-d). Example: 2026-07-01'
due_date:
type: string
example: '2026-08-18'
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'
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/mpXHIdVBlykMQYG4vNjmZoUEMnSliGSCFrVc2zzK'
description: 'The public pay link. Example: https://example.test/invoice/abcd'
customer:
type: object
properties:
id:
type: integer
example: 15604
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, paid_at, method, transaction_id).'
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: 53CLp7JZSNvuBBHZIcUGwdbKZGuM6m7J8QRNFIbl
invoice_number: INV-26855
status: draft
payment_terms: net_15
issue_date: '2026-07-09'
due_date: '2026-07-24'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
thank_you_note: 'Sunt nihil accusantium harum mollitia.'
public_url: 'http://app.dimepayments.com/invoice/53CLp7JZSNvuBBHZIcUGwdbKZGuM6m7J8QRNFIbl'
customer:
id: 15605
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: 53CLp7JZSNvuBBHZIcUGwdbKZGuM6m7J8QRNFIbl
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-09'
due_date:
type: string
example: '2026-07-24'
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
thank_you_note:
type: string
example: 'Sunt nihil accusantium harum mollitia.'
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/53CLp7JZSNvuBBHZIcUGwdbKZGuM6m7J8QRNFIbl'
customer:
type: object
properties:
id:
type: integer
example: 15605
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
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: X6sqDz3XlW7gsjwBxItGTY9g1qEUKkq2NzZctMa9
invoice_number: INV-23164
status: draft
payment_terms: net_15
issue_date: '2026-07-09'
due_date: '2026-07-24'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
thank_you_note: 'Nihil accusantium harum mollitia modi deserunt.'
public_url: 'http://app.dimepayments.com/invoice/X6sqDz3XlW7gsjwBxItGTY9g1qEUKkq2NzZctMa9'
customer:
id: 15606
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: X6sqDz3XlW7gsjwBxItGTY9g1qEUKkq2NzZctMa9
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-09'
due_date:
type: string
example: '2026-07-24'
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
thank_you_note:
type: string
example: 'Nihil accusantium harum mollitia modi deserunt.'
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/X6sqDz3XlW7gsjwBxItGTY9g1qEUKkq2NzZctMa9'
customer:
type: object
properties:
id:
type: integer
example: 15606
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
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: Gjl1MPv91EFdFm4iK0QmUhWv4BxLLKmv3YtdZzzP
invoice_number: INV-47352
status: draft
payment_terms: net_15
issue_date: '2026-08-03'
due_date: '2026-08-18'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
thank_you_note: 'Nostrum omnis autem et consequatur aut.'
public_url: 'http://app.dimepayments.com/invoice/Gjl1MPv91EFdFm4iK0QmUhWv4BxLLKmv3YtdZzzP'
customer:
id: 15607
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: Gjl1MPv91EFdFm4iK0QmUhWv4BxLLKmv3YtdZzzP
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-03'
due_date:
type: string
example: '2026-08-18'
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
thank_you_note:
type: string
example: 'Nostrum omnis autem et consequatur aut.'
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/Gjl1MPv91EFdFm4iK0QmUhWv4BxLLKmv3YtdZzzP'
customer:
type: object
properties:
id:
type: integer
example: 15607
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: T27cLLegtmHHYvZmC4r7XBPQWHSL8RyU7XMoXM67
invoice_number: INV-40640
status: draft
payment_terms: net_15
issue_date: '2026-08-03'
due_date: '2026-08-18'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/T27cLLegtmHHYvZmC4r7XBPQWHSL8RyU7XMoXM67'
customer:
id: 15608
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: T27cLLegtmHHYvZmC4r7XBPQWHSL8RyU7XMoXM67
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-03'
due_date:
type: string
example: '2026-08-18'
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
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/T27cLLegtmHHYvZmC4r7XBPQWHSL8RyU7XMoXM67'
customer:
type: object
properties:
id:
type: integer
example: 15608
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: vc0guo4OB0QlNjfGVNNVhtBJkNvBZKgFPmehbYe0
invoice_number: INV-35644
status: draft
payment_terms: net_15
issue_date: '2026-08-03'
due_date: '2026-08-18'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/vc0guo4OB0QlNjfGVNNVhtBJkNvBZKgFPmehbYe0'
customer:
id: 15609
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: vc0guo4OB0QlNjfGVNNVhtBJkNvBZKgFPmehbYe0
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-03'
due_date:
type: string
example: '2026-08-18'
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
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/vc0guo4OB0QlNjfGVNNVhtBJkNvBZKgFPmehbYe0'
customer:
type: object
properties:
id:
type: integer
example: 15609
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: FlLAAYVNpWegPuPN5z29RKlFf0gEMDMZHzUWEdsE
invoice_number: INV-8317
status: draft
payment_terms: net_15
issue_date: '2026-08-03'
due_date: '2026-08-18'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/FlLAAYVNpWegPuPN5z29RKlFf0gEMDMZHzUWEdsE'
customer:
id: 15610
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: FlLAAYVNpWegPuPN5z29RKlFf0gEMDMZHzUWEdsE
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-03'
due_date:
type: string
example: '2026-08-18'
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
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/FlLAAYVNpWegPuPN5z29RKlFf0gEMDMZHzUWEdsE'
customer:
type: object
properties:
id:
type: integer
example: 15610
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), no cover fee is added, and on approval the invoice status/payment\nhistory/per-line classification are updated exactly as a customer payment.\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: B8rUFWhPsmMkG5bHFmi7grg537n1StbRytOeIiep
invoice_number: INV-98251
status: draft
payment_terms: net_15
issue_date: '2026-08-03'
due_date: '2026-08-18'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
thank_you_note: 'Consequatur aut dolores enim non facere tempora.'
public_url: 'http://app.dimepayments.com/invoice/B8rUFWhPsmMkG5bHFmi7grg537n1StbRytOeIiep'
customer:
id: 15611
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: B8rUFWhPsmMkG5bHFmi7grg537n1StbRytOeIiep
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-03'
due_date:
type: string
example: '2026-08-18'
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
thank_you_note:
type: string
example: 'Consequatur aut dolores enim non facere tempora.'
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/B8rUFWhPsmMkG5bHFmi7grg537n1StbRytOeIiep'
customer:
type: object
properties:
id:
type: integer
example: 15611
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: 6QQ0ZOAA7l0VmBGgGv3XWJf9w8Q3WvAZrfz09Pao
invoice_number: INV-82093
status: draft
payment_terms: net_15
issue_date: '2026-08-03'
due_date: '2026-08-18'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/6QQ0ZOAA7l0VmBGgGv3XWJf9w8Q3WvAZrfz09Pao'
customer:
id: 15612
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: 6QQ0ZOAA7l0VmBGgGv3XWJf9w8Q3WvAZrfz09Pao
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-03'
due_date:
type: string
example: '2026-08-18'
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
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/6QQ0ZOAA7l0VmBGgGv3XWJf9w8Q3WvAZrfz09Pao'
customer:
type: object
properties:
id:
type: integer
example: 15612
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: ZNQsiY56lvQ8f4gGS10FLKdS0nzEqgCR0akctR04
invoice_number: INV-52976
status: draft
payment_terms: net_15
issue_date: '2026-08-03'
due_date: '2026-08-18'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/ZNQsiY56lvQ8f4gGS10FLKdS0nzEqgCR0akctR04'
customer:
id: 15613
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: ZNQsiY56lvQ8f4gGS10FLKdS0nzEqgCR0akctR04
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-03'
due_date:
type: string
example: '2026-08-18'
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
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/ZNQsiY56lvQ8f4gGS10FLKdS0nzEqgCR0akctR04'
customer:
type: object
properties:
id:
type: integer
example: 15613
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: aWXht3Akh1fONUs3XH1m6cyx4i9Nzg5LY2l5uFGE
invoice_number: INV-66650
status: draft
payment_terms: net_15
issue_date: '2026-08-03'
due_date: '2026-08-18'
is_overdue: false
subtotal: 0
total: 0
amount_paid: 0
balance: 0
allow_partial_payment: true
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/aWXht3Akh1fONUs3XH1m6cyx4i9Nzg5LY2l5uFGE'
customer:
id: 15614
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: aWXht3Akh1fONUs3XH1m6cyx4i9Nzg5LY2l5uFGE
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-03'
due_date:
type: string
example: '2026-08-18'
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
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/aWXht3Akh1fONUs3XH1m6cyx4i9Nzg5LY2l5uFGE'
customer:
type: object
properties:
id:
type: integer
example: 15614
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
start_date: '2026-08-05'
end_date: null
next_run_date: '2026-09-05'
last_run_date: null
customer_name: 'Lafayette Considine'
-
id: null
status: Active
recurrence_schedule: Monthly
payment_terms: net_15
start_date: '2026-08-05'
end_date: null
next_run_date: '2026-09-05'
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
start_date: '2026-08-05'
end_date: null
next_run_date: '2026-09-05'
last_run_date: null
customer_name: 'Lafayette Considine'
-
id: null
status: Active
recurrence_schedule: Monthly
payment_terms: net_15
start_date: '2026-08-05'
end_date: null
next_run_date: '2026-09-05'
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'
start_date:
type: string
example: '2026-08-05'
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-05'
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
start_date: '2026-08-05'
end_date: null
next_run_date: '2026-09-05'
last_run_date: null
thank_you_note: null
customer:
id: 15617
name: 'Marcelo Predovic'
email: kconsidine@example.net
items: []
upcoming_run_dates:
- '2026-09-05'
- '2026-10-05'
- '2026-11-05'
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'
start_date:
type: string
example: '2026-08-05'
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-05'
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: 15617
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-05'
- '2026-10-05'
- '2026-11-05'
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
start_date: '2026-08-05'
end_date: null
next_run_date: '2026-09-05'
last_run_date: null
thank_you_note: null
customer:
id: 15618
name: 'Pauline Runte'
email: alayna44@example.org
items: []
upcoming_run_dates:
- '2026-09-05'
- '2026-10-05'
- '2026-11-05'
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
start_date:
type: string
example: '2026-08-05'
end_date:
type: string
example: null
nullable: true
next_run_date:
type: string
example: '2026-09-05'
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: 15618
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-05'
- '2026-10-05'
- '2026-11-05'
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
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
start_date: '2026-08-05'
end_date: null
next_run_date: '2026-09-05'
last_run_date: null
thank_you_note: null
customer:
id: 15619
name: 'Marcelo Predovic'
email: micaela88@example.org
items: []
upcoming_run_dates:
- '2026-09-05'
- '2026-10-05'
- '2026-11-05'
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
start_date:
type: string
example: '2026-08-05'
end_date:
type: string
example: null
nullable: true
next_run_date:
type: string
example: '2026-09-05'
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: 15619
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-05'
- '2026-10-05'
- '2026-11-05'
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: 'Annual Support 20263'
description: 'Sint vel quasi aliquid ipsam incidunt eligendi et.'
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: 60wtj2NRTrNgTcgtHoFjR4QyOkzY0DX0F8QEGGf9
public_url: 'http://app.dimepayments.com/subscribe/60wtj2NRTrNgTcgtHoFjR4QyOkzY0DX0F8QEGGf9'
allow_public: true
created_at: null
items: []
-
id: null
name: 'Annual Support 65890'
description: 'Minima velit voluptatem qui accusantium.'
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: c4DCXcw9Mkyg8iuT8xVRayrKXtQHbKVqlqBlHlSw
public_url: 'http://app.dimepayments.com/subscribe/c4DCXcw9Mkyg8iuT8xVRayrKXtQHbKVqlqBlHlSw'
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: 'Annual Support 20263'
description: 'Sint vel quasi aliquid ipsam incidunt eligendi et.'
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: 60wtj2NRTrNgTcgtHoFjR4QyOkzY0DX0F8QEGGf9
public_url: 'http://app.dimepayments.com/subscribe/60wtj2NRTrNgTcgtHoFjR4QyOkzY0DX0F8QEGGf9'
allow_public: true
created_at: null
items: []
-
id: null
name: 'Annual Support 65890'
description: 'Minima velit voluptatem qui accusantium.'
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: c4DCXcw9Mkyg8iuT8xVRayrKXtQHbKVqlqBlHlSw
public_url: 'http://app.dimepayments.com/subscribe/c4DCXcw9Mkyg8iuT8xVRayrKXtQHbKVqlqBlHlSw'
allow_public: true
created_at: null
items: []
items:
type: object
properties:
id:
type: string
example: null
nullable: true
name:
type: string
example: 'Annual Support 20263'
description:
type: string
example: 'Sint vel quasi aliquid ipsam incidunt eligendi et.'
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: 60wtj2NRTrNgTcgtHoFjR4QyOkzY0DX0F8QEGGf9
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/60wtj2NRTrNgTcgtHoFjR4QyOkzY0DX0F8QEGGf9'
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: vIDIRwkNB27CwsENiKr38AYdPeZytOJa8XoDhqrm
public_url: 'http://app.dimepayments.com/subscribe/vIDIRwkNB27CwsENiKr38AYdPeZytOJa8XoDhqrm'
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: vIDIRwkNB27CwsENiKr38AYdPeZytOJa8XoDhqrm
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/vIDIRwkNB27CwsENiKr38AYdPeZytOJa8XoDhqrm'
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: 4jkvh5IzZIKDZrX4rrLl4wXo9qy2pe5mrUjsG8Y1
public_url: 'http://app.dimepayments.com/subscribe/4jkvh5IzZIKDZrX4rrLl4wXo9qy2pe5mrUjsG8Y1'
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: 4jkvh5IzZIKDZrX4rrLl4wXo9qy2pe5mrUjsG8Y1
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/4jkvh5IzZIKDZrX4rrLl4wXo9qy2pe5mrUjsG8Y1'
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: 66wzWht5SMJNL6taEuGiwf18bA5gSvfrIpYilBV4
public_url: 'http://app.dimepayments.com/subscribe/66wzWht5SMJNL6taEuGiwf18bA5gSvfrIpYilBV4'
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: 66wzWht5SMJNL6taEuGiwf18bA5gSvfrIpYilBV4
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/66wzWht5SMJNL6taEuGiwf18bA5gSvfrIpYilBV4'
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: 5DNHPKykkk7DTbyFSMxAuxoP3LmotnlkifsgA1V8
public_url: 'http://app.dimepayments.com/subscribe/5DNHPKykkk7DTbyFSMxAuxoP3LmotnlkifsgA1V8'
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: 5DNHPKykkk7DTbyFSMxAuxoP3LmotnlkifsgA1V8
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/5DNHPKykkk7DTbyFSMxAuxoP3LmotnlkifsgA1V8'
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: 5v56HE0hPxQDoryDxFRsf5A5crj0wgbh4zz5ImIZ
public_url: 'http://app.dimepayments.com/subscribe/5v56HE0hPxQDoryDxFRsf5A5crj0wgbh4zz5ImIZ'
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: 5v56HE0hPxQDoryDxFRsf5A5crj0wgbh4zz5ImIZ
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/5v56HE0hPxQDoryDxFRsf5A5crj0wgbh4zz5ImIZ'
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: yAYxy8w229nZVwlZZgyCCry9ybRuhSxnzFroKM7I
public_url: 'http://app.dimepayments.com/subscribe/yAYxy8w229nZVwlZZgyCCry9ybRuhSxnzFroKM7I'
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: yAYxy8w229nZVwlZZgyCCry9ybRuhSxnzFroKM7I
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/yAYxy8w229nZVwlZZgyCCry9ybRuhSxnzFroKM7I'
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: 55
plan_name: 'Premium Plan 24492'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-07-05T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-09-05T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: a693e8c5-c580-41c3-83e9-8e70b96e06af
error: null
payment_method:
id: 5912
type: cc
last_four: '3642'
expiration: 08/2030
-
id: null
subscription_plan_id: 56
plan_name: 'Monthly Membership 88481'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-07-05T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-09-05T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: cb39ad44-9076-424f-8aeb-732995416827
error: null
payment_method:
id: 5913
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: 55
plan_name: 'Premium Plan 24492'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-07-05T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-09-05T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: a693e8c5-c580-41c3-83e9-8e70b96e06af
error: null
payment_method:
id: 5912
type: cc
last_four: '3642'
expiration: 08/2030
-
id: null
subscription_plan_id: 56
plan_name: 'Monthly Membership 88481'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-07-05T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-09-05T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: cb39ad44-9076-424f-8aeb-732995416827
error: null
payment_method:
id: 5913
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: 55
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-05T04: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-05T04: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: a693e8c5-c580-41c3-83e9-8e70b96e06af
error:
type: string
example: null
nullable: true
payment_method:
type: object
properties:
id:
type: integer
example: 5912
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: 57
plan_name: 'Monthly Membership 45193'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-07-05T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-09-05T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: 824dfac0-b2b5-4725-a885-7369fcf2c1ae
error: null
payment_method:
id: 5914
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: 57
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-05T04: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-05T04: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: 824dfac0-b2b5-4725-a885-7369fcf2c1ae
error:
type: string
example: null
nullable: true
payment_method:
type: object
properties:
id:
type: integer
example: 5914
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: 58
plan_name: 'Monthly Membership 30805'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-07-05T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-09-05T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: 9f733ba6-14d5-43be-bd56-34f5c76f730d
error: null
payment_method:
id: 5915
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: 58
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-05T04: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-05T04: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: 9f733ba6-14d5-43be-bd56-34f5c76f730d
error:
type: string
example: null
nullable: true
payment_method:
type: object
properties:
id:
type: integer
example: 5915
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: 59
plan_name: 'Monthly Membership 93082'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-07-05T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-09-05T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: 578c4533-34cd-4683-b8ae-37162027228f
error: null
payment_method:
id: 5916
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: 59
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-05T04: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-05T04: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: 578c4533-34cd-4683-b8ae-37162027228f
error:
type: string
example: null
nullable: true
payment_method:
type: object
properties:
id:
type: integer
example: 5916
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: 60
plan_name: 'Monthly Membership 43383'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-07-05T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-09-05T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: c67ad5df-c161-447c-856a-1f967b2f15d1
error: null
payment_method:
id: 5917
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: 60
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-05T04: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-05T04: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: c67ad5df-c161-447c-856a-1f967b2f15d1
error:
type: string
example: null
nullable: true
payment_method:
type: object
properties:
id:
type: integer
example: 5917
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