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: 'Chargeback management'
description: ''
-
name: 'Document management'
description: ''
-
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: ''
sid: '00001'
ein: ''
mcc: '8999'
slug: pay
pub_api_key: pkapi_prod_B5n2hQhy6uAp1rLjqs
processor_mid: '650000012366624'
active: true
pipeline_stage: null
pipeline_lost_at: null
active_at: null
manual_only_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: ''
sid: '00001'
ein: ''
mcc: '8999'
slug: pay
pub_api_key: pkapi_prod_B5n2hQhy6uAp1rLjqs
processor_mid: '650000012366624'
active: true
pipeline_stage: null
pipeline_lost_at: null
active_at: null
manual_only_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: ''
sid: '00001'
ein: ''
mcc: '8999'
slug: pay
pub_api_key: pkapi_prod_B5n2hQhy6uAp1rLjqs
processor_mid: '650000012366624'
active: true
pipeline_stage: null
pipeline_lost_at: null
active_at: null
manual_only_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: ''
sid: '00001'
ein: ''
mcc: '8999'
slug: pay
pub_api_key: pkapi_prod_B5n2hQhy6uAp1rLjqs
processor_mid: '650000012366624'
active: true
pipeline_stage: null
pipeline_lost_at: null
active_at: null
manual_only_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: ''
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.'
pipeline_stage:
type: string
example: null
nullable: true
pipeline_lost_at:
type: string
example: null
nullable: true
active_at:
type: string
example: null
description: 'date The date the merchant was made active.'
manual_only_at:
type: string
example: null
nullable: true
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.'
409:
description: 'Looks like a merchant you already have'
content:
application/json:
schema:
type: object
example:
data:
message: 'You already have one or more merchants that look like this one. ...'
possible_duplicates:
-
sid: '00031'
name: 'Abundance Ministries'
matched_on: 'Same business name'
onboarded: true
properties:
data:
type: object
properties:
message:
type: string
example: 'You already have one or more merchants that look like this one. ...'
possible_duplicates:
type: array
example:
-
sid: '00031'
name: 'Abundance Ministries'
matched_on: 'Same business name'
onboarded: true
items:
type: object
properties:
sid:
type: string
example: '00031'
name:
type: string
example: 'Abundance Ministries'
matched_on:
type: string
example: 'Same business name'
onboarded:
type: boolean
example: true
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: 'Two-character state code; a full name such as "Virginia" is accepted and stored as its code.'
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
acknowledge_duplicate:
type: boolean
description: 'optional Set true to create the merchant even though one of your existing merchants looks like it. Only needed after a 409.'
example: false
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: 'Two-character state code; a full name such as "Virginia" is accepted and stored as its code.'
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 30 days (App\\Models\\Company::APPLICATION_LINK_DAYS)."
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 30 days.'
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 merchant 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 merchant 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 merchant 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 merchant 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 merchant 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. Two-character state code; a full name such as "Virginia" is accepted and stored as its code.'
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 Two-character state code; a full name such as "Virginia" is accepted and stored as its code.'
example: GA
zip:
type: integer
description: 'optional The zip code. Max: 5.'
example: 12345
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 Two-character state code; a full name such as "Virginia" is accepted and stored as its code.'
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 Two-character state code; a full name such as "Virginia" is accepted and stored as its code.'
example: GA
nullable: true
zip:
type: integer
description: 'optional The zip code. 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: 'Two-character state code, or an empty string. A full name such as "Virginia" is accepted and stored as its code.'
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/authorize:
post:
summary: 'Authorize a Credit Card'
operationId: authorizeACreditCard
description: "Places a hold on a credit card without moving any money. The authorized amount is reserved\nagainst the cardholder's available credit, and no funds reach the merchant until the\nauthorization is captured via the capture endpoint.\n\nUse this when the final amount is not yet known or goods have not shipped. Capture the\nauthorization once you are ready to collect. An authorization that is never captured is\nreleased by the card issuer on its own schedule, so capture promptly — typically within 24\nhours — to avoid the hold expiring.\n\nThe `transaction_number` in the response is your handle on the authorization: pass it as\n`data.transaction_id` to the capture endpoint to collect, or to the void endpoint to release.\n\n**Releasing the hold.** If the sale falls through, release the held funds instead of\ncapturing by calling the void endpoint — `PATCH /api/transaction/void`:\n\n```json\n{ \"data\": { \"sid\": 1234567, \"transaction_type\": \"CC\", \"transaction_id\": \"1234567890\" } }\n```\n\n`data.transaction_type` must be `CC`. Voiding is gated by its own separate API key\npermission, not by this one, so make sure your key carries it if you need to release holds.\n\n**Two ways to supply the card, pick one.** Either send a `token` from the tokenize-card\nendpoint, or send the raw card fields — `card_number`, `expiration_date`, `cardholder_name` and\n`billing_address.zip`, all four of which are required only when no `token` is present, and\nignored when one is. Sending raw card data requires PCI compliance (an AoC on file with Dime\nPayments); a token does not, because no card number is transmitted."
parameters: []
responses:
200:
description: 'Successful Authorization'
content:
application/json:
schema:
type: object
example:
data:
transaction_type: 'Credit Card'
transaction_status: Pending
transaction_status_description: Pending
transaction_number: '1234567890'
transaction_date: '2020-01-01'
fund_date: ''
settle_date: ''
amount: '100.50'
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: ''
parent_transaction_info_id: ''
billing_address:
first_name: John
last_name: Doe
addr1: '123 Main St'
addr2: 'Suite 100'
city: 'New York'
state: NY
zip: '10001'
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'
description: 'ACH or Credit Card.'
transaction_status:
type: string
example: Pending
description: 'The status of the authorization.'
transaction_status_description:
type: string
example: Pending
description: 'The description of the transaction status.'
transaction_number:
type: string
example: '1234567890'
description: 'The identifier to pass to the capture and void endpoints as data.transaction_id.'
transaction_date:
type: string
example: '2020-01-01'
description: 'The date the authorization was processed.'
fund_date:
type: string
example: ''
description: 'Not applicable until the authorization is captured.'
settle_date:
type: string
example: ''
description: 'Not applicable until the authorization is captured.'
amount:
type: string
example: '100.50'
description: 'The amount authorized, in USD.'
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 authorization.'
transaction_info_id:
type: string
example: ''
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: 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.'
zip:
type: string
example: '10001'
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: ''
content:
application/json:
schema:
oneOf:
-
description: 'Failed validation'
type: object
example:
errors:
data.amount:
- 'The data.amount field is required.'
properties:
errors:
type: object
properties:
data.amount:
type: array
example:
- 'The data.amount field is required.'
items:
type: string
-
description: 'Processor declined the authorization'
type: object
example:
data:
transaction_type: 'Credit Card'
transaction_status: ''
transaction_status_description: ''
transaction_number: ''
amount: '100.50'
status_code: '05'
status_text: DECLINE
pending: false
properties:
data:
type: object
properties:
transaction_type:
type: string
example: 'Credit Card'
description: 'ACH or Credit Card.'
transaction_status:
type: string
example: ''
description: 'The status of the authorization.'
transaction_status_description:
type: string
example: ''
description: 'The description of the transaction status.'
transaction_number:
type: string
example: ''
description: 'The identifier to pass to the capture and void endpoints as data.transaction_id.'
amount:
type: string
example: '100.50'
description: 'The amount authorized, in USD.'
status_code:
type: string
example: '05'
description: 'Response code from processor.'
status_text:
type: string
example: DECLINE
description: 'Response text from processor.'
pending:
type: boolean
example: false
description: 'The pending status of the authorization.'
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 association'
type: object
example:
data:
message: 'Not associated with Affiliate'
properties:
data:
type: object
properties:
message:
type: string
example: 'Not associated with Affiliate'
403:
description: 'Merchant not PCI compliant'
content:
application/json:
schema:
type: object
example:
data:
message: 'Merchant is not PCI Compliant'
properties:
data:
type: object
properties:
message:
type: string
example: 'Merchant is not PCI Compliant'
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'
422:
description: 'Expired token'
content:
application/json:
schema:
type: object
example:
data:
message: 'Token expired. Please retokenize, or provide the card details.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Token expired. Please retokenize, or provide the card details.'
tags:
- 'Transaction management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
amount:
type: number
description: 'The amount to authorize. Must be greater than 0.'
example: 100.5
sid:
type: number
description: 'ID of merchant account processing the authorization.'
example: 1234567.0
phone:
type: string
description: "The customer's phone number in e164 format. Creates or matches a customer record."
example: '+17701234567'
customer_uuid:
type: string
description: 'The UUID of an existing customer record, used instead of data.phone.'
example: 60dac128-28da-41ae-8632-aee299de13fd
email:
type: string
description: 'The email of a customer. Max: 50.'
example: john@example.com
nullable: true
memo:
type: string
description: 'A string containing memo related information, such as an invoice ID. Max: 120.'
example: 'order 1234'
nullable: true
token:
type: string
description: 'A token from the tokenize-card endpoint, standing in for a stored card. Required when the raw card fields are not sent.'
example: abc123def456
cardholder_name:
type: string
description: 'The name of the cardholder. Required when no data.token is sent. Max: 50.'
example: 'John Doe'
card_number:
type: number
description: 'The credit card number. Required when no data.token is sent; ignored when one is. Min: 15. Max: 16.'
example: 1.2312312312312E+15
expiration_date:
type: string
description: 'Expiration date of the card, in the form mm/YYYY. Required when no data.token is sent; ignored when one is.'
example: 01/2030
cvv:
type: number
description: "The card's CVV. Optional even when sending raw card data, though issuers may decline more often without it. Min: 3, Max: 4."
example: 123.0
nullable: true
billing_address:
type: object
description: ''
example: []
properties:
first_name:
type: string
description: 'The first name. Max: 50.'
example: John
nullable: true
last_name:
type: string
description: 'The last name. Max: 50.'
example: Doe
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: 'Two-character state code; a full name such as "Virginia" is accepted and stored as its code.'
example: NY
nullable: true
zip:
type: number
description: "The cardholder's ZIP code. Required when no data.token is sent. Digits: 5."
example: 10001.0
shipping_address:
type: object
description: ''
example: []
properties:
addr1:
type: string
description: 'optional The first address line. Max: 55.'
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 Two-character state code; a full name such as "Virginia" is accepted and stored as its code.'
example: GA
zip:
type: integer
description: 'optional The zip code. Digits: 5.'
example: 12345
required:
- amount
- sid
/api/transaction/capture:
post:
summary: 'Capture an Authorized Credit Card'
operationId: captureAnAuthorizedCreditCard
description: "Captures funds from a credit card authorization created by the authorize endpoint. This is the\npoint at which money actually moves: the authorization only reserved the funds.\n\nPass the `transaction_number` returned by the authorize endpoint as `data.transaction_id`.\nOmit `data.amount` to capture the full authorized amount, or pass a smaller amount to capture\npart of it — useful when the final total came in below the original estimate. The capture\namount may not exceed the authorized amount.\n\n**An authorization can only be captured once, and a partial capture closes it.** Capturing\n$50 of a $100 hold settles $50 and releases the remaining $50 back to the cardholder — a\nsecond call for the balance is refused with \"Transaction is not an open authorization.\" If you\nneed to collect in more than one instalment (a split shipment, say), authorize each instalment\nseparately. Capture the true final amount in one call wherever you can.\n\nCapture promptly, typically within 24 hours of authorizing: an uncaptured authorization is\nreleased by the card issuer on its own schedule and can no longer be captured once it expires.\n\nA captured transaction becomes an ordinary card payment and can be refunded or voided through\nthe refund and void endpoints. Note that the refund endpoint voids rather than refunds until\nthe transaction has settled, and reports `\"message\": \"void\"` when it does — that is the\ncorrect handling for money that has not left the cardholder's account yet, and it emits a\nCredit Card Void event rather than a Credit Card Refund one.\n\nTo release a hold without taking any money, do not call this endpoint — call\n`PATCH /api/transaction/void` with `data.transaction_type` of `CC` and the authorization's\n`transaction_number` as `data.transaction_id`. The refund and void endpoints are gated by\ntheir own separate API key permission, not by this one."
parameters: []
responses:
200:
description: 'Successful Capture'
content:
application/json:
schema:
type: object
example:
data:
message: 'Transaction captured successfully.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Transaction captured successfully.'
description: 'The message returned from the capture. Example: Transaction captured successfully.'
400:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Field Validation Failed'
type: object
example:
errors:
data.transaction_id:
- 'The data.transaction_id field is required.'
properties:
errors:
type: object
properties:
data.transaction_id:
type: array
example:
- 'The data.transaction_id field is required.'
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 capture. Example: Transaction captured successfully.'
-
description: 'Not an open authorization'
type: object
example:
data:
message: 'Transaction is not an open authorization.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Transaction is not an open authorization.'
description: 'The message returned from the capture. Example: Transaction captured successfully.'
-
description: 'Amount exceeds the authorization'
type: object
example:
data:
message: 'Amount cannot be greater than the authorized amount'
properties:
data:
type: object
properties:
message:
type: string
example: 'Amount cannot be greater than the authorized amount'
description: 'The message returned from the capture. Example: Transaction captured successfully.'
-
description: 'Processor could not capture'
type: object
example:
data:
message: 'Error processing capture'
properties:
data:
type: object
properties:
message:
type: string
example: 'Error processing capture'
description: 'The message returned from the capture. Example: Transaction captured 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 capture. Example: Transaction captured 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 capture. Example: Transaction captured successfully.'
-
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'
description: 'The message returned from the capture. Example: Transaction captured successfully.'
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'
description: 'The message returned from the capture. Example: Transaction captured successfully.'
tags:
- 'Transaction management'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: number
description: 'The ID of the merchant that holds the authorization.'
example: 1234567.0
transaction_id:
type: number
description: 'The transaction_number returned by the authorize endpoint.'
example: 1234567890.0
amount:
type: number
description: 'optional The amount to capture. Defaults to the full authorized amount. Must be greater than 0 and no greater than the authorized amount.'
example: 100.5
required:
- sid
- transaction_id
required:
- data
/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: ''
content:
application/json:
schema:
oneOf:
-
description: 'Successful Refund'
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'
-
description: 'Unsettled ACH refund submitted with override_ach_settlement_wait'
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: 'Unsettled ACH payment, no override sent'
type: object
example:
message: 'ACH transactions can only be refunded after 7 days. 4.9999996830324 day(s) remaining.'
properties:
message:
type: string
example: 'ACH transactions can only be refunded after 7 days. 4.9999996830324 day(s) remaining.'
-
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
override_ach_settlement_wait:
type: boolean
description: "Refund an ACH payment before it has cleared the seven-day settlement window. Every ACH refund is blocked until then, because the original debit can still be returned by the customer's bank — if that happens after the refund has gone out, the merchant is out that amount with no original payment left to recover it from. This exists for the cases the wait was not written for, such as a duplicate charge or a confirmed-fraudulent debit. Has no effect on credit card refunds or on an ACH payment that has already settled."
example: true
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/chargeback/list:
get:
summary: 'List Chargebacks'
operationId: listChargebacks
description: "Get the chargebacks raised against a merchant.\n\nChargeback data reaches us through a once-daily file from the processor,\nso this reflects the most recent daily import rather than live dispute\nactivity. Pair it with the `chargeback_opened` / `chargeback_updated` /\n`chargeback_resolved` webhooks: the webhooks tell you when something\nchanged, this endpoint is how you reconcile or backfill after an outage,\nsince webhook deliveries are not replayable."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
transaction_info_id: '1134722723'
parent_transaction_info_id: '1132652128'
gateway_transaction_id: null
transaction_number: '1566'
invoice_number: null
chargeback_date: '2025-05-04T17:45:05-04:00'
merchant_chargeback_date: '2025-05-04T19:45:05-04:00'
transaction_amount: 391.48
chargeback_amount: 391.48
card_brand: V
cc_last_four: '2510'
payee_name: null
days_to_represent: 0
representment_date: '2025-05-12T06:26:00-04:00'
merchant_representment_date: '2025-05-05T07:32:01-04:00'
representment_status: 'accepting chargeback'
result: Accepting
chargeback_code: '4'
chargeback_response_code: 'Other fraud - Card Absent Environment'
resolved: false
-
transaction_info_id: '1134722723'
parent_transaction_info_id: '1132652128'
gateway_transaction_id: null
transaction_number: '1566'
invoice_number: null
chargeback_date: '2025-05-04T17:45:05-04:00'
merchant_chargeback_date: '2025-05-04T19:45:05-04:00'
transaction_amount: 391.48
chargeback_amount: 391.48
card_brand: V
cc_last_four: '2510'
payee_name: null
days_to_represent: 0
representment_date: '2025-05-12T06:26:00-04:00'
merchant_representment_date: '2025-05-05T07:32:01-04:00'
representment_status: 'accepting chargeback'
result: Accepting
chargeback_code: '4'
chargeback_response_code: 'Other fraud - Card Absent Environment'
resolved: false
links:
prev: null
next: null
meta:
path: /
per_page: 500
next_cursor: null
prev_cursor: null
properties:
data:
type: array
example:
-
transaction_info_id: '1134722723'
parent_transaction_info_id: '1132652128'
gateway_transaction_id: null
transaction_number: '1566'
invoice_number: null
chargeback_date: '2025-05-04T17:45:05-04:00'
merchant_chargeback_date: '2025-05-04T19:45:05-04:00'
transaction_amount: 391.48
chargeback_amount: 391.48
card_brand: V
cc_last_four: '2510'
payee_name: null
days_to_represent: 0
representment_date: '2025-05-12T06:26:00-04:00'
merchant_representment_date: '2025-05-05T07:32:01-04:00'
representment_status: 'accepting chargeback'
result: Accepting
chargeback_code: '4'
chargeback_response_code: 'Other fraud - Card Absent Environment'
resolved: false
-
transaction_info_id: '1134722723'
parent_transaction_info_id: '1132652128'
gateway_transaction_id: null
transaction_number: '1566'
invoice_number: null
chargeback_date: '2025-05-04T17:45:05-04:00'
merchant_chargeback_date: '2025-05-04T19:45:05-04:00'
transaction_amount: 391.48
chargeback_amount: 391.48
card_brand: V
cc_last_four: '2510'
payee_name: null
days_to_represent: 0
representment_date: '2025-05-12T06:26:00-04:00'
merchant_representment_date: '2025-05-05T07:32:01-04:00'
representment_status: 'accepting chargeback'
result: Accepting
chargeback_code: '4'
chargeback_response_code: 'Other fraud - Card Absent Environment'
resolved: false
items:
type: object
properties:
transaction_info_id:
type: string
example: '1134722723'
description: "The processor's unique identifier for this chargeback. Stable, and what you pass to the show endpoint."
parent_transaction_info_id:
type: string
example: '1132652128'
description: 'The identifier of the original transaction being disputed.'
gateway_transaction_id:
type: string
example: null
nullable: true
transaction_number:
type: string
example: '1566'
invoice_number:
type: string
example: null
nullable: true
chargeback_date:
type: string
example: '2025-05-04T17:45:05-04:00'
description: 'When the chargeback was raised.'
merchant_chargeback_date:
type: string
example: '2025-05-04T19:45:05-04:00'
transaction_amount:
type: number
example: 391.48
description: 'The amount of the original transaction.'
chargeback_amount:
type: number
example: 391.48
description: 'The amount being disputed, which may be less than the original transaction.'
card_brand:
type: string
example: V
cc_last_four:
type: string
example: '2510'
payee_name:
type: string
example: null
nullable: true
days_to_represent:
type: integer
example: 0
description: 'Days remaining to submit evidence contesting the chargeback.'
representment_date:
type: string
example: '2025-05-12T06:26:00-04:00'
description: 'The deadline for submitting evidence.'
merchant_representment_date:
type: string
example: '2025-05-05T07:32:01-04:00'
representment_status:
type: string
example: 'accepting chargeback'
description: 'The dispute''s state, as free text from the processor, e.g. "New", "accepting chargeback", "Resolved".'
result:
type: string
example: Accepting
description: 'The outcome once decided, e.g. "Resolved in favor of Merchant". Null while the case is open.'
chargeback_code:
type: string
example: '4'
description: "The card network's numeric reason code."
chargeback_response_code:
type: string
example: 'Other fraud - Card Absent Environment'
description: 'The reason in words, e.g. "Duplicate Processing".'
resolved:
type: boolean
example: false
description: 'Whether the dispute has reached a terminal state. Derived from representment_status and result.'
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
description: 'The handle for the next page, or null on the last one. Re-send the same request with `?cursor=` appended to the URL and the body unchanged. Do not follow `links.next` on its own: this endpoint reads `data.sid` and `filters` from the request body, so fetching that URL without the body fails.'
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 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 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:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
-
description: 'Not associated with Affiliate'
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: 'Unknown merchant'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'No chargebacks found'
type: object
example:
data:
message: 'No chargebacks found'
properties:
data:
type: object
properties:
message:
type: string
example: 'No chargebacks found'
tags:
- 'Chargeback 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: 'Chargeback start date, in UTC, with format: "YYYY-mm-dd 00:00:00"'
example: '"2026-04-01 00:00:00"'
end_date:
type: string
description: 'Chargeback end date, in UTC, with format: "YYYY-mm-dd 00:00:00"'
example: '"2026-04-30 23:59:59"'
representment_status:
type: string
description: 'Only chargebacks in this dispute state. Free text from the processor, e.g. "New" or "Resolved".'
example: '"New"'
/api/chargeback/show:
get:
summary: 'Show Chargeback'
operationId: showChargeback
description: 'Get a single chargeback by its processor identifier.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
transaction_info_id: '1134722723'
parent_transaction_info_id: '1132652128'
gateway_transaction_id: null
transaction_number: '1566'
invoice_number: null
chargeback_date: '2025-05-04T17:45:05-04:00'
merchant_chargeback_date: '2025-05-04T19:45:05-04:00'
transaction_amount: 391.48
chargeback_amount: 391.48
card_brand: V
cc_last_four: '2510'
payee_name: null
days_to_represent: 0
representment_date: '2025-05-12T06:26:00-04:00'
merchant_representment_date: '2025-05-05T07:32:01-04:00'
representment_status: 'accepting chargeback'
result: Accepting
chargeback_code: '4'
chargeback_response_code: 'Other fraud - Card Absent Environment'
resolved: false
properties:
data:
type: object
properties:
transaction_info_id:
type: string
example: '1134722723'
parent_transaction_info_id:
type: string
example: '1132652128'
gateway_transaction_id:
type: string
example: null
nullable: true
transaction_number:
type: string
example: '1566'
invoice_number:
type: string
example: null
nullable: true
chargeback_date:
type: string
example: '2025-05-04T17:45:05-04:00'
merchant_chargeback_date:
type: string
example: '2025-05-04T19:45:05-04:00'
transaction_amount:
type: number
example: 391.48
chargeback_amount:
type: number
example: 391.48
card_brand:
type: string
example: V
cc_last_four:
type: string
example: '2510'
payee_name:
type: string
example: null
nullable: true
days_to_represent:
type: integer
example: 0
representment_date:
type: string
example: '2025-05-12T06:26:00-04:00'
merchant_representment_date:
type: string
example: '2025-05-05T07:32:01-04:00'
representment_status:
type: string
example: 'accepting chargeback'
result:
type: string
example: Accepting
chargeback_code:
type: string
example: '4'
chargeback_response_code:
type: string
example: 'Other fraud - Card Absent Environment'
resolved:
type: boolean
example: false
400:
description: 'Malformed Request'
content:
application/json:
schema:
type: object
example:
errors:
data.transaction_info_id:
- 'The data.transaction_info_id field is required.'
properties:
errors:
type: object
properties:
data.transaction_info_id:
type: array
example:
- 'The data.transaction_info_id field is required.'
items:
type: string
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Incorrect API Key Permission'
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
-
description: 'Not associated with Affiliate'
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: 'Unknown merchant'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'No chargeback found'
type: object
example:
data:
message: 'No chargeback found'
properties:
data:
type: object
properties:
message:
type: string
example: 'No chargeback found'
tags:
- 'Chargeback 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'
transaction_info_id:
type: string
description: "The chargeback's transaction_info_id, as returned by the list endpoint."
example: '"8675309"'
required:
- sid
- transaction_info_id
/api/document/upload:
post:
summary: 'Upload Documents'
operationId: uploadDocuments
description: "Send us one or more documents for a merchant, stating what they are for.\n\nThis endpoint is general purpose — underwriting paperwork, identity\nverification, and evidence contesting a chargeback all come through here,\ndistinguished by `data.doc_type`. To attach evidence to a specific\ndispute, pass `data.chargeback_transaction_info_id` as well; the value is\nthe `transaction_info_id` from the chargeback endpoints or the chargeback\nwebhooks.\n\n**This request is `multipart/form-data`, not JSON** — it is the only\nendpoint on this API that is. Send the body fields as form fields named\n`data[sid]`, `data[doc_type]` and so on, and the files as `files[]`.\n\nNote the bracket notation: multipart has no JSON parsing, so a single\nfield named `data` containing `{\"sid\": \"...\"}` is read as a plain string\nand the merchant is never identified. That fails as\n`403 You do not have access to this company.`, which looks like a\ncredentials problem but is not — check your field names first. Likewise\nthe files field is `files[]`, not `files`.\n\nFiles are stored independently. If one fails, the rest are still kept and\nthe response lists what did not store under `failed`, so you can re-send\nonly those rather than the whole batch.\n\nUploading does not send the document to the processor. It lands in the\nmerchant's document list and notifies our team, who review it and forward\nit. There is no programmatic way to file a representment with the\nprocessor on your behalf."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
oneOf:
-
description: Uploaded
type: object
example:
data:
message: '2 documents uploaded.'
documents:
-
uuid: 9b1c...
file_name: receipt.pdf
doc_type: RetrievalRequest
size: 20841
properties:
data:
type: object
properties:
message:
type: string
example: '2 documents uploaded.'
documents:
type: array
example:
-
uuid: 9b1c...
file_name: receipt.pdf
doc_type: RetrievalRequest
size: 20841
items:
type: object
properties:
uuid:
type: string
example: 9b1c...
file_name:
type: string
example: receipt.pdf
doc_type:
type: string
example: RetrievalRequest
size:
type: integer
example: 20841
-
description: 'Partly uploaded'
type: object
example:
data:
message: '2 documents uploaded. 1 could not be stored.'
documents:
-
uuid: 9b1c...
file_name: receipt.pdf
doc_type: RetrievalRequest
size: 20841
failed:
-
file_name: statement.pdf
reason: 'The file could not be stored. Send it again.'
properties:
data:
type: object
properties:
message:
type: string
example: '2 documents uploaded. 1 could not be stored.'
documents:
type: array
example:
-
uuid: 9b1c...
file_name: receipt.pdf
doc_type: RetrievalRequest
size: 20841
items:
type: object
properties:
uuid:
type: string
example: 9b1c...
file_name:
type: string
example: receipt.pdf
doc_type:
type: string
example: RetrievalRequest
size:
type: integer
example: 20841
failed:
type: array
example:
-
file_name: statement.pdf
reason: 'The file could not be stored. Send it again.'
items:
type: object
properties:
file_name:
type: string
example: statement.pdf
reason:
type: string
example: 'The file could not be stored. Send it again.'
400:
description: 'Malformed Request'
content:
application/json:
schema:
type: object
example:
errors:
files.0:
- 'The files.0 field must be a file of type: pdf, jpg, jpeg, png, doc, docx, rtf.'
properties:
errors:
type: object
properties:
files.0:
type: array
example:
- 'The files.0 field must be a file of type: pdf, jpg, jpeg, png, doc, docx, rtf.'
items:
type: string
401:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Incorrect API Key Permission'
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
-
description: 'Not associated with Affiliate'
type: object
example:
data:
message: 'Not associated with Affiliate'
properties:
data:
type: object
properties:
message:
type: string
example: 'Not associated with Affiliate'
404:
description: 'Unknown merchant'
content:
application/json:
schema:
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
413:
description: 'Request too large'
content:
application/json:
schema:
type: object
example:
errors:
files:
- 'The upload is larger than this server accepts (8M per request). Send fewer files per request, or split them across requests.'
properties:
errors:
type: object
properties:
files:
type: array
example:
- 'The upload is larger than this server accepts (8M per request). Send fewer files per request, or split them across requests.'
items:
type: string
422:
description: 'Merchant not set up for documents'
content:
application/json:
schema:
type: object
example:
data:
message: 'Merchant is not set up to receive documents'
properties:
data:
type: object
properties:
message:
type: string
example: 'Merchant is not set up to receive documents'
tags:
- 'Document management'
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: string
description: 'The ID of the merchant.'
example: '91828382'
doc_type:
type: string
description: 'What the document is for. One of: Verification, FraudHolds, Underwriting, RetrievalRequest. Use RetrievalRequest for evidence contesting a chargeback or answering a retrieval request.'
example: RetrievalRequest
chargeback_transaction_info_id:
type: string
description: 'The transaction_info_id of the chargeback this evidence relates to, if any. Must belong to the same merchant.'
example: '"8675309"'
nullable: true
required:
- sid
- doc_type
files:
type: array
description: 'The documents. Up to 10 per request, each 9 MB or smaller, as PDF, JPG, PNG, DOC, DOCX or RTF. The *combined* size of a request is also capped by the server; if you get a 413, send fewer files per request rather than retrying the same batch.'
items:
type: string
format: binary
required:
- files
/api/document/list:
get:
summary: 'List Documents'
operationId: listDocuments
description: "The documents held for a merchant, so you can confirm what we have\nreceived. Covers documents uploaded through this API and those added by\nour team or through the merchant application."
parameters: []
responses:
200:
description: Found
content:
application/json:
schema:
type: object
example:
data:
-
uuid: 9b1c...
file_name: receipt.pdf
doc_type: RetrievalRequest
chargeback_transaction_info_id: '8675309'
size: 20841
uploaded_at: '2026-09-18T11:35:01+00:00'
uploaded_via: api
sent_to_processor: null
properties:
data:
type: array
example:
-
uuid: 9b1c...
file_name: receipt.pdf
doc_type: RetrievalRequest
chargeback_transaction_info_id: '8675309'
size: 20841
uploaded_at: '2026-09-18T11:35:01+00:00'
uploaded_via: api
sent_to_processor: null
items:
type: object
properties:
uuid:
type: string
example: 9b1c...
file_name:
type: string
example: receipt.pdf
doc_type:
type: string
example: RetrievalRequest
chargeback_transaction_info_id:
type: string
example: '8675309'
size:
type: integer
example: 20841
uploaded_at:
type: string
example: '2026-09-18T11:35:01+00:00'
uploaded_via:
type: string
example: api
sent_to_processor:
type: string
example: null
nullable: true
401:
description: 'Incorrect 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.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Unknown merchant'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'No documents found'
type: object
example:
data:
message: 'No documents found'
properties:
data:
type: object
properties:
message:
type: string
example: 'No documents found'
tags:
- 'Document 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:
doc_type:
type: string
description: 'Only documents of this type.'
example: RetrievalRequest
chargeback_transaction_info_id:
type: string
description: 'Only documents attached to this chargeback.'
example: '"8675309"'
/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: '2026-09-04T20:40:06.000000Z'
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-09-04T20:40:06.000000Z'
last_login_ip: 72.255.199.38
-
id: 6
uuid: 66f1c230-68cf-4d58-b47c-1bcb83adfddd
first_name: Ryan
last_name: Taylor
company_name: ''
phone: '+17707892072'
phone_verified_at: '2026-09-04T20:40:06.000000Z'
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-09-04T20:40:06.000000Z'
last_login_ip: 72.255.199.38
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: '2026-09-04T20:40:06.000000Z'
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-09-04T20:40:06.000000Z'
last_login_ip: 72.255.199.38
-
id: 6
uuid: 66f1c230-68cf-4d58-b47c-1bcb83adfddd
first_name: Ryan
last_name: Taylor
company_name: ''
phone: '+17707892072'
phone_verified_at: '2026-09-04T20:40:06.000000Z'
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-09-04T20:40:06.000000Z'
last_login_ip: 72.255.199.38
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 merchant 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 merchant 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 merchant 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 merchant 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 merchant 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 merchant 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 merchant 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 merchant 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: 1
invoice_number: INV-0001
status: paid
customer_name: 'Scott Porter'
customer_email: sporter@abidingwordchurch.org
total: 2000
amount_paid: 2000
balance: 0
cover_fee_required: true
issue_date: '2026-09-03'
due_date: '2026-09-18'
is_overdue: false
public_url: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
-
id: 1
invoice_number: INV-0001
status: paid
customer_name: 'Scott Porter'
customer_email: sporter@abidingwordchurch.org
total: 2000
amount_paid: 2000
balance: 0
cover_fee_required: true
issue_date: '2026-09-03'
due_date: '2026-09-18'
is_overdue: false
public_url: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
links:
prev: null
next: null
meta:
path: /
per_page: 500
next_cursor: null
prev_cursor: null
properties:
data:
type: array
example:
-
id: 1
invoice_number: INV-0001
status: paid
customer_name: 'Scott Porter'
customer_email: sporter@abidingwordchurch.org
total: 2000
amount_paid: 2000
balance: 0
cover_fee_required: true
issue_date: '2026-09-03'
due_date: '2026-09-18'
is_overdue: false
public_url: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
-
id: 1
invoice_number: INV-0001
status: paid
customer_name: 'Scott Porter'
customer_email: sporter@abidingwordchurch.org
total: 2000
amount_paid: 2000
balance: 0
cover_fee_required: true
issue_date: '2026-09-03'
due_date: '2026-09-18'
is_overdue: false
public_url: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
items:
type: object
properties:
id:
type: integer
example: 1
description: 'The internal id of the invoice. Example: 42'
invoice_number:
type: string
example: INV-0001
description: 'The human-readable invoice number. Example: INV-0007'
status:
type: string
example: paid
description: 'The invoice status. Example: sent'
customer_name:
type: string
example: 'Scott Porter'
description: 'The customer name snapshot. Example: Jane Doe'
customer_email:
type: string
example: sporter@abidingwordchurch.org
description: 'The customer email snapshot. Example: jane@example.com'
total:
type: integer
example: 2000
description: 'The invoice total in dollars. Example: 250.00'
amount_paid:
type: integer
example: 2000
description: 'The amount paid in dollars. Example: 0'
balance:
type: integer
example: 0
description: 'The outstanding balance in dollars. Example: 250.00'
cover_fee_required:
type: boolean
example: true
issue_date:
type: string
example: '2026-09-03'
description: 'The issue date (Y-m-d). Example: 2026-07-01'
due_date:
type: string
example: '2026-09-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'
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
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: 1
token: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number: INV-0001
status: paid
payment_terms: net_15
issue_date: '2026-09-03'
due_date: '2026-09-18'
is_overdue: false
subtotal: 2000
total: 2000
amount_paid: 2000
balance: 0
allow_partial_payment: false
cover_fee_required: true
cover_fee_quote:
basis: balance
base: 0
cc:
fee: 0
total: 0
ach:
fee: 0
total: 0
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
id: 16032
name: 'Scott Porter'
email: sporter@abidingwordchurch.org
items:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
payments:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
events:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
properties:
data:
type: object
properties:
id:
type: integer
example: 1
description: 'The internal id of the invoice. Example: 42'
token:
type: string
example: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
description: 'The public token. Example: r8s...'
invoice_number:
type: string
example: INV-0001
description: 'The invoice number. Example: INV-0007'
status:
type: string
example: paid
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-09-03'
description: 'The issue date (Y-m-d). Example: 2026-07-01'
due_date:
type: string
example: '2026-09-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: 2000
description: 'The subtotal in dollars. Example: 250.00'
total:
type: integer
example: 2000
description: 'The total in dollars. Example: 250.00'
amount_paid:
type: integer
example: 2000
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: false
description: 'Whether partial payments are allowed. Example: false'
cover_fee_required:
type: boolean
example: true
description: 'Whether the customer must cover the processing fee. When true the fee is added on top of the amount being paid, so the card/bank is charged more than `total`. Example: false'
cover_fee_quote:
type: object
properties:
basis:
type: string
example: balance
base:
type: integer
example: 0
cc:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
ach:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
description: 'The fee quoted against the current balance, per payment method (`base`, `cc.fee`, `cc.total`, `ach.fee`, `ach.total`), or null when no fee is required. Card and ACH rates differ, so the charged total depends on how the customer pays.'
thank_you_note:
type: string
example: null
description: 'An optional note shown on the invoice. Example: Thanks for your business!'
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
description: 'The public pay link. Example: https://example.test/invoice/abcd'
customer:
type: object
properties:
id:
type: integer
example: 16032
name:
type: string
example: 'Scott Porter'
email:
type: string
example: sporter@abidingwordchurch.org
description: 'The linked/snapshot customer (id, name, email).'
items:
type: array
example:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
description: 'The line items (id, item_id, name, description, quantity, unit_price, amount).'
items:
type: object
properties:
id:
type: integer
example: 1
item_id:
type: integer
example: 1365
name:
type: string
example: 'Implementation Fee'
description:
type: string
example: null
nullable: true
quantity:
type: integer
example: 1
unit_price:
type: integer
example: 2000
amount:
type: integer
example: 2000
payments:
type: array
example:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
description: 'Recorded payments (amount, cover_fee, paid_at, method, transaction_id). `amount` is credited to the invoice; `cover_fee` was charged on top of it.'
items:
type: object
properties:
amount:
type: integer
example: 2000
cover_fee:
type: number
example: 56.81
paid_at:
type: string
example: '2026-09-03T11:21:27-04:00'
method:
type: string
example: +CC
transaction_id:
type: integer
example: 107272
events:
type: array
example:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
description: 'The invoice event/activity log (type, label, description, created_at).'
items:
type: object
properties:
type:
type: string
example: payment_received
label:
type: string
example: 'Payment received'
description:
type: string
example: 'Payment of $2,000.00 received'
created_at:
type: string
example: '2026-09-03T11:21:27-04:00'
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: 1
token: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number: INV-0001
status: paid
payment_terms: net_15
issue_date: '2026-09-03'
due_date: '2026-09-18'
is_overdue: false
subtotal: 2000
total: 2000
amount_paid: 2000
balance: 0
allow_partial_payment: false
cover_fee_required: true
cover_fee_quote:
basis: balance
base: 0
cc:
fee: 0
total: 0
ach:
fee: 0
total: 0
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
id: 16032
name: 'Scott Porter'
email: sporter@abidingwordchurch.org
items:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
payments:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
events:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
properties:
data:
type: object
properties:
id:
type: integer
example: 1
token:
type: string
example: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number:
type: string
example: INV-0001
status:
type: string
example: paid
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-09-03'
due_date:
type: string
example: '2026-09-18'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 2000
total:
type: integer
example: 2000
amount_paid:
type: integer
example: 2000
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: false
cover_fee_required:
type: boolean
example: true
cover_fee_quote:
type: object
properties:
basis:
type: string
example: balance
base:
type: integer
example: 0
cc:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
ach:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
type: object
properties:
id:
type: integer
example: 16032
name:
type: string
example: 'Scott Porter'
email:
type: string
example: sporter@abidingwordchurch.org
items:
type: array
example:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
items:
type: object
properties:
id:
type: integer
example: 1
item_id:
type: integer
example: 1365
name:
type: string
example: 'Implementation Fee'
description:
type: string
example: null
nullable: true
quantity:
type: integer
example: 1
unit_price:
type: integer
example: 2000
amount:
type: integer
example: 2000
payments:
type: array
example:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
items:
type: object
properties:
amount:
type: integer
example: 2000
cover_fee:
type: number
example: 56.81
paid_at:
type: string
example: '2026-09-03T11:21:27-04:00'
method:
type: string
example: +CC
transaction_id:
type: integer
example: 107272
events:
type: array
example:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
items:
type: object
properties:
type:
type: string
example: payment_received
label:
type: string
example: 'Payment received'
description:
type: string
example: 'Payment of $2,000.00 received'
created_at:
type: string
example: '2026-09-03T11:21:27-04:00'
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
data.lines:
- 'The data.lines field is required.'
properties:
errors:
type: object
properties:
data.lines:
type: array
example:
- 'The data.lines field is required.'
items:
type: string
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: 'Invalid sid'
content:
application/json:
schema:
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
invoice_number:
type: string
description: 'An optional custom invoice number (unique per Merchant).'
example: INV-0007
customer_uuid:
type: string
description: 'The uuid of an existing customer belonging to the Merchant. Preferred over data.customer_id; supply exactly one.'
example: 9f2a6c14-3e8b-4d21-9a77-5c1e0b8f4d33
customer_id:
type: integer
description: 'An existing customer id belonging to the Merchant to link. Required unless data.customer_uuid is supplied.'
example: 88
customer_name:
type: string
description: 'The customer name to show on the invoice.'
example: 'Jane Doe'
customer_email:
type: string
description: 'The customer email the invoice is addressed to.'
example: jane@example.com
payment_terms:
type: string
description: 'One of: due_on_receipt, net_15, net_30, net_60.'
example: net_15
issue_date:
type: string
description: 'The issue date (Y-m-d); defaults to today.'
example: '2026-07-01'
thank_you_note:
type: string
description: 'An optional note shown on the invoice.'
example: 'Thanks for your business!'
allow_partial_payment:
type: boolean
description: 'Whether partial payments are allowed.'
example: true
cover_fee_required:
type: boolean
description: "Require the customer to cover the processing fee. The fee is added on top of the invoice total at payment time (card and ACH rates differ), so it is not part of `total` and does not appear as a line item. Defaults to the Merchant's invoice setting."
example: true
reminder_settings:
type: object
description: 'Optional per-invoice reminder toggles.'
example:
before_due: true
properties: { }
lines:
type: array
description: 'The line items (at least one).'
example:
- []
items:
type: object
properties:
item_id:
type: integer
description: 'The Merchant item id this line is sourced from.'
example: 5
name:
type: string
description: 'The line name.'
example: Consulting
description:
type: string
description: 'An optional line description.'
example: '2 hours'
quantity:
type: number
description: 'The quantity.'
example: 2.0
unit_price:
type: number
description: 'The unit price in dollars.'
example: 125.0
required:
- item_id
- name
- quantity
- unit_price
required:
- sid
- customer_name
- customer_email
- payment_terms
- lines
/api/invoice/update:
patch:
summary: 'Update Invoice'
operationId: updateInvoice
description: "Updates a draft invoice. Only draft invoices can be edited — once sent, an\ninvoice is locked. Passing `data.lines` replaces the existing line items."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 1
token: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number: INV-0001
status: paid
payment_terms: net_15
issue_date: '2026-09-03'
due_date: '2026-09-18'
is_overdue: false
subtotal: 2000
total: 2000
amount_paid: 2000
balance: 0
allow_partial_payment: false
cover_fee_required: true
cover_fee_quote:
basis: balance
base: 0
cc:
fee: 0
total: 0
ach:
fee: 0
total: 0
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
id: 16032
name: 'Scott Porter'
email: sporter@abidingwordchurch.org
items:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
payments:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
events:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
properties:
data:
type: object
properties:
id:
type: integer
example: 1
token:
type: string
example: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number:
type: string
example: INV-0001
status:
type: string
example: paid
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-09-03'
due_date:
type: string
example: '2026-09-18'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 2000
total:
type: integer
example: 2000
amount_paid:
type: integer
example: 2000
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: false
cover_fee_required:
type: boolean
example: true
cover_fee_quote:
type: object
properties:
basis:
type: string
example: balance
base:
type: integer
example: 0
cc:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
ach:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
type: object
properties:
id:
type: integer
example: 16032
name:
type: string
example: 'Scott Porter'
email:
type: string
example: sporter@abidingwordchurch.org
items:
type: array
example:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
items:
type: object
properties:
id:
type: integer
example: 1
item_id:
type: integer
example: 1365
name:
type: string
example: 'Implementation Fee'
description:
type: string
example: null
nullable: true
quantity:
type: integer
example: 1
unit_price:
type: integer
example: 2000
amount:
type: integer
example: 2000
payments:
type: array
example:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
items:
type: object
properties:
amount:
type: integer
example: 2000
cover_fee:
type: number
example: 56.81
paid_at:
type: string
example: '2026-09-03T11:21:27-04:00'
method:
type: string
example: +CC
transaction_id:
type: integer
example: 107272
events:
type: array
example:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
items:
type: object
properties:
type:
type: string
example: payment_received
label:
type: string
example: 'Payment received'
description:
type: string
example: 'Payment of $2,000.00 received'
created_at:
type: string
example: '2026-09-03T11:21:27-04:00'
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
data.customer_email:
- 'The data.customer email field is required.'
properties:
errors:
type: object
properties:
data.customer_email:
type: array
example:
- 'The data.customer email field is required.'
items:
type: string
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Invoice not found'
type: object
example:
data:
message: 'Invoice not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Invoice not found'
422:
description: 'Invoice locked'
content:
application/json:
schema:
type: object
example:
data:
message: 'Only draft invoices can be edited.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Only draft invoices can be edited.'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
invoice_id:
type: integer
description: 'The id of the draft invoice to update.'
example: 42
invoice_number:
type: string
description: 'An optional custom invoice number (unique per Merchant).'
example: INV-0007
customer_uuid:
type: string
description: 'The uuid of an existing customer belonging to the Merchant. Preferred over data.customer_id; supply exactly one.'
example: 9f2a6c14-3e8b-4d21-9a77-5c1e0b8f4d33
customer_id:
type: integer
description: 'An existing customer id belonging to the Merchant to link. Required unless data.customer_uuid is supplied.'
example: 88
customer_name:
type: string
description: 'The customer name.'
example: 'Jane Doe'
customer_email:
type: string
description: 'The customer email.'
example: jane@example.com
payment_terms:
type: string
description: 'One of: due_on_receipt, net_15, net_30, net_60.'
example: net_15
issue_date:
type: string
description: 'The issue date (Y-m-d).'
example: '2026-07-01'
thank_you_note:
type: string
description: 'An optional note.'
example: Thanks!
allow_partial_payment:
type: boolean
description: 'Whether partial payments are allowed.'
example: true
cover_fee_required:
type: boolean
description: 'Require the customer to cover the processing fee. Omitting it clears the flag, like the other optional invoice fields on this endpoint.'
example: true
reminder_settings:
type: object
description: 'Optional per-invoice reminder toggles.'
example:
before_due: true
properties: { }
lines:
type: array
description: 'The replacement line items (at least one).'
example:
- []
items:
type: object
properties:
item_id:
type: integer
description: 'The Merchant item id.'
example: 5
name:
type: string
description: 'The line name.'
example: Consulting
description:
type: string
description: 'An optional line description.'
example: '2 hours'
quantity:
type: number
description: 'The quantity.'
example: 2.0
unit_price:
type: number
description: 'The unit price in dollars.'
example: 125.0
required:
- item_id
- name
- quantity
- unit_price
required:
- sid
- invoice_id
- customer_name
- customer_email
- payment_terms
- lines
/api/invoice/delete:
post:
summary: 'Delete Invoice'
operationId: deleteInvoice
description: 'Soft-deletes a draft invoice. Only draft invoices can be deleted.'
parameters: []
responses:
200:
description: Deleted
content:
application/json:
schema:
type: object
example:
data:
message: 'Draft invoice deleted.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Draft invoice deleted.'
description: 'The result message. Example: Draft invoice deleted.'
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
description: 'The result message. Example: Draft invoice deleted.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
description: 'The result message. Example: Draft invoice deleted.'
-
description: 'Invoice not found'
type: object
example:
data:
message: 'Invoice not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Invoice not found'
description: 'The result message. Example: Draft invoice deleted.'
422:
description: 'Invoice locked'
content:
application/json:
schema:
type: object
example:
data:
message: 'Only draft invoices can be deleted.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Only draft invoices can be deleted.'
description: 'The result message. Example: Draft invoice deleted.'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
invoice_id:
type: integer
description: 'The id of the draft invoice.'
example: 42
required:
- sid
- invoice_id
/api/invoice/send:
post:
summary: 'Send Invoice'
operationId: sendInvoice
description: "Emails the invoice to the customer with a link to the public pay page and\nadvances the invoice to Sent. A paid, void, or refunded invoice cannot be\nsent."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 1
token: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number: INV-0001
status: paid
payment_terms: net_15
issue_date: '2026-09-03'
due_date: '2026-09-18'
is_overdue: false
subtotal: 2000
total: 2000
amount_paid: 2000
balance: 0
allow_partial_payment: false
cover_fee_required: true
cover_fee_quote:
basis: balance
base: 0
cc:
fee: 0
total: 0
ach:
fee: 0
total: 0
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
id: 16032
name: 'Scott Porter'
email: sporter@abidingwordchurch.org
items:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
payments:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
events:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
properties:
data:
type: object
properties:
id:
type: integer
example: 1
token:
type: string
example: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number:
type: string
example: INV-0001
status:
type: string
example: paid
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-09-03'
due_date:
type: string
example: '2026-09-18'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 2000
total:
type: integer
example: 2000
amount_paid:
type: integer
example: 2000
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: false
cover_fee_required:
type: boolean
example: true
cover_fee_quote:
type: object
properties:
basis:
type: string
example: balance
base:
type: integer
example: 0
cc:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
ach:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
type: object
properties:
id:
type: integer
example: 16032
name:
type: string
example: 'Scott Porter'
email:
type: string
example: sporter@abidingwordchurch.org
items:
type: array
example:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
items:
type: object
properties:
id:
type: integer
example: 1
item_id:
type: integer
example: 1365
name:
type: string
example: 'Implementation Fee'
description:
type: string
example: null
nullable: true
quantity:
type: integer
example: 1
unit_price:
type: integer
example: 2000
amount:
type: integer
example: 2000
payments:
type: array
example:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
items:
type: object
properties:
amount:
type: integer
example: 2000
cover_fee:
type: number
example: 56.81
paid_at:
type: string
example: '2026-09-03T11:21:27-04:00'
method:
type: string
example: +CC
transaction_id:
type: integer
example: 107272
events:
type: array
example:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
items:
type: object
properties:
type:
type: string
example: payment_received
label:
type: string
example: 'Payment received'
description:
type: string
example: 'Payment of $2,000.00 received'
created_at:
type: string
example: '2026-09-03T11:21:27-04:00'
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: 1
token: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number: INV-0001
status: paid
payment_terms: net_15
issue_date: '2026-09-03'
due_date: '2026-09-18'
is_overdue: false
subtotal: 2000
total: 2000
amount_paid: 2000
balance: 0
allow_partial_payment: false
cover_fee_required: true
cover_fee_quote:
basis: balance
base: 0
cc:
fee: 0
total: 0
ach:
fee: 0
total: 0
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
id: 16032
name: 'Scott Porter'
email: sporter@abidingwordchurch.org
items:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
payments:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
events:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
properties:
data:
type: object
properties:
id:
type: integer
example: 1
token:
type: string
example: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number:
type: string
example: INV-0001
status:
type: string
example: paid
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-09-03'
due_date:
type: string
example: '2026-09-18'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 2000
total:
type: integer
example: 2000
amount_paid:
type: integer
example: 2000
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: false
cover_fee_required:
type: boolean
example: true
cover_fee_quote:
type: object
properties:
basis:
type: string
example: balance
base:
type: integer
example: 0
cc:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
ach:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
type: object
properties:
id:
type: integer
example: 16032
name:
type: string
example: 'Scott Porter'
email:
type: string
example: sporter@abidingwordchurch.org
items:
type: array
example:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
items:
type: object
properties:
id:
type: integer
example: 1
item_id:
type: integer
example: 1365
name:
type: string
example: 'Implementation Fee'
description:
type: string
example: null
nullable: true
quantity:
type: integer
example: 1
unit_price:
type: integer
example: 2000
amount:
type: integer
example: 2000
payments:
type: array
example:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
items:
type: object
properties:
amount:
type: integer
example: 2000
cover_fee:
type: number
example: 56.81
paid_at:
type: string
example: '2026-09-03T11:21:27-04:00'
method:
type: string
example: +CC
transaction_id:
type: integer
example: 107272
events:
type: array
example:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
items:
type: object
properties:
type:
type: string
example: payment_received
label:
type: string
example: 'Payment received'
description:
type: string
example: 'Payment of $2,000.00 received'
created_at:
type: string
example: '2026-09-03T11:21:27-04:00'
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: 1
token: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number: INV-0001
status: paid
payment_terms: net_15
issue_date: '2026-09-03'
due_date: '2026-09-18'
is_overdue: false
subtotal: 2000
total: 2000
amount_paid: 2000
balance: 0
allow_partial_payment: false
cover_fee_required: true
cover_fee_quote:
basis: balance
base: 0
cc:
fee: 0
total: 0
ach:
fee: 0
total: 0
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
id: 16032
name: 'Scott Porter'
email: sporter@abidingwordchurch.org
items:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
payments:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
events:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
properties:
data:
type: object
properties:
id:
type: integer
example: 1
token:
type: string
example: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number:
type: string
example: INV-0001
status:
type: string
example: paid
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-09-03'
due_date:
type: string
example: '2026-09-18'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 2000
total:
type: integer
example: 2000
amount_paid:
type: integer
example: 2000
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: false
cover_fee_required:
type: boolean
example: true
cover_fee_quote:
type: object
properties:
basis:
type: string
example: balance
base:
type: integer
example: 0
cc:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
ach:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
type: object
properties:
id:
type: integer
example: 16032
name:
type: string
example: 'Scott Porter'
email:
type: string
example: sporter@abidingwordchurch.org
items:
type: array
example:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
items:
type: object
properties:
id:
type: integer
example: 1
item_id:
type: integer
example: 1365
name:
type: string
example: 'Implementation Fee'
description:
type: string
example: null
nullable: true
quantity:
type: integer
example: 1
unit_price:
type: integer
example: 2000
amount:
type: integer
example: 2000
payments:
type: array
example:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
items:
type: object
properties:
amount:
type: integer
example: 2000
cover_fee:
type: number
example: 56.81
paid_at:
type: string
example: '2026-09-03T11:21:27-04:00'
method:
type: string
example: +CC
transaction_id:
type: integer
example: 107272
events:
type: array
example:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
items:
type: object
properties:
type:
type: string
example: payment_received
label:
type: string
example: 'Payment received'
description:
type: string
example: 'Payment of $2,000.00 received'
created_at:
type: string
example: '2026-09-03T11:21:27-04:00'
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: 1
token: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number: INV-0001
status: paid
payment_terms: net_15
issue_date: '2026-09-03'
due_date: '2026-09-18'
is_overdue: false
subtotal: 2000
total: 2000
amount_paid: 2000
balance: 0
allow_partial_payment: false
cover_fee_required: true
cover_fee_quote:
basis: balance
base: 0
cc:
fee: 0
total: 0
ach:
fee: 0
total: 0
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
id: 16032
name: 'Scott Porter'
email: sporter@abidingwordchurch.org
items:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
payments:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
events:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
properties:
data:
type: object
properties:
id:
type: integer
example: 1
token:
type: string
example: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number:
type: string
example: INV-0001
status:
type: string
example: paid
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-09-03'
due_date:
type: string
example: '2026-09-18'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 2000
total:
type: integer
example: 2000
amount_paid:
type: integer
example: 2000
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: false
cover_fee_required:
type: boolean
example: true
cover_fee_quote:
type: object
properties:
basis:
type: string
example: balance
base:
type: integer
example: 0
cc:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
ach:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
type: object
properties:
id:
type: integer
example: 16032
name:
type: string
example: 'Scott Porter'
email:
type: string
example: sporter@abidingwordchurch.org
items:
type: array
example:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
items:
type: object
properties:
id:
type: integer
example: 1
item_id:
type: integer
example: 1365
name:
type: string
example: 'Implementation Fee'
description:
type: string
example: null
nullable: true
quantity:
type: integer
example: 1
unit_price:
type: integer
example: 2000
amount:
type: integer
example: 2000
payments:
type: array
example:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
items:
type: object
properties:
amount:
type: integer
example: 2000
cover_fee:
type: number
example: 56.81
paid_at:
type: string
example: '2026-09-03T11:21:27-04:00'
method:
type: string
example: +CC
transaction_id:
type: integer
example: 107272
events:
type: array
example:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
items:
type: object
properties:
type:
type: string
example: payment_received
label:
type: string
example: 'Payment received'
description:
type: string
example: 'Payment of $2,000.00 received'
created_at:
type: string
example: '2026-09-03T11:21:27-04:00'
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\nthe processor. Mirrors the card/ACH charge endpoints but targets the invoice: the\namount is the invoice balance (or a partial amount when the invoice allows\nit), and on approval the invoice status/payment history/per-line\nclassification are updated exactly as a customer payment.\n\nWhen the invoice has `cover_fee_required`, the processing fee for the method\nbeing charged is added on top of `data.amount` — so the card or bank account\nis charged more than the amount credited to the invoice. The invoice is\ncredited `data.amount`; the fee appears as `cover_fee` on the resulting entry\nin the response's `payments` array. Card and ACH rates differ, so the same\n`data.amount` produces a different charge per `data.payment_type`. Read\n`cover_fee_quote` from the invoice beforehand to know the totals in advance.\n\nThe invoice must be open (Sent/Viewed/Partially Paid) with a balance due on\nan active card-processing merchant. A declined card is NOT recorded as a payment."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 1
token: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number: INV-0001
status: paid
payment_terms: net_15
issue_date: '2026-09-03'
due_date: '2026-09-18'
is_overdue: false
subtotal: 2000
total: 2000
amount_paid: 2000
balance: 0
allow_partial_payment: false
cover_fee_required: true
cover_fee_quote:
basis: balance
base: 0
cc:
fee: 0
total: 0
ach:
fee: 0
total: 0
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
id: 16032
name: 'Scott Porter'
email: sporter@abidingwordchurch.org
items:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
payments:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
events:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
properties:
data:
type: object
properties:
id:
type: integer
example: 1
token:
type: string
example: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number:
type: string
example: INV-0001
status:
type: string
example: paid
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-09-03'
due_date:
type: string
example: '2026-09-18'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 2000
total:
type: integer
example: 2000
amount_paid:
type: integer
example: 2000
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: false
cover_fee_required:
type: boolean
example: true
cover_fee_quote:
type: object
properties:
basis:
type: string
example: balance
base:
type: integer
example: 0
cc:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
ach:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
type: object
properties:
id:
type: integer
example: 16032
name:
type: string
example: 'Scott Porter'
email:
type: string
example: sporter@abidingwordchurch.org
items:
type: array
example:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
items:
type: object
properties:
id:
type: integer
example: 1
item_id:
type: integer
example: 1365
name:
type: string
example: 'Implementation Fee'
description:
type: string
example: null
nullable: true
quantity:
type: integer
example: 1
unit_price:
type: integer
example: 2000
amount:
type: integer
example: 2000
payments:
type: array
example:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
items:
type: object
properties:
amount:
type: integer
example: 2000
cover_fee:
type: number
example: 56.81
paid_at:
type: string
example: '2026-09-03T11:21:27-04:00'
method:
type: string
example: +CC
transaction_id:
type: integer
example: 107272
events:
type: array
example:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
items:
type: object
properties:
type:
type: string
example: payment_received
label:
type: string
example: 'Payment received'
description:
type: string
example: 'Payment of $2,000.00 received'
created_at:
type: string
example: '2026-09-03T11:21:27-04:00'
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 card-processing 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 card-processing 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 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: 1
token: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number: INV-0001
status: paid
payment_terms: net_15
issue_date: '2026-09-03'
due_date: '2026-09-18'
is_overdue: false
subtotal: 2000
total: 2000
amount_paid: 2000
balance: 0
allow_partial_payment: false
cover_fee_required: true
cover_fee_quote:
basis: balance
base: 0
cc:
fee: 0
total: 0
ach:
fee: 0
total: 0
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
id: 16032
name: 'Scott Porter'
email: sporter@abidingwordchurch.org
items:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
payments:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
events:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
properties:
data:
type: object
properties:
id:
type: integer
example: 1
token:
type: string
example: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number:
type: string
example: INV-0001
status:
type: string
example: paid
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-09-03'
due_date:
type: string
example: '2026-09-18'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 2000
total:
type: integer
example: 2000
amount_paid:
type: integer
example: 2000
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: false
cover_fee_required:
type: boolean
example: true
cover_fee_quote:
type: object
properties:
basis:
type: string
example: balance
base:
type: integer
example: 0
cc:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
ach:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
type: object
properties:
id:
type: integer
example: 16032
name:
type: string
example: 'Scott Porter'
email:
type: string
example: sporter@abidingwordchurch.org
items:
type: array
example:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
items:
type: object
properties:
id:
type: integer
example: 1
item_id:
type: integer
example: 1365
name:
type: string
example: 'Implementation Fee'
description:
type: string
example: null
nullable: true
quantity:
type: integer
example: 1
unit_price:
type: integer
example: 2000
amount:
type: integer
example: 2000
payments:
type: array
example:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
items:
type: object
properties:
amount:
type: integer
example: 2000
cover_fee:
type: number
example: 56.81
paid_at:
type: string
example: '2026-09-03T11:21:27-04:00'
method:
type: string
example: +CC
transaction_id:
type: integer
example: 107272
events:
type: array
example:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
items:
type: object
properties:
type:
type: string
example: payment_received
label:
type: string
example: 'Payment received'
description:
type: string
example: 'Payment of $2,000.00 received'
created_at:
type: string
example: '2026-09-03T11:21:27-04:00'
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: 1
token: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number: INV-0001
status: paid
payment_terms: net_15
issue_date: '2026-09-03'
due_date: '2026-09-18'
is_overdue: false
subtotal: 2000
total: 2000
amount_paid: 2000
balance: 0
allow_partial_payment: false
cover_fee_required: true
cover_fee_quote:
basis: balance
base: 0
cc:
fee: 0
total: 0
ach:
fee: 0
total: 0
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
id: 16032
name: 'Scott Porter'
email: sporter@abidingwordchurch.org
items:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
payments:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
events:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
properties:
data:
type: object
properties:
id:
type: integer
example: 1
token:
type: string
example: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number:
type: string
example: INV-0001
status:
type: string
example: paid
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-09-03'
due_date:
type: string
example: '2026-09-18'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 2000
total:
type: integer
example: 2000
amount_paid:
type: integer
example: 2000
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: false
cover_fee_required:
type: boolean
example: true
cover_fee_quote:
type: object
properties:
basis:
type: string
example: balance
base:
type: integer
example: 0
cc:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
ach:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
type: object
properties:
id:
type: integer
example: 16032
name:
type: string
example: 'Scott Porter'
email:
type: string
example: sporter@abidingwordchurch.org
items:
type: array
example:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
items:
type: object
properties:
id:
type: integer
example: 1
item_id:
type: integer
example: 1365
name:
type: string
example: 'Implementation Fee'
description:
type: string
example: null
nullable: true
quantity:
type: integer
example: 1
unit_price:
type: integer
example: 2000
amount:
type: integer
example: 2000
payments:
type: array
example:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
items:
type: object
properties:
amount:
type: integer
example: 2000
cover_fee:
type: number
example: 56.81
paid_at:
type: string
example: '2026-09-03T11:21:27-04:00'
method:
type: string
example: +CC
transaction_id:
type: integer
example: 107272
events:
type: array
example:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
items:
type: object
properties:
type:
type: string
example: payment_received
label:
type: string
example: 'Payment received'
description:
type: string
example: 'Payment of $2,000.00 received'
created_at:
type: string
example: '2026-09-03T11:21:27-04:00'
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: 1
token: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number: INV-0001
status: paid
payment_terms: net_15
issue_date: '2026-09-03'
due_date: '2026-09-18'
is_overdue: false
subtotal: 2000
total: 2000
amount_paid: 2000
balance: 0
allow_partial_payment: false
cover_fee_required: true
cover_fee_quote:
basis: balance
base: 0
cc:
fee: 0
total: 0
ach:
fee: 0
total: 0
thank_you_note: null
public_url: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
id: 16032
name: 'Scott Porter'
email: sporter@abidingwordchurch.org
items:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
payments:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
events:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
properties:
data:
type: object
properties:
id:
type: integer
example: 1
token:
type: string
example: cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK
invoice_number:
type: string
example: INV-0001
status:
type: string
example: paid
payment_terms:
type: string
example: net_15
issue_date:
type: string
example: '2026-09-03'
due_date:
type: string
example: '2026-09-18'
is_overdue:
type: boolean
example: false
subtotal:
type: integer
example: 2000
total:
type: integer
example: 2000
amount_paid:
type: integer
example: 2000
balance:
type: integer
example: 0
allow_partial_payment:
type: boolean
example: false
cover_fee_required:
type: boolean
example: true
cover_fee_quote:
type: object
properties:
basis:
type: string
example: balance
base:
type: integer
example: 0
cc:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
ach:
type: object
properties:
fee:
type: integer
example: 0
total:
type: integer
example: 0
thank_you_note:
type: string
example: null
nullable: true
public_url:
type: string
example: 'http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK'
customer:
type: object
properties:
id:
type: integer
example: 16032
name:
type: string
example: 'Scott Porter'
email:
type: string
example: sporter@abidingwordchurch.org
items:
type: array
example:
-
id: 1
item_id: 1365
name: 'Implementation Fee'
description: null
quantity: 1
unit_price: 2000
amount: 2000
items:
type: object
properties:
id:
type: integer
example: 1
item_id:
type: integer
example: 1365
name:
type: string
example: 'Implementation Fee'
description:
type: string
example: null
nullable: true
quantity:
type: integer
example: 1
unit_price:
type: integer
example: 2000
amount:
type: integer
example: 2000
payments:
type: array
example:
-
amount: 2000
cover_fee: 56.81
paid_at: '2026-09-03T11:21:27-04:00'
method: +CC
transaction_id: 107272
items:
type: object
properties:
amount:
type: integer
example: 2000
cover_fee:
type: number
example: 56.81
paid_at:
type: string
example: '2026-09-03T11:21:27-04:00'
method:
type: string
example: +CC
transaction_id:
type: integer
example: 107272
events:
type: array
example:
-
type: payment_received
label: 'Payment received'
description: 'Payment of $2,000.00 received'
created_at: '2026-09-03T11:21:27-04:00'
-
type: viewed
label: 'Invoice viewed'
description: 'Opened by sporter@abidingwordchurch.org'
created_at: '2026-09-03T11:18:10-04:00'
-
type: created
label: 'Invoice created'
description: 'Invoice created via API'
created_at: '2026-09-03T11:17:43-04:00'
-
type: sent
label: 'Invoice sent'
description: 'Marked as sent via API — shared manually (no email)'
created_at: '2026-09-03T11:17:43-04:00'
items:
type: object
properties:
type:
type: string
example: payment_received
label:
type: string
example: 'Payment received'
description:
type: string
example: 'Payment of $2,000.00 received'
created_at:
type: string
example: '2026-09-03T11:21:27-04:00'
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Invoice not found'
type: object
example:
data:
message: 'Invoice not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Invoice not found'
-
description: 'Line item not found'
type: object
example:
data:
message: 'Line item not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Line item not found'
422:
description: 'Invoice locked'
content:
application/json:
schema:
type: object
example:
data:
message: 'Only draft invoices can be edited.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Only draft invoices can be edited.'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
invoice_id:
type: integer
description: 'The id of the draft invoice.'
example: 42
line_item_id:
type: integer
description: 'The id of the line item to remove.'
example: 9
required:
- sid
- invoice_id
- line_item_id
/api/invoice/items:
get:
summary: 'List Invoice Items'
operationId: listInvoiceItems
description: "Lists the Merchant's items (funds/designations) available to use as invoice\nline items, ordered alphabetically."
parameters: []
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
data:
-
id: 5
name: Consulting
description: null
price: 125.0
properties:
data:
type: array
example:
-
id: 5
name: Consulting
description: null
price: 125
items:
type: object
properties:
id:
type: integer
example: 5
name:
type: string
example: Consulting
description:
type: string
example: null
nullable: true
price:
type: number
example: 125.0
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: 'Invalid sid'
content:
application/json:
schema:
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
required:
- sid
/api/invoice/item/create:
post:
summary: 'Create Invoice Item'
operationId: createInvoiceItem
description: "Creates an invoicing-only item (fund/designation) for the Merchant. The\nitem is hidden from public giving pages and can be referenced as a line\nitem's `item_id`."
parameters: []
responses:
201:
description: Created
content:
application/json:
schema:
type: object
example:
data:
id: 5
name: Consulting
description: null
price: 125.0
tax_deductible: false
properties:
data:
type: object
properties:
id:
type: integer
example: 5
description: 'The item id. Example: 5'
name:
type: string
example: Consulting
description: 'The item name. Example: Consulting'
description:
type: string
example: null
description: 'The item description. Example: null'
price:
type: number
example: 125.0
description: 'The default unit price in dollars, if set. Example: 125.00'
tax_deductible:
type: boolean
example: false
description: 'Whether the item is tax deductible. Example: false'
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
data.name:
- 'The data.name field is required.'
properties:
errors:
type: object
properties:
data.name:
type: array
example:
- 'The data.name field is required.'
items:
type: string
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: 'Invalid sid'
content:
application/json:
schema:
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
name:
type: string
description: 'The item name.'
example: Consulting
description:
type: string
description: 'An optional description.'
example: 'Professional services'
nullable: true
price:
type: number
description: 'An optional default unit price in dollars.'
example: 125.0
nullable: true
tax_deductible:
type: boolean
description: 'Whether the item is tax deductible.'
example: false
required:
- sid
- name
/api/recurring-invoices:
get:
summary: 'List Recurring Invoices'
operationId: listRecurringInvoices
description: "Retrieves a paginated (cursor) list of recurring-invoice templates for a\nMerchant, optionally filtered by status."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: null
status: Active
recurrence_schedule: Monthly
payment_terms: net_15
cover_fee_required: false
start_date: '2026-09-22'
end_date: null
next_run_date: '2026-10-22'
last_run_date: null
customer_name: 'Lafayette Considine'
-
id: null
status: Active
recurrence_schedule: Monthly
payment_terms: net_15
cover_fee_required: false
start_date: '2026-09-22'
end_date: null
next_run_date: '2026-10-22'
last_run_date: null
customer_name: 'Margaretta Thiel'
links:
prev: null
next: null
meta:
path: /
per_page: 500
next_cursor: null
prev_cursor: null
properties:
data:
type: array
example:
-
id: null
status: Active
recurrence_schedule: Monthly
payment_terms: net_15
cover_fee_required: false
start_date: '2026-09-22'
end_date: null
next_run_date: '2026-10-22'
last_run_date: null
customer_name: 'Lafayette Considine'
-
id: null
status: Active
recurrence_schedule: Monthly
payment_terms: net_15
cover_fee_required: false
start_date: '2026-09-22'
end_date: null
next_run_date: '2026-10-22'
last_run_date: null
customer_name: 'Margaretta Thiel'
items:
type: object
properties:
id:
type: string
example: null
description: 'The template id. Example: 3'
status:
type: string
example: Active
description: 'The template status. Example: Active'
recurrence_schedule:
type: string
example: Monthly
description: 'The schedule. Example: Monthly'
payment_terms:
type: string
example: net_15
description: 'The payment terms applied to generated invoices. Example: net_15'
cover_fee_required:
type: boolean
example: false
start_date:
type: string
example: '2026-09-22'
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-10-22'
description: 'The next run date (Y-m-d), or null once ended. Example: 2026-08-01'
last_run_date:
type: string
example: null
description: 'The most recent run date (Y-m-d), or null. Example: 2026-07-01'
customer_name:
type: string
example: 'Lafayette Considine'
description: 'The linked customer name. Example: Jane Doe'
links:
type: object
properties:
prev:
type: string
example: null
nullable: true
next:
type: string
example: null
nullable: true
meta:
type: object
properties:
path:
type: string
example: /
per_page:
type: integer
example: 500
next_cursor:
type: string
example: null
nullable: true
prev_cursor:
type: string
example: null
nullable: true
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: 'Invalid sid'
content:
application/json:
schema:
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example: []
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
required:
- sid
filters:
type: object
description: ''
example: []
properties:
status:
type: string
description: 'A status to filter by. One of: Active, Ended, Cancelled.'
example: Active
/api/recurring-invoice:
get:
summary: 'Show Recurring Invoice'
operationId: showRecurringInvoice
description: "Retrieves a single recurring-invoice template with its line items, the\ninvoices it has generated (the 50 most recent), and the upcoming run dates."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
status: Active
recurrence_schedule: Monthly
payment_terms: net_15
cover_fee_required: false
start_date: '2026-09-22'
end_date: null
next_run_date: '2026-10-22'
last_run_date: null
thank_you_note: null
customer:
id: 16371
name: 'Marcelo Predovic'
email: pauline09@example.com
items: []
upcoming_run_dates:
- '2026-10-22'
- '2026-11-22'
- '2026-12-22'
invoices: []
properties:
data:
type: object
properties:
id:
type: string
example: null
description: 'The template id. Example: 3'
status:
type: string
example: Active
description: 'The template status. Example: Active'
recurrence_schedule:
type: string
example: Monthly
description: 'The schedule. Example: Monthly'
payment_terms:
type: string
example: net_15
description: 'The payment terms applied to generated invoices. Example: net_15'
cover_fee_required:
type: boolean
example: false
start_date:
type: string
example: '2026-09-22'
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-10-22'
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: 16371
name:
type: string
example: 'Marcelo Predovic'
email:
type: string
example: pauline09@example.com
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-10-22'
- '2026-11-22'
- '2026-12-22'
description: 'The next few scheduled run dates (Y-m-d), computed on read.'
items:
type: string
invoices:
type: array
example: []
description: 'The 50 most recent generated invoices (id, invoice_number, status, total, issue_date, public_url).'
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid sid'
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
-
description: 'Not found'
type: object
example:
data:
message: 'Recurring invoice not found'
properties:
data:
type: object
properties:
message:
type: string
example: 'Recurring invoice not found'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
recurring_invoice_id:
type: integer
description: 'The id of the template.'
example: 3
required:
- sid
- recurring_invoice_id
/api/recurring-invoice/create:
post:
summary: 'Create Recurring Invoice'
operationId: createRecurringInvoice
description: "Creates a recurring-invoice template. The template carries its own snapshot\nof the line items and requires a linked customer (used to resolve the email\non every run). When the start date is today the first invoice is generated\nand sent immediately; a future start date just schedules the first run."
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
status: Active
recurrence_schedule: Monthly
payment_terms: net_15
cover_fee_required: false
start_date: '2026-09-22'
end_date: null
next_run_date: '2026-10-22'
last_run_date: null
thank_you_note: null
customer:
id: 16372
name: 'Pauline Runte'
email: alayna44@example.org
items: []
upcoming_run_dates:
- '2026-10-22'
- '2026-11-22'
- '2026-12-22'
invoices: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
status:
type: string
example: Active
recurrence_schedule:
type: string
example: Monthly
payment_terms:
type: string
example: net_15
cover_fee_required:
type: boolean
example: false
start_date:
type: string
example: '2026-09-22'
end_date:
type: string
example: null
nullable: true
next_run_date:
type: string
example: '2026-10-22'
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: 16372
name:
type: string
example: 'Pauline Runte'
email:
type: string
example: alayna44@example.org
items:
type: array
example: []
upcoming_run_dates:
type: array
example:
- '2026-10-22'
- '2026-11-22'
- '2026-12-22'
items:
type: string
invoices:
type: array
example: []
400:
description: 'Failed validation'
content:
application/json:
schema:
type: object
example:
errors:
data.customer_id:
- 'The data.customer id field is required.'
properties:
errors:
type: object
properties:
data.customer_id:
type: array
example:
- 'The data.customer id field is required.'
items:
type: string
401:
description: 'Token unauthorized'
content:
application/json:
schema:
type: object
example:
data:
message: 'Permission Denied.'
properties:
data:
type: object
properties:
message:
type: string
example: 'Permission Denied.'
404:
description: 'Invalid sid'
content:
application/json:
schema:
type: object
example:
data:
message: 'No such Merchant'
properties:
data:
type: object
properties:
message:
type: string
example: 'No such Merchant'
tags:
- 'Invoice management'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: ''
example:
sid: 12345
properties:
sid:
type: integer
description: 'The SID of the Merchant.'
example: 12345
customer_uuid:
type: string
description: 'The uuid of an existing customer belonging to the Merchant. Preferred over data.customer_id; supply exactly one.'
example: 9f2a6c14-3e8b-4d21-9a77-5c1e0b8f4d33
customer_id:
type: integer
description: 'An existing customer id belonging to the Merchant. Required unless data.customer_uuid is supplied.'
example: 88
payment_terms:
type: string
description: 'One of: due_on_receipt, net_15, net_30, net_60.'
example: net_15
cover_fee_required:
type: boolean
description: "Require the customer to cover the processing fee on every invoice this template generates. Defaults to the Merchant's invoice setting."
example: true
recurring_frequency:
type: string
description: 'The schedule. One of: Weekly, Biweekly, FirstFifteenth, Monthly, Yearly.'
example: Monthly
recurring_start_date:
type: string
description: 'The first run date (Y-m-d).'
example: '2026-08-01'
recurring_end_date:
type: string
description: 'An optional end date (Y-m-d), on/after the start date.'
example: '2027-08-01'
thank_you_note:
type: string
description: 'An optional note shown on generated invoices.'
example: Thanks!
lines:
type: array
description: 'The line items (at least one).'
example:
- []
items:
type: object
properties:
item_id:
type: integer
description: 'The Merchant item id.'
example: 5
name:
type: string
description: 'The line name.'
example: 'Monthly retainer'
description:
type: string
description: 'An optional line description.'
example: 'Support plan'
quantity:
type: number
description: 'The quantity.'
example: 1.0
unit_price:
type: number
description: 'The unit price in dollars.'
example: 500.0
required:
- item_id
- name
- quantity
- unit_price
required:
- sid
- payment_terms
- recurring_frequency
- recurring_start_date
- lines
/api/recurring-invoice/cancel:
post:
summary: 'Cancel Recurring Invoice'
operationId: cancelRecurringInvoice
description: "Cancels an active recurring-invoice template. No further invoices are\ngenerated. Only active templates can be cancelled."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
status: Active
recurrence_schedule: Monthly
payment_terms: net_15
cover_fee_required: false
start_date: '2026-09-22'
end_date: null
next_run_date: '2026-10-22'
last_run_date: null
thank_you_note: null
customer:
id: 16373
name: 'Marcelo Predovic'
email: kconsidine@example.net
items: []
upcoming_run_dates:
- '2026-10-22'
- '2026-11-22'
- '2026-12-22'
invoices: []
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
status:
type: string
example: Active
recurrence_schedule:
type: string
example: Monthly
payment_terms:
type: string
example: net_15
cover_fee_required:
type: boolean
example: false
start_date:
type: string
example: '2026-09-22'
end_date:
type: string
example: null
nullable: true
next_run_date:
type: string
example: '2026-10-22'
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: 16373
name:
type: string
example: 'Marcelo Predovic'
email:
type: string
example: kconsidine@example.net
items:
type: array
example: []
upcoming_run_dates:
type: array
example:
- '2026-10-22'
- '2026-11-22'
- '2026-12-22'
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: 2
type: cc
token: qYV343433d9BEu75dqES1005
first_name: Ben
last_name: Habeck
cc_name_on_card: 'Ben Habeck'
cc_last_four: '1005'
cc_expiration_date: 05/2029
cc_brand: Amex
status: Default
status_date: '2025-05-20 14:04:55'
enabled: true
default: true
addr1: '53 S. Main Street'
addr2: ''
addr3: null
city: Alpharetta
state: GA
zip: '30009'
-
id: 2
type: cc
token: qYV343433d9BEu75dqES1005
first_name: Ben
last_name: Habeck
cc_name_on_card: 'Ben Habeck'
cc_last_four: '1005'
cc_expiration_date: 05/2029
cc_brand: Amex
status: Default
status_date: '2025-05-20 14:04:55'
enabled: true
default: true
addr1: '53 S. Main Street'
addr2: ''
addr3: null
city: Alpharetta
state: GA
zip: '30009'
links:
prev: null
next: null
meta:
path: /
per_page: 15
next_cursor: null
prev_cursor: null
properties:
data:
type: array
example:
-
id: 2
type: cc
token: qYV343433d9BEu75dqES1005
first_name: Ben
last_name: Habeck
cc_name_on_card: 'Ben Habeck'
cc_last_four: '1005'
cc_expiration_date: 05/2029
cc_brand: Amex
status: Default
status_date: '2025-05-20 14:04:55'
enabled: true
default: true
addr1: '53 S. Main Street'
addr2: ''
addr3: null
city: Alpharetta
state: GA
zip: '30009'
-
id: 2
type: cc
token: qYV343433d9BEu75dqES1005
first_name: Ben
last_name: Habeck
cc_name_on_card: 'Ben Habeck'
cc_last_four: '1005'
cc_expiration_date: 05/2029
cc_brand: Amex
status: Default
status_date: '2025-05-20 14:04:55'
enabled: true
default: true
addr1: '53 S. Main Street'
addr2: ''
addr3: null
city: Alpharetta
state: GA
zip: '30009'
items:
type: object
properties:
id:
type: integer
example: 2
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: qYV343433d9BEu75dqES1005
description: 'The token of the Payment Method. Example: xxxxxxxx'
first_name:
type: string
example: Ben
description: 'The first name of the customer. Example: John'
last_name:
type: string
example: Habeck
description: 'The last name of the customer. Example: Doe'
cc_name_on_card:
type: string
example: 'Ben Habeck'
description: 'The name on the card. Example: John Doe'
cc_last_four:
type: string
example: '1005'
description: 'The last four digits of the card. Example: 1234'
cc_expiration_date:
type: string
example: 05/2029
description: 'The expiration date of the card. Example: 01/2025'
cc_brand:
type: string
example: Amex
description: 'The brand of the card. Example: Visa'
status:
type: string
example: Default
description: 'The status of the Payment Method. Example: New'
status_date:
type: string
example: '2025-05-20 14:04:55'
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: true
description: 'Whether the Payment Method is default or not. Example: true'
addr1:
type: string
example: '53 S. Main Street'
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: Alpharetta
description: 'City name. Example: Alpharetta'
state:
type: string
example: GA
description: 'Two character State. Example: GA'
zip:
type: string
example: '30009'
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: 2
type: cc
token: qYV343433d9BEu75dqES1005
first_name: Ben
last_name: Habeck
cc_name_on_card: 'Ben Habeck'
cc_last_four: '1005'
cc_expiration_date: 05/2029
cc_brand: Amex
status: Default
status_date: '2025-05-20 14:04:55'
enabled: true
default: true
addr1: '53 S. Main Street'
addr2: ''
addr3: null
city: Alpharetta
state: GA
zip: '30009'
properties:
data:
type: object
properties:
id:
type: integer
example: 2
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: qYV343433d9BEu75dqES1005
description: 'The token of the Payment Method. Example: xxxxxxxx'
first_name:
type: string
example: Ben
description: 'The first name of the customer. Example: John'
last_name:
type: string
example: Habeck
description: 'The last name of the customer. Example: Doe'
cc_name_on_card:
type: string
example: 'Ben Habeck'
description: 'The name on the card. Example: John Doe'
cc_last_four:
type: string
example: '1005'
description: 'The last four digits of the card. Example: 1234'
cc_expiration_date:
type: string
example: 05/2029
description: 'The expiration date of the card. Example: 01/2025'
cc_brand:
type: string
example: Amex
description: 'The brand of the card. Example: Visa'
status:
type: string
example: Default
description: 'The status of the Payment Method. Example: New'
status_date:
type: string
example: '2025-05-20 14:04:55'
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: true
description: 'Whether the Payment Method is default or not. Example: true'
addr1:
type: string
example: '53 S. Main Street'
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: Alpharetta
description: 'City name. Example: Alpharetta'
state:
type: string
example: GA
description: 'Two character State. Example: GA'
zip:
type: string
example: '30009'
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: 2
type: cc
token: qYV343433d9BEu75dqES1005
first_name: Ben
last_name: Habeck
cc_name_on_card: 'Ben Habeck'
cc_last_four: '1005'
cc_expiration_date: 05/2029
cc_brand: Amex
status: Default
status_date: '2025-05-20 14:04:55'
enabled: true
default: true
addr1: '53 S. Main Street'
addr2: ''
addr3: null
city: Alpharetta
state: GA
zip: '30009'
properties:
data:
type: object
properties:
id:
type: integer
example: 2
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: qYV343433d9BEu75dqES1005
description: 'The token of the Payment Method. Example: xxxxxxxx'
first_name:
type: string
example: Ben
description: 'The first name of the customer. Example: John'
last_name:
type: string
example: Habeck
description: 'The last name of the customer. Example: Doe'
cc_name_on_card:
type: string
example: 'Ben Habeck'
description: 'The name on the card. Example: John Doe'
cc_last_four:
type: string
example: '1005'
description: 'The last four digits of the card. Example: 1234'
cc_expiration_date:
type: string
example: 05/2029
description: 'The expiration date of the card. Example: 01/2025'
cc_brand:
type: string
example: Amex
description: 'The brand of the card. Example: Visa'
status:
type: string
example: Default
description: 'The status of the Payment Method. Example: New'
status_date:
type: string
example: '2025-05-20 14:04:55'
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: true
description: 'Whether the Payment Method is default or not. Example: true'
addr1:
type: string
example: '53 S. Main Street'
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: Alpharetta
description: 'City name. Example: Alpharetta'
state:
type: string
example: GA
description: 'Two character State. Example: GA'
zip:
type: string
example: '30009'
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 code; a full name such as "Virginia" is accepted and stored as its code.'
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: 2
type: cc
token: qYV343433d9BEu75dqES1005
first_name: Ben
last_name: Habeck
cc_name_on_card: 'Ben Habeck'
cc_last_four: '1005'
cc_expiration_date: 05/2029
cc_brand: Amex
status: Default
status_date: '2025-05-20 14:04:55'
enabled: true
default: true
addr1: '53 S. Main Street'
addr2: ''
addr3: null
city: Alpharetta
state: GA
zip: '30009'
properties:
data:
type: object
properties:
id:
type: integer
example: 2
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: qYV343433d9BEu75dqES1005
description: 'The token of the Payment Method. Example: xxxxxxxx'
first_name:
type: string
example: Ben
description: 'The first name of the customer. Example: John'
last_name:
type: string
example: Habeck
description: 'The last name of the customer. Example: Doe'
cc_name_on_card:
type: string
example: 'Ben Habeck'
description: 'The name on the card. Example: John Doe'
cc_last_four:
type: string
example: '1005'
description: 'The last four digits of the card. Example: 1234'
cc_expiration_date:
type: string
example: 05/2029
description: 'The expiration date of the card. Example: 01/2025'
cc_brand:
type: string
example: Amex
description: 'The brand of the card. Example: Visa'
status:
type: string
example: Default
description: 'The status of the Payment Method. Example: New'
status_date:
type: string
example: '2025-05-20 14:04:55'
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: true
description: 'Whether the Payment Method is default or not. Example: true'
addr1:
type: string
example: '53 S. Main Street'
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: Alpharetta
description: 'City name. Example: Alpharetta'
state:
type: string
example: GA
description: 'Two character State. Example: GA'
zip:
type: string
example: '30009'
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 code; a full name such as "Virginia" is accepted and stored as its code.'
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'
cover_processing_amount: null
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'
cover_processing_amount: null
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'
cover_processing_amount: null
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'
cover_processing_amount: null
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'
cover_processing_amount:
type: string
example: null
nullable: true
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'
cover_processing_amount: null
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'
cover_processing_amount:
type: string
example: null
nullable: true
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'
cover_processing_amount: null
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'
cover_processing_amount:
type: string
example: null
nullable: true
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'
cover_processing_amount: null
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'
cover_processing_amount:
type: string
example: null
nullable: true
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'
cover_processing_amount: null
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'
cover_processing_amount:
type: string
example: null
nullable: true
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. Stored as given unless `customer_covers_fee` is also `true` in this same request, in which case this is treated as the merchant's net amount and the fee is calculated on top of it."
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
customer_covers_fee:
type: boolean
description: "Whether the customer covers the processing fee. Set to true to turn fee coverage on (grossing up `amount`, or the payment's current amount if `amount` isn't also given) or false to turn it off (leaving `amount` as-is). Omit to leave the payment's current fee-coverage setting unchanged."
example: true
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'
cover_processing_amount: null
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'
cover_processing_amount:
type: string
example: null
nullable: true
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. When `customer_covers_fee` is true, this is the amount the merchant nets — the processing fee is added on top and charged to the customer.'
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
customer_covers_fee:
type: boolean
description: "Whether the customer covers the processing fee. When true, `amount` is treated as the merchant's net amount and the fee (recalculated each run from the merchant's current processing rates) is added on top of what's charged. Defaults to false."
example: true
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'
cover_processing_amount: null
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'
cover_processing_amount:
type: string
example: null
nullable: true
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: 'Monthly Membership 54634'
description: 'Qui commodi incidunt iure odit.'
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: 3G7NdMXiBDJ6X7bosY061UoySQUxE7cTGnB2FHUp
public_url: 'http://app.dimepayments.com/subscribe/3G7NdMXiBDJ6X7bosY061UoySQUxE7cTGnB2FHUp'
allow_public: true
created_at: null
items: []
-
id: null
name: 'Monthly Membership 35354'
description: 'Ex voluptatem laboriosam praesentium quis adipisci.'
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: nf9if1KTegZn15OII510i0s5Ibw93tgSuO7iRUzf
public_url: 'http://app.dimepayments.com/subscribe/nf9if1KTegZn15OII510i0s5Ibw93tgSuO7iRUzf'
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: 'Monthly Membership 54634'
description: 'Qui commodi incidunt iure odit.'
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: 3G7NdMXiBDJ6X7bosY061UoySQUxE7cTGnB2FHUp
public_url: 'http://app.dimepayments.com/subscribe/3G7NdMXiBDJ6X7bosY061UoySQUxE7cTGnB2FHUp'
allow_public: true
created_at: null
items: []
-
id: null
name: 'Monthly Membership 35354'
description: 'Ex voluptatem laboriosam praesentium quis adipisci.'
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: nf9if1KTegZn15OII510i0s5Ibw93tgSuO7iRUzf
public_url: 'http://app.dimepayments.com/subscribe/nf9if1KTegZn15OII510i0s5Ibw93tgSuO7iRUzf'
allow_public: true
created_at: null
items: []
items:
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: 3G7NdMXiBDJ6X7bosY061UoySQUxE7cTGnB2FHUp
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/3G7NdMXiBDJ6X7bosY061UoySQUxE7cTGnB2FHUp'
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 80304'
description: 'Commodi incidunt iure odit.'
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: 2GoGWosXssjWWWrrIBKSxGkPp4R2Xb8dCHI6heJw
public_url: 'http://app.dimepayments.com/subscribe/2GoGWosXssjWWWrrIBKSxGkPp4R2Xb8dCHI6heJw'
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: 2GoGWosXssjWWWrrIBKSxGkPp4R2Xb8dCHI6heJw
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/2GoGWosXssjWWWrrIBKSxGkPp4R2Xb8dCHI6heJw'
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: H8QrmUgkmlOQYH2NPLUcJvHIY2I27bOmNGn2iJ0q
public_url: 'http://app.dimepayments.com/subscribe/H8QrmUgkmlOQYH2NPLUcJvHIY2I27bOmNGn2iJ0q'
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: H8QrmUgkmlOQYH2NPLUcJvHIY2I27bOmNGn2iJ0q
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/H8QrmUgkmlOQYH2NPLUcJvHIY2I27bOmNGn2iJ0q'
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: 3icVdZHR02Sjogda0RPSgCirYn7XQZ0zln3x32Rk
public_url: 'http://app.dimepayments.com/subscribe/3icVdZHR02Sjogda0RPSgCirYn7XQZ0zln3x32Rk'
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: 3icVdZHR02Sjogda0RPSgCirYn7XQZ0zln3x32Rk
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/3icVdZHR02Sjogda0RPSgCirYn7XQZ0zln3x32Rk'
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 14650'
description: null
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: NOIsACYHidsVtD35hmwriVpZQ604ExlWYRfJanwf
public_url: 'http://app.dimepayments.com/subscribe/NOIsACYHidsVtD35hmwriVpZQ604ExlWYRfJanwf'
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: NOIsACYHidsVtD35hmwriVpZQ604ExlWYRfJanwf
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/NOIsACYHidsVtD35hmwriVpZQ604ExlWYRfJanwf'
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 62492'
description: 'Iure odit et et modi ipsum nostrum omnis.'
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: FGZR14ITUjzTgDRZjCUUycpqmuWLv2em01kZ9PPN
public_url: 'http://app.dimepayments.com/subscribe/FGZR14ITUjzTgDRZjCUUycpqmuWLv2em01kZ9PPN'
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: FGZR14ITUjzTgDRZjCUUycpqmuWLv2em01kZ9PPN
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/FGZR14ITUjzTgDRZjCUUycpqmuWLv2em01kZ9PPN'
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 45193'
description: 'Odit et et modi.'
recurrence_schedule: Monthly
status: active
subtotal: 0
total: 0
token: zOiiyTxB6dwjOTciRdSPMq28DUt79qERchbW7ooj
public_url: 'http://app.dimepayments.com/subscribe/zOiiyTxB6dwjOTciRdSPMq28DUt79qERchbW7ooj'
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 45193'
description:
type: string
example: 'Odit et et modi.'
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: zOiiyTxB6dwjOTciRdSPMq28DUt79qERchbW7ooj
public_url:
type: string
example: 'http://app.dimepayments.com/subscribe/zOiiyTxB6dwjOTciRdSPMq28DUt79qERchbW7ooj'
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: 211
plan_name: 'Premium Plan 24492'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-08-22T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-10-22T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: 7528ef5b-50a4-4124-879d-321631ac5948
error: null
payment_method:
id: 6187
type: cc
last_four: '3642'
expiration: 08/2030
-
id: null
subscription_plan_id: 212
plan_name: 'Monthly Membership 88481'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-08-22T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-10-22T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: f5af1bab-c5c7-4eed-85a1-b82e373c935f
error: null
payment_method:
id: 6188
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: 211
plan_name: 'Premium Plan 24492'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-08-22T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-10-22T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: 7528ef5b-50a4-4124-879d-321631ac5948
error: null
payment_method:
id: 6187
type: cc
last_four: '3642'
expiration: 08/2030
-
id: null
subscription_plan_id: 212
plan_name: 'Monthly Membership 88481'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-08-22T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-10-22T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: f5af1bab-c5c7-4eed-85a1-b82e373c935f
error: null
payment_method:
id: 6188
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: 211
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-08-22T04: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-10-22T04: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: 7528ef5b-50a4-4124-879d-321631ac5948
error:
type: string
example: null
nullable: true
payment_method:
type: object
properties:
id:
type: integer
example: 6187
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: 213
plan_name: 'Monthly Membership 30805'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-08-22T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-10-22T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: a35294f2-8012-40c8-a165-32d152edabc3
error: null
payment_method:
id: 6189
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: 213
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-08-22T04: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-10-22T04: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: a35294f2-8012-40c8-a165-32d152edabc3
error:
type: string
example: null
nullable: true
payment_method:
type: object
properties:
id:
type: integer
example: 6189
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
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: 214
plan_name: 'Monthly Membership 93082'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-08-22T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-10-22T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: 97b27f0e-9073-4f5b-a3af-e47df7800514
error: null
payment_method:
id: 6190
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: 214
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-08-22T04: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-10-22T04: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: 97b27f0e-9073-4f5b-a3af-e47df7800514
error:
type: string
example: null
nullable: true
payment_method:
type: object
properties:
id:
type: integer
example: 6190
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
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: 215
plan_name: 'Monthly Membership 43383'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-08-22T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-10-22T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: d3fe0d42-d878-4b50-b28a-54bea540bcb1
error: null
payment_method:
id: 6191
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: 215
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-08-22T04: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-10-22T04: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: d3fe0d42-d878-4b50-b28a-54bea540bcb1
error:
type: string
example: null
nullable: true
payment_method:
type: object
properties:
id:
type: integer
example: 6191
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/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: 216
plan_name: 'Monthly Membership 92439'
amount: '0.00'
recurrence_schedule: Monthly
start_date: '2026-08-22T04:00:00.000000Z'
end_date: null
last_run_date: null
last_run_status: null
last_run_failed_count: 0
next_run_date: '2026-10-22T04:00:00.000000Z'
status: Active
paused_until_date: null
cancelled_at: null
cancelled_by: null
customer_uuid: d736d007-bca0-4347-a467-58408c36d132
error: null
payment_method:
id: 6192
type: cc
last_four: '2074'
expiration: 08/2030
properties:
data:
type: object
properties:
id:
type: string
example: null
nullable: true
subscription_plan_id:
type: integer
example: 216
plan_name:
type: string
example: 'Monthly Membership 92439'
amount:
type: string
example: '0.00'
recurrence_schedule:
type: string
example: Monthly
start_date:
type: string
example: '2026-08-22T04: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-10-22T04: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: d736d007-bca0-4347-a467-58408c36d132
error:
type: string
example: null
nullable: true
payment_method:
type: object
properties:
id:
type: integer
example: 6192
type:
type: string
example: cc
last_four:
type: string
example: '2074'
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