openapi: 3.0.3 info: title: 'Dime Payments API Documentation' description: 'A simple, basic API for managing Merchants through Dime Payments. JSON based REST API' version: 1.0.0 servers: - url: 'https://app.dimepayments.com' tags: - name: 'Merchant management' description: '' - name: 'Transaction management' description: "\nAPIs for managing transactions. Depending on API KEY permissions, one should be able to\ncharge credit cards, ACH, Google/Apple Pay wallets along with other functions." - name: Addresses description: "\nAPIs for managing customer addresses" - name: 'Customer management' description: "\nAPIs for managing customers. Depending on API KEY permissions, one should be able to\nlist, create, update, and delete customers along with several other customer specific requests." - name: 'Deposit management' description: '' - name: 'Invoice management' description: "\nAPIs for managing invoices. Depending on API KEY permissions, one should be\nable to list, create, update, delete, and send invoices, manage their line\nitems, and manage recurring-invoice schedules. Every request is scoped to a\nsingle Merchant via the required `data.sid`." - name: 'Payment Method management' description: "\nAPIs for managing payment methods associated with customers. Depending on API KEY permissions, one should be able to\nlist, show, create, update, and delete payment methods." - name: 'Recurring Payments management' description: "\nAPIs for managing recurring payments. Depending on API KEY permissions, one should be able to\ncreate, edit, pause, cancel along with other functions." - name: 'Subscription Plans management' description: "\nMerchant-facing API for subscription plans (recurring offerings customers\nsubscribe to). The merchant is identified by `data.sid`; the token must carry\nthe matching `subscription-plan:*` ability. Mirrors the recurring-payment and\ninvoice API controllers." - name: 'Subscriptions management' description: "\nMerchant-facing API for individual customer subscriptions (enrollments in a\nplan). The merchant is identified by `data.sid`; the token must carry the\nmatching `subscription:*` ability. Lifecycle transitions delegate to the\n{@see \\App\\Actions\\Subscription} action classes so the matching `SUBSCRIPTION_*`\nwebhook always fires. Mirrors the recurring-payment and subscription-plan API\ncontrollers." - name: Zapier description: "\nAPIs for use through Zapier. Depending on API KEY permissions, one should be able to\nsee customers and transactions data." components: securitySchemes: default: type: http scheme: bearer description: 'You can retrieve your token by visiting your dashboard and clicking Generate API token under your profile in top right.' security: - default: [] paths: /api/merchant/list: get: summary: 'List Merchants' operationId: listMerchants description: 'Get a list of all merchants and their fields' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - name: 'Dime Payments' dba: '' notes: '' sid: '00001' ein: '' mcc: '8999' slug: pay pub_api_key: pkapi_prod_B5n2hQhy6uAp1rLjqs processor_mid: '650000012366624' active: true active_at: null pending_cancellation: null approved_cancellation: null approved_cancellation_by: null g_pay: false a_pay: false pci_compliance: true api_access: '2025-05-20T12:43:00.000000Z' api_enabled_by_id: 1 website: 'https://dimepayments.com' addr1: '53 S. Main St' addr2: '' addr3: '' city: Alpharetta state: GA zip: '30009' phone: '4049064975' primary_phone: '4049064975' primary_email: ben@dimepayments.com primary_name: 'Ben Habeck' - name: 'Dime Payments' dba: '' notes: '' sid: '00001' ein: '' mcc: '8999' slug: pay pub_api_key: pkapi_prod_B5n2hQhy6uAp1rLjqs processor_mid: '650000012366624' active: true active_at: null pending_cancellation: null approved_cancellation: null approved_cancellation_by: null g_pay: false a_pay: false pci_compliance: true api_access: '2025-05-20T12:43:00.000000Z' api_enabled_by_id: 1 website: 'https://dimepayments.com' addr1: '53 S. Main St' addr2: '' addr3: '' city: Alpharetta state: GA zip: '30009' phone: '4049064975' primary_phone: '4049064975' primary_email: ben@dimepayments.com primary_name: 'Ben Habeck' properties: data: type: array example: - name: 'Dime Payments' dba: '' notes: '' sid: '00001' ein: '' mcc: '8999' slug: pay pub_api_key: pkapi_prod_B5n2hQhy6uAp1rLjqs processor_mid: '650000012366624' active: true active_at: null pending_cancellation: null approved_cancellation: null approved_cancellation_by: null g_pay: false a_pay: false pci_compliance: true api_access: '2025-05-20T12:43:00.000000Z' api_enabled_by_id: 1 website: 'https://dimepayments.com' addr1: '53 S. Main St' addr2: '' addr3: '' city: Alpharetta state: GA zip: '30009' phone: '4049064975' primary_phone: '4049064975' primary_email: ben@dimepayments.com primary_name: 'Ben Habeck' - name: 'Dime Payments' dba: '' notes: '' sid: '00001' ein: '' mcc: '8999' slug: pay pub_api_key: pkapi_prod_B5n2hQhy6uAp1rLjqs processor_mid: '650000012366624' active: true active_at: null pending_cancellation: null approved_cancellation: null approved_cancellation_by: null g_pay: false a_pay: false pci_compliance: true api_access: '2025-05-20T12:43:00.000000Z' api_enabled_by_id: 1 website: 'https://dimepayments.com' addr1: '53 S. Main St' addr2: '' addr3: '' city: Alpharetta state: GA zip: '30009' phone: '4049064975' primary_phone: '4049064975' primary_email: ben@dimepayments.com primary_name: 'Ben Habeck' items: type: object properties: name: type: string example: 'Dime Payments' description: 'The name of the merchant.' dba: type: string example: '' notes: type: string example: '' sid: type: string example: '00001' description: 'The unique Dime Payments ID for the merchant.' ein: type: string example: '' mcc: type: string example: '8999' description: 'The MCC Code assigned to the merchant.' slug: type: string example: pay description: "The unique address for the merchant's pay page. i.e. https://dimepayments.com/{slug}." pub_api_key: type: string example: pkapi_prod_B5n2hQhy6uAp1rLjqs description: "The public API key for the gateway's tokenizer." processor_mid: type: string example: '650000012366624' active: type: boolean example: true description: 'If this merchant is active on Dime Payments.' active_at: type: string example: null description: 'date The date the merchant was made active.' pending_cancellation: type: string example: null nullable: true approved_cancellation: type: string example: null nullable: true approved_cancellation_by: type: string example: null nullable: true g_pay: type: boolean example: false description: 'If this merchant is active on Google Pay.' a_pay: type: boolean example: false description: 'If this merchant is active on Apple Pay.' pci_compliance: type: boolean example: true description: 'If this merchant has an active AoC on file with Dime Payments.' api_access: type: string example: '2025-05-20T12:43:00.000000Z' api_enabled_by_id: type: integer example: 1 website: type: string example: 'https://dimepayments.com' description: "The merchant's website." addr1: type: string example: '53 S. Main St' description: "The merchant's first address line." addr2: type: string example: '' description: "The merchant's second address line (optional)." addr3: type: string example: '' city: type: string example: Alpharetta description: "The merchant's city." state: type: string example: GA description: "The merchant's state." zip: type: string example: '30009' description: "The merchant's zip code." phone: type: string example: '4049064975' description: "The merchant's phone number." primary_phone: type: string example: '4049064975' description: "The merchant's primary contact phone number." primary_email: type: string example: ben@dimepayments.com description: "The merchant's primary email address." primary_name: type: string example: 'Ben Habeck' description: "The merchant's primary full name." 400: description: 'Failed validation' content: application/json: schema: type: object example: errors: filters.start_date: - 'The filters.start_date field must be a valid date.' properties: errors: type: object properties: filters.start_date: type: array example: - 'The filters.start_date field must be a valid date.' items: type: string 401: description: 'Bad API Key Permission' content: application/json: schema: type: object example: message: 'Permission Denied.' properties: message: type: string example: 'Permission Denied.' tags: - 'Merchant management' requestBody: required: false content: application/json: schema: type: object properties: filters: type: object description: '' example: [] properties: start_date: type: string description: 'required_with:filters.end_date The start date for filtering customers in `Y-m-d H:i:s` format. Must be before or equal to filters.end_date.' example: '2024-01-01 00:00:00' end_date: type: string description: 'required_with:filters.start_date The end date for filtering customers in `Y-m-d H:i:s` format. Must be after or equal to filters.start_date.' example: '2024-12-31 23:59:59' /api/merchant/show: get: summary: "Show a specific Merchant's Details" operationId: showASpecificMerchantsDetails description: 'List all non-protected fields for a merchant. Other fields are available using their specific requests.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: name: 'Dime Payments' sid: '00001' mcc: '8999' slug: pay pub_api_key: pkapi_prod_B5n2hQhy6uAp1rLjqs processor_mid: '650000012366624' active: true active_at: null g_pay: false a_pay: false pci_compliance: true website: 'https://dimepayments.com' addr1: '53 S. Main St' addr2: '' city: Alpharetta state: GA zip: '30009' phone: '4049064975' primary_phone: '4049064975' primary_email: ben@dimepayments.com primary_name: 'Ben Habeck' properties: data: type: object properties: name: type: string example: 'Dime Payments' description: 'The name of the merchant.' sid: type: string example: '00001' description: 'The unique Dime Payments ID for the merchant.' mcc: type: string example: '8999' description: 'The MCC Code assigned to the merchant.' slug: type: string example: pay description: "The unique address for the merchant's pay page. i.e. https://dimepayments.com/{slug}." pub_api_key: type: string example: pkapi_prod_B5n2hQhy6uAp1rLjqs description: "The public API key for the gateway's tokenizer." processor_mid: type: string example: '650000012366624' description: "The unique ID for the processor's merchant account.'" active: type: boolean example: true description: 'If this merchant is active on Dime Payments.' active_at: type: string example: null description: 'date The date the merchant was made active.' g_pay: type: boolean example: false description: 'If this merchant is active on Google Pay.' a_pay: type: boolean example: false description: 'If this merchant is active on Apple Pay.' pci_compliance: type: boolean example: true description: 'If this merchant has an active AoC on file with Dime Payments.' website: type: string example: 'https://dimepayments.com' description: "The merchant's website." addr1: type: string example: '53 S. Main St' description: "The merchant's first address line." addr2: type: string example: '' description: "The merchant's second address line (optional)." city: type: string example: Alpharetta description: "The merchant's city." state: type: string example: GA description: "The merchant's state." zip: type: string example: '30009' description: "The merchant's zip code." phone: type: string example: '4049064975' description: "The merchant's phone number." primary_phone: type: string example: '4049064975' description: "The merchant's primary contact phone number." primary_email: type: string example: ben@dimepayments.com description: "The merchant's primary email address." primary_name: type: string example: 'Ben Habeck' description: "The merchant's primary full name." 400: description: 'Failed validation' content: application/json: schema: type: object example: errors: filters.start_date: - 'The filters.start_date field must be a valid date.' properties: errors: type: object properties: filters.start_date: type: array example: - 'The filters.start_date field must be a valid date.' items: type: string 401: description: 'Bad API Key Permission' content: application/json: schema: type: object example: message: 'Permission Denied.' properties: message: type: string example: 'Permission Denied.' tags: - 'Merchant management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: number description: 'ID of a merchant account.' example: 1234567.0 required: - sid /api/merchant/create: post: summary: 'Create Merchant' operationId: createMerchant description: 'Create a merchant record which can be used for generating an application.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: name: 'Dime Payments' sid: '00001' mcc: '8999' slug: pay pub_api_key: pkapi_prod_B5n2hQhy6uAp1rLjqs processor_mid: '650000012366624' active: true active_at: null g_pay: false a_pay: false pci_compliance: true website: 'https://dimepayments.com' addr1: '53 S. Main St' addr2: '' city: Alpharetta state: GA zip: '30009' phone: '4049064975' primary_phone: '4049064975' primary_email: ben@dimepayments.com primary_name: 'Ben Habeck' properties: data: type: object properties: name: type: string example: 'Dime Payments' description: 'The name of the merchant.' sid: type: string example: '00001' description: 'The unique Dime Payments ID for the merchant.' mcc: type: string example: '8999' description: 'The MCC Code assigned to the merchant.' slug: type: string example: pay description: "The unique address for the merchant's pay page. i.e. https://dimepayments.com/{slug}." pub_api_key: type: string example: pkapi_prod_B5n2hQhy6uAp1rLjqs description: "The public API key for the gateway's tokenizer." processor_mid: type: string example: '650000012366624' active: type: boolean example: true description: 'If this merchant is active on Dime Payments.' active_at: type: string example: null description: 'date The date the merchant was made active.' g_pay: type: boolean example: false description: 'If this merchant is active on Google Pay.' a_pay: type: boolean example: false description: 'If this merchant is active on Apple Pay.' pci_compliance: type: boolean example: true description: 'If this merchant has an active AoC on file with Dime Payments.' website: type: string example: 'https://dimepayments.com' description: "The merchant's website." addr1: type: string example: '53 S. Main St' description: "The merchant's first address line." addr2: type: string example: '' description: "The merchant's second address line (optional)." city: type: string example: Alpharetta description: "The merchant's city." state: type: string example: GA description: "The merchant's state." zip: type: string example: '30009' description: "The merchant's zip code." phone: type: string example: '4049064975' description: "The merchant's phone number." primary_phone: type: string example: '4049064975' description: "The merchant's primary contact phone number." primary_email: type: string example: ben@dimepayments.com description: "The merchant's primary email address." primary_name: type: string example: 'Ben Habeck' description: "The merchant's primary full name." 400: description: '' content: application/json: schema: oneOf: - description: 'Failed validation' type: object example: errors: data.phone: - 'The data.phone field is required.' properties: errors: type: object properties: data.phone: type: array example: - 'The data.phone field is required.' items: type: string - description: 'Merchant not created' type: object example: data: message: 'Something went wrong: contact Dime Payments Rep' properties: data: type: object properties: message: type: string example: 'Something went wrong: contact Dime Payments Rep' 401: description: 'Bad API Key Permission' content: application/json: schema: type: object example: message: 'Permission Denied.' properties: message: type: string example: 'Permission Denied.' tags: - 'Merchant management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: name: type: string description: 'The name of the Merchant. Avoid special characters like \ or ''.' example: 'Acme Inc' slug: type: string description: 'Must be unique and HTML URL Compliant.' example: acme-inc mcc: type: integer description: 'Must be 4 digits and one of the MCC codes approved for your affiliate account.' example: 8661 website: type: string description: 'Must be a valid full URL.' example: 'https://acme-inc.com' addr1: type: string description: 'Address line 1 of the Merchant.' example: '123 4th Street' addr2: type: string description: 'optional Address line 2 of the Merchant.' example: 'Suite 5' nullable: true city: type: string description: 'The city of the Merchant.' example: Alpharetta state: type: string description: 'The state abbreviation of teh Merchant.' example: GA zip: type: integer description: 'The 5-digit zip of the Merchant.' example: 30009 phone: type: string description: 'The main phone number for the Merchant in e164 format.' example: '+177012345678' primary_phone: type: string description: 'The phone of the main contact for the Merchant in e164 format.' example: '+140412345678' primary_name: type: string description: 'The full name of the main contact for the Merchant.' example: 'John Doe' primary_email: type: string description: 'The email of the main contact for the Merchant.' example: john@acme.com industry: type: string description: 'Must be a supported Industry name, contact Dime Payments Rep for values.' example: Church required: - name - slug - mcc - website - addr1 - city - state - zip - phone - primary_phone - primary_name - primary_email - industry /api/merchant/update: patch: summary: "Update a specific Merchant's Details" operationId: updateASpecificMerchantsDetails description: "Update a Merchant's details." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: name: 'Dime Payments' sid: '00001' mcc: '8999' slug: pay pub_api_key: pkapi_prod_B5n2hQhy6uAp1rLjqs processor_mid: '650000012366624' active: true active_at: null g_pay: false a_pay: false pci_compliance: true website: 'https://dimepayments.com' addr1: '53 S. Main St' addr2: '' city: Alpharetta state: GA zip: '30009' phone: '4049064975' primary_phone: '4049064975' primary_email: ben@dimepayments.com primary_name: 'Ben Habeck' properties: data: type: object properties: name: type: string example: 'Dime Payments' description: 'The name of the merchant.' sid: type: string example: '00001' description: 'The unique Dime Payments ID for the merchant.' mcc: type: string example: '8999' description: 'The MCC Code assigned to the merchant.' slug: type: string example: pay description: "The unique address for the merchant's pay page. i.e. https://dimepayments.com/{slug}." pub_api_key: type: string example: pkapi_prod_B5n2hQhy6uAp1rLjqs description: "The public API key for the gateway's tokenizer." processor_mid: type: string example: '650000012366624' active: type: boolean example: true description: 'If this merchant is active on Dime Payments.' active_at: type: string example: null description: 'date The date the merchant was made active.' g_pay: type: boolean example: false description: 'If this merchant is active on Google Pay.' a_pay: type: boolean example: false description: 'If this merchant is active on Apple Pay.' pci_compliance: type: boolean example: true description: 'If this merchant has an active AoC on file with Dime Payments.' website: type: string example: 'https://dimepayments.com' description: "The merchant's website." addr1: type: string example: '53 S. Main St' description: "The merchant's first address line." addr2: type: string example: '' description: "The merchant's second address line (optional)." city: type: string example: Alpharetta description: "The merchant's city." state: type: string example: GA description: "The merchant's state." zip: type: string example: '30009' description: "The merchant's zip code." phone: type: string example: '4049064975' description: "The merchant's phone number." primary_phone: type: string example: '4049064975' description: "The merchant's primary contact phone number." primary_email: type: string example: ben@dimepayments.com description: "The merchant's primary email address." primary_name: type: string example: 'Ben Habeck' description: "The merchant's primary full name." 400: description: '' content: application/json: schema: oneOf: - description: 'Failed validation' type: object example: errors: data.phone: - 'The data.phone field is required.' properties: errors: type: object properties: data.phone: type: array example: - 'The data.phone field is required.' items: type: string - description: 'Merchant not created' type: object example: data: message: 'Something went wrong: contact Dime Payments Rep' properties: data: type: object properties: message: type: string example: 'Something went wrong: contact Dime Payments Rep' 401: description: 'Bad API Key Permission' content: application/json: schema: type: object example: message: 'Permission Denied.' properties: message: type: string example: 'Permission Denied.' tags: - 'Merchant management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: integer description: 'The SID of the Merchant to update.' example: 99 slug: type: string description: 'Must be unique and HTML URL Compliant.' example: acme-inc name: type: string description: 'The name of the Merchant. Avoid special characters like \ or ''.' example: 'Acme Inc' mcc: type: integer description: 'Must be 4 digits and one of the MCC codes approved for your affiliate account.' example: 8661 website: type: string description: 'Must be a valid full URL.' example: 'https://acme-inc.com' addr1: type: string description: 'Address line 1 of the Merchant.' example: '123 4th Street' addr2: type: string description: 'optional Address line 2 of the Merchant.' example: 'Suite 5' nullable: true city: type: string description: 'The city of the Merchant.' example: Alpharetta state: type: string description: 'The state abbreviation of teh Merchant.' example: GA zip: type: integer description: 'The 5-digit zip of the Merchant.' example: 30009 phone: type: string description: 'The main phone number for the Merchant in e164 format.' example: '+177012345678' primary_phone: type: string description: 'The phone of the main contact for the Merchant in e164 format.' example: '+140412345678' primary_name: type: string description: 'The full name of the main contact for the Merchant.' example: 'John Doe' primary_email: type: string description: 'The email of the main contact for the Merchant.' example: john@acme.com industry: type: string description: 'Must be a supported Industry name, contact Dime Payments Rep for values.' example: Church required: - sid - slug - name - mcc - website - addr1 - city - state - zip - phone - primary_phone - primary_name - primary_email - industry /api/merchant/get-form-link: get: summary: 'Get a unique, secure link to the signup application for a Merchant.' operationId: getAUniqueSecureLinkToTheSignupApplicationForAMerchant description: "Passed a merchant's ID, returns a full URL to the application for processor\napproval. This link expires in 48 hours." parameters: [] responses: 200: description: Success content: application/json: schema: type: object example: data: link: 'https://app.dimepayments.com/some/link' properties: data: type: object properties: link: type: string example: 'https://app.dimepayments.com/some/link' description: 'The https secure link for the Merchant application that expires in 48 hours.' 400: description: 'Failed validation' content: application/json: schema: type: object example: errors: data.sid: - 'The data.sid field is required.' properties: errors: type: object properties: data.sid: type: array example: - 'The data.sid field is required.' items: type: string 401: description: 'Bad API Key Permission' content: application/json: schema: type: object example: message: 'Permission Denied.' properties: message: type: string example: 'Permission Denied.' tags: - 'Merchant management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: integer description: 'The unique SID of the Merchant.' example: 69 required: - sid /api/transactions: get: summary: 'List Transactions' operationId: listTransactions description: 'Retrieves a list of transactions for a given Merchant, filtered by various parameters.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - transaction_type: CC transaction_status: CC_CREDIT transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.' transaction_number: '741046715' transaction_date: '2023-02-15T19:14:44.000000Z' fund_date: '2023-02-17T05:05:35.000000Z' settle_date: '2023-03-24T11:30:04.000000Z' amount: '1.0000' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: '' multi_use_token: '' pending: false transaction_info_id: '789161791' parent_transaction_info_id: '' billing_address: first_name: null last_name: null addr1: null addr2: null city: null state: null zip: null shippingAddress: addr1: null addr2: null city: null state: null zip: null - transaction_type: CC transaction_status: CC_CREDIT transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.' transaction_number: '741046715' transaction_date: '2023-02-15T19:14:44.000000Z' fund_date: '2023-02-17T05:05:35.000000Z' settle_date: '2023-03-24T11:30:04.000000Z' amount: '1.0000' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: '' multi_use_token: '' pending: false transaction_info_id: '789161791' parent_transaction_info_id: '' billing_address: first_name: null last_name: null addr1: null addr2: null city: null state: null zip: null shippingAddress: addr1: null addr2: null city: null state: null zip: null links: prev: null next: null meta: path: / per_page: 15 next_cursor: null prev_cursor: null properties: data: type: array example: - transaction_type: CC transaction_status: CC_CREDIT transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.' transaction_number: '741046715' transaction_date: '2023-02-15T19:14:44.000000Z' fund_date: '2023-02-17T05:05:35.000000Z' settle_date: '2023-03-24T11:30:04.000000Z' amount: '1.0000' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: '' multi_use_token: '' pending: false transaction_info_id: '789161791' parent_transaction_info_id: '' billing_address: first_name: null last_name: null addr1: null addr2: null city: null state: null zip: null shippingAddress: addr1: null addr2: null city: null state: null zip: null - transaction_type: CC transaction_status: CC_CREDIT transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.' transaction_number: '741046715' transaction_date: '2023-02-15T19:14:44.000000Z' fund_date: '2023-02-17T05:05:35.000000Z' settle_date: '2023-03-24T11:30:04.000000Z' amount: '1.0000' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: '' multi_use_token: '' pending: false transaction_info_id: '789161791' parent_transaction_info_id: '' billing_address: first_name: null last_name: null addr1: null addr2: null city: null state: null zip: null shippingAddress: addr1: null addr2: null city: null state: null zip: null items: type: object properties: transaction_type: type: string example: CC description: 'Transaction type. Example: Checking' transaction_status: type: string example: CC_CREDIT description: 'Transaction Status. Example: CC Pending' transaction_status_description: type: string example: 'Successful credit/debit card transaction that brings funds into the ProPay Account.' description: 'Transaction Status. Example: A transaction that has not cleared yet' transaction_number: type: string example: '741046715' transaction_date: type: string example: '2023-02-15T19:14:44.000000Z' description: 'Transaction Date. Example: 2024-01-17T12:44:28.000000Z' fund_date: type: string example: '2023-02-17T05:05:35.000000Z' description: 'Fund Date. Example: 2024-01-18T21:05:21.000000Z' settle_date: type: string example: '2023-03-24T11:30:04.000000Z' description: 'Settle Date. Example: 2024-01-17T18:35:00.000000Z' amount: type: string example: '1.0000' description: 'Transaction amount. Example: $120.00' description: type: string example: '' description: 'Transaction type. Example: Checking' status_code: type: string example: '' description: 'The status code of the transaction.' status_text: type: string example: '' description: 'The status text of the transaction.' email: type: string example: '' description: 'The email of the transaction.' phone: type: string example: '' description: 'The phone of the transaction.' customer_uuid: type: string example: '' description: 'The customer uuid of the transaction.' multi_use_token: type: string example: '' description: 'The multi use token of the transaction.' pending: type: boolean example: false description: 'The pending status of the transaction.' transaction_info_id: type: string example: '789161791' description: "The transaction's info id that can be used in requests to other API endpoints to look up a specific transaction." parent_transaction_info_id: type: string example: '' description: "The transaction's parent's info id that can be used in requests to other API endpoints to look up a specific transaction." billing_address: type: object properties: first_name: type: string example: null description: 'The first name field.' last_name: type: string example: null description: 'The last name field.' addr1: type: string example: null description: 'The first address line.' addr2: type: string example: null description: 'The second address line.' city: type: string example: null description: 'The city field.' state: type: string example: null description: 'The state field.' zip: type: string example: null description: 'The zip field.' shippingAddress: type: object properties: addr1: type: string example: null nullable: true addr2: type: string example: null nullable: true city: type: string example: null nullable: true state: type: string example: null nullable: true zip: type: string example: null nullable: true links: type: object properties: prev: type: string example: null nullable: true next: type: string example: null nullable: true meta: type: object properties: path: type: string example: / per_page: type: integer example: 15 next_cursor: type: string example: null nullable: true prev_cursor: type: string example: null nullable: true 400: description: 'Failed validation' content: application/json: schema: type: object example: errors: filters.start_date: - 'The filters.start_date field must be a valid date.' properties: errors: type: object properties: filters.start_date: type: array example: - 'The filters.start_date field must be a valid date.' items: type: string 401: description: '' content: application/json: schema: oneOf: - description: 'Token unauthorized' type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' - description: 'Invalid merchant or affiliate authorization' type: object example: data: message: Unauthorized properties: data: type: object properties: message: type: string example: Unauthorized - description: 'Invalid merchant or affiliate associations' type: object example: data: message: 'Not associated with affiliate' properties: data: type: object properties: message: type: string example: 'Not associated with affiliate' 404: description: '' content: application/json: schema: oneOf: - description: 'Invalid sid' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' - description: 'No transactions found' type: object example: data: message: 'No transactions found' properties: data: type: object properties: message: type: string example: 'No transactions found' tags: - 'Transaction management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: string description: 'The ID of the merchant that processed the transactions.' example: '12345' required: - sid filters: type: object description: '' example: [] properties: start_date: type: string description: 'The start date for filtering transactions in `Y-m-d H:i:s` format.' example: '2021-01-01 00:00:00' end_date: type: string description: 'The end date for filtering transactions in `Y-m-d H:i:s` format.' example: '2021-12-31 23:59:59' sweep_id: type: string description: 'The sweep ID of the transaction.' example: 'sweep_123*' customer_uuid: type: string description: 'The customer UUID associated with the transaction.' example: cust_456 /api/transaction/charge-card: post: summary: 'Charge a Credit Card' operationId: chargeACreditCard description: "This endpoint allows you to charge a credit card using the PAN Data or a Token. This endpoint will process the charge and return a token\nrepresenting the card that can be used for transactions as well as the transactionId and the customerUUID if requested.\nIf you pass a customer UUID or a customer phone number, then a customer record will be created or retrieved if it already exists, also making the customer UUID available for the purpose of associating charges to a customer.\nYou must be PCI Compliant (have an AoC on file with Dime Payments) to process PAN Data. A token can optionally be provided to process charges without requiring PCI compliance as no PAN data is being sent." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: transaction_type: 'Credit Card' transaction_status: Success transaction_status_description: 'Transaction Successful' transaction_number: '1234567890' transaction_date: '2020-01-01' fund_date: '2020-01-01' settle_date: '2020-01-01' amount: '100.00' description: 'a memo concerning this transaction' status_code: '00' status_text: APPROVAL email: email@email.com phone: '+17701234567' customer_uuid: 66f1c230-1337-5g59-b43c-1bcb83adfaaa multi_use_token: abcdefg123456790 pending: true transaction_info_id: '1234567890' parent_transaction_info_id: '1234567890' billing_address: first_name: John last_name: Doe addr1: '123 Main St' addr2: 'Suite 100' city: 'New York' state: NY shipping_address: addr1: '12 Street Ave' addr2: 'Suite 123' city: Boulder state: CO zip: '80302' properties: data: type: object properties: transaction_type: type: string example: 'Credit Card' transaction_status: type: string example: Success description: 'The status of the transaction.' transaction_status_description: type: string example: 'Transaction Successful' description: 'The description of the transaction status.' transaction_number: type: string example: '1234567890' description: 'The unique transaction used for referencing in the future.' transaction_date: type: string example: '2020-01-01' description: 'The date the transaction was processed.' fund_date: type: string example: '2020-01-01' description: 'The date the funds were deposited into the account.' settle_date: type: string example: '2020-01-01' description: 'The date the funds were settled into the account.' amount: type: string example: '100.00' description: 'The amount of the transaction.' description: type: string example: 'a memo concerning this transaction' description: 'The original memo field.' status_code: type: string example: '00' description: 'Response code from processor.' status_text: type: string example: APPROVAL description: 'Response text from processor.' email: type: string example: email@email.com description: 'The email address of a customer record, if one was created/provided.' phone: type: string example: '+17701234567' description: 'The phone number of a customer record, if one was created/provided.' customer_uuid: type: string example: 66f1c230-1337-5g59-b43c-1bcb83adfaaa description: "The unique UUID of the merchant's customer, only if a customer record was created." multi_use_token: type: string example: abcdefg123456790 description: 'A token used to charge against a stored credit card.' pending: type: boolean example: true description: 'The pending status of the transaction.' transaction_info_id: type: string example: '1234567890' description: "The transaction's info id that can be used in requests to other API endpoints to look up a specific transaction." parent_transaction_info_id: type: string example: '1234567890' description: "The transaction's parent's info id that can be used in requests to other API endpoints to look up a specific transaction." billing_address: type: object properties: first_name: type: string example: John description: 'The first name field.' last_name: type: string example: Doe description: 'The last name field.' addr1: type: string example: '123 Main St' description: 'The first address line.' addr2: type: string example: 'Suite 100' description: 'The second address line.' city: type: string example: 'New York' description: 'The city field.' state: type: string example: NY description: 'The state field.' shipping_address: type: object properties: addr1: type: string example: '12 Street Ave' description: 'The first address line.' addr2: type: string example: 'Suite 123' description: 'The second address line.' city: type: string example: Boulder description: 'The city field.' state: type: string example: CO description: 'The state field.' zip: type: string example: '80302' description: 'The zip field.' 400: description: '' content: application/json: schema: oneOf: - description: '' type: object example: errors: sid: - 'The sid is required.' properties: errors: type: object properties: sid: type: array example: - 'The sid is required.' items: type: string - description: '' type: object example: data: transaction_type: 'Credit Card' transaction_status: Failed transaction_status_description: 'Transaction failed' transaction_number: '1234567890' transaction_date: '2020-01-01' fund_date: '2020-01-01' settle_date: '2020-01-01' amount: '100.00' description: 'a memo concerning this transaction' status_code: '05' status_text: DECLINE email: email@email.com phone: '+17701234567' customer_uuid: 66f1c230-1337-5g59-b43c-1bcb83adfaaa multi_use_token: abcdefg123456790 pending: true transaction_info_id: '1234567890' parent_transaction_info_id: '1234567890' billing_address: first_name: John last_name: Doe addr1: '123 Main St' addr2: 'Suite 100' city: 'New York' state: NY shipping_address: addr1: '12 Street Ave' addr2: 'Suite 123' city: Boulder state: CO zip: '80302' properties: data: type: object properties: transaction_type: type: string example: 'Credit Card' transaction_status: type: string example: Failed description: 'The status of the transaction.' transaction_status_description: type: string example: 'Transaction failed' description: 'The description of the transaction status.' transaction_number: type: string example: '1234567890' description: 'The unique transaction used for referencing in the future.' transaction_date: type: string example: '2020-01-01' description: 'The date the transaction was processed.' fund_date: type: string example: '2020-01-01' description: 'The date the funds were deposited into the account.' settle_date: type: string example: '2020-01-01' description: 'The date the funds were settled into the account.' amount: type: string example: '100.00' description: 'The amount of the transaction.' description: type: string example: 'a memo concerning this transaction' description: 'The original memo field.' status_code: type: string example: '05' description: 'Response code from processor.' status_text: type: string example: DECLINE description: 'Response text from processor.' email: type: string example: email@email.com description: 'The email address of a customer record, if one was created/provided.' phone: type: string example: '+17701234567' description: 'The phone number of a customer record, if one was created/provided.' customer_uuid: type: string example: 66f1c230-1337-5g59-b43c-1bcb83adfaaa description: "The unique UUID of the merchant's customer, only if a customer record was created." multi_use_token: type: string example: abcdefg123456790 description: 'A token used to charge against a stored credit card.' pending: type: boolean example: true description: 'The pending status of the transaction.' transaction_info_id: type: string example: '1234567890' description: "The transaction's info id that can be used in requests to other API endpoints to look up a specific transaction." parent_transaction_info_id: type: string example: '1234567890' description: "The transaction's parent's info id that can be used in requests to other API endpoints to look up a specific transaction." billing_address: type: object properties: first_name: type: string example: John description: 'The first name field.' last_name: type: string example: Doe description: 'The last name field.' addr1: type: string example: '123 Main St' description: 'The first address line.' addr2: type: string example: 'Suite 100' description: 'The second address line.' city: type: string example: 'New York' description: 'The city field.' state: type: string example: NY description: 'The state field.' shipping_address: type: object properties: addr1: type: string example: '12 Street Ave' description: 'The first address line.' addr2: type: string example: 'Suite 123' description: 'The second address line.' city: type: string example: Boulder description: 'The city field.' state: type: string example: CO description: 'The state field.' zip: type: string example: '80302' description: 'The zip field.' 403: description: '' content: application/json: schema: type: object example: message: 'Permission Denied.' properties: message: type: string example: 'Permission Denied.' tags: - 'Transaction management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: amount: type: number description: '' example: 4326.41688 sid: type: number description: 'ID of merchant account processing the charge.' example: 1234567.0 phone: type: string description: 'Must be the phone number in e164 format.' example: '+177012345678' customer_uuid: type: string description: 'Must be a valid UUID.' example: 977e5426-8d13-3824-86aa-b092f8ae52c5 email: type: string description: 'The email of a customer. Max: 50.' example: gbailey@example.net nullable: true memo: type: string description: 'A string containing memo related information, such as an invoice ID. Max: 120.' example: architecto nullable: true token: type: string description: 'An optional token to be used to reference a stored card for processing.' example: abc123 cardholder_name: type: string description: 'The name of the cardholder. Max: 50.' example: 'John Doe' card_number: type: number description: 'The credit card number. Min: 15. Max: 16.' example: 1.2312312312312E+15 expiration_date: type: string description: 'Expiration date of the card, in the form mm/YYYY.' example: 01/2025 cvv: type: number description: "optional The card's CVV. Min: 3, Max: 4." example: 123.0 nullable: true billing_address: type: object description: '' example: [] properties: first_name: type: string description: 'required_without:data.token. Must not be greater than 50 characters.' example: m nullable: true last_name: type: string description: 'Must not be greater than 50 characters.' example: i nullable: true addr1: type: string description: "The cardholder's address line 1. Max: 55." example: '1234 Main St' nullable: true addr2: type: string description: "The cardholder's address line 2. Max: 55." example: 'Suite 100' nullable: true city: type: string description: "The cardholder's city. Max: 55." example: Atlanta nullable: true state: type: string description: "The cardholder's state. Max: 2." example: NY nullable: true zip: type: number description: "The cardholder's ZIP code. Digits: 5." example: 10001.0 required: - zip shipping_address: type: object description: '' example: [] properties: addr1: type: string description: 'optional The first address line. Max: 50.' example: '123 A Street' nullable: true addr2: type: string description: 'optional The second address line. Max: 50.' example: 'Suite 123' nullable: true city: type: string description: 'optional The city. Max: 50.' example: Alpharetta state: type: string description: 'optional The state. Max: 2.' example: GA zip: type: integer description: 'optional The state. Max: 5.' example: 0 uuid: type: string description: 'The UUID of the customer record.' example: 60dac128-28da-41ae-8632-aee299de13fd required: - amount - sid - cardholder_name /api/transaction/charge-ach: post: summary: 'Charge a Bank Account' operationId: chargeABankAccount description: '' parameters: [] responses: 200: description: 'Successful Transaction' content: application/json: schema: type: object example: data: transaction_type: ACH transaction_status: Success transaction_status_description: Success transaction_number: '130' transaction_date: '2021-01-01' fund_date: '2021-01-01' settle_date: '2021-01-01' amount: '25' description: '' status_code: '00' status_text: Success email: test@test.com phone: '' customer_uuid: '' multi_use_token: '' pending: false transaction_info_id: '1234567890' parent_transaction_info_id: '1234567890' billing_address: first_name: First last_name: Last addr1: '12 Street Ave' addr2: 'Suite 123' city: Boulder state: CO zip: '80302' shipping_address: addr1: '12 Street Ave' addr2: 'Suite 123' city: Boulder state: CO zip: '80302' properties: data: type: object properties: transaction_type: type: string example: ACH description: 'ACH or Credit Card.' transaction_status: type: string example: Success description: 'The status of the transaction.' transaction_status_description: type: string example: Success description: 'The description of the transaction status.' transaction_number: type: string example: '130' description: 'The unique transaction used for referencing in the future.' transaction_date: type: string example: '2021-01-01' description: 'The date of the transaction.' fund_date: type: string example: '2021-01-01' description: 'The date funds were deposited.' settle_date: type: string example: '2021-01-01' description: 'The date funds were settled.' amount: type: string example: '25' description: 'The amount of the transaction in USD.' description: type: string example: '' description: 'The original memo field.' status_code: type: string example: '00' description: 'Response code from processor.' status_text: type: string example: Success description: 'Response text from processor.' email: type: string example: test@test.com description: 'The email address.' phone: type: string example: '' description: 'The phone number.' customer_uuid: type: string example: '' description: "The customer's UUID." multi_use_token: type: string example: '' description: Not pending: type: boolean example: false description: 'Shows if pending status.' transaction_info_id: type: string example: '1234567890' description: Not parent_transaction_info_id: type: string example: '1234567890' description: Not billing_address: type: object properties: first_name: type: string example: First description: 'The first name field.' last_name: type: string example: Last description: 'The last name field.' addr1: type: string example: '12 Street Ave' description: 'The first address line.' addr2: type: string example: 'Suite 123' description: 'The second address line.' city: type: string example: Boulder description: 'The city field.' state: type: string example: CO description: 'The state field.' zip: type: string example: '80302' description: 'The zip field.' shipping_address: type: object properties: addr1: type: string example: '12 Street Ave' description: 'The first address line.' addr2: type: string example: 'Suite 123' description: 'The second address line.' city: type: string example: Boulder description: 'The city field.' state: type: string example: CO description: 'The state field.' zip: type: string example: '80302' description: 'The zip field.' 400: description: 'Failed validation' content: application/json: schema: type: object example: errors: data.amount: - 'The data.amount field is required.' data.account_type: - 'The selected data.account_type is invalid.' properties: errors: type: object properties: data.amount: type: array example: - 'The data.amount field is required.' items: type: string data.account_type: type: array example: - 'The selected data.account_type is invalid.' items: type: string 401: description: '' content: application/json: schema: oneOf: - description: 'Token unauthorized' type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' - description: 'Invalid merchant or affiliate authorization' type: object example: data: message: Unauthorized properties: data: type: object properties: message: type: string example: Unauthorized - description: 'Invalid merchant or affiliate association' type: object example: data: message: 'Not associated with affiliate' properties: data: type: object properties: message: type: string example: 'Not associated with affiliate' 404: description: 'Invalid sid' content: application/json: schema: type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' tags: - 'Transaction management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: number description: 'The ID of merchant account processing the charge.' example: 1234567.0 routing_number: type: string description: 'The bank account routing number. Max: 9.' example: '123456789' account_number: type: string description: 'The bank account number. Max: 50.' example: '91828382' account_type: type: string description: 'Must be Checking or Savings.' example: Checking account_name: type: string description: 'The name on the bank account. Max: 50.' example: 'Acme Inc.' amount: type: number description: 'The transaction amount.' example: 99.19 phone: type: string description: 'The phone number.' example: '7701234567' customer_uuid: type: string description: "optional The unique UUID of the merchant's customer." example: 12312312-123123123-1231231231 email: type: string description: 'Must be a valid email address. Must not be greater than 50 characters.' example: okon.justina@example.com nullable: true memo: type: string description: 'optional The memo field. Max: 120.' example: 'payment for something' nullable: true billing_address: type: object description: '' example: [] properties: first_name: type: string description: 'The first name. Max: 50.' example: Ryan nullable: true last_name: type: string description: 'The first name. Max: 50.' example: Taylor nullable: true addr1: type: string description: 'optional The first address line. Max: 31.' example: '123 A Street' nullable: true addr2: type: string description: 'optional The second address line. Max: 31.' example: 'Suite 123' nullable: true city: type: string description: 'optional The city. Max: 52.' example: Alpharetta nullable: true state: type: string description: 'optional The state. Max: 2.' example: GA nullable: true zip: type: integer description: 'optional The zip code. Max: 5.' example: 30009 nullable: true shipping_address: type: object description: '' example: [] properties: addr1: type: string description: 'optional The first address line. Max: 50.' example: '123 A Street' nullable: true addr2: type: string description: 'optional The second address line. Max: 50.' example: 'Suite 123' nullable: true city: type: string description: 'optional The city. Max: 50.' example: Alpharetta nullable: true state: type: string description: 'optional The state. Max: 2.' example: GA nullable: true zip: type: integer description: 'optional The state. Max: 5.' example: 12345 nullable: true required: - sid - routing_number - account_number - account_type - account_name - amount /api/transaction/tokenize-card: post: summary: 'Tokenize a Credit Card' operationId: tokenizeACreditCard description: 'This endpoint allows you to tokenize a credit card, which will verify its validity and return a token representing the card that can be used for transactions. This method requires PCI compliance on the part of the affiliate or merchant.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: token: abcd1234 properties: data: type: object properties: token: type: string example: abcd1234 description: 'The token representing the card. Example: abcd1234' 400: description: '' content: application/json: schema: oneOf: - description: '' type: object example: errors: card_number: - 'The card number must be a number.' properties: errors: type: object properties: card_number: type: array example: - 'The card number must be a number.' items: type: string - description: '' type: object example: data: message: 'Validation of card failed.' properties: data: type: object properties: message: type: string example: 'Validation of card failed.' 401: description: '' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' tags: - 'Transaction management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: number description: 'The ID of the merchant account processing the charge.' example: 1234567.0 cardholder_name: type: string description: 'The name of the cardholder. Max: 50.' example: 'John Doe' card_number: type: number description: 'The 15/16-digit credit card number.' example: 1.2345678123457E+15 expiration_date: type: string description: 'Expiry date of the card, in the form mm/YYYY.' example: 01/2025 cvv: type: number description: "optional The card's CVV. Min: 3, Max: 4." example: 123.0 nullable: true billing_address: type: object description: '' example: [] properties: addr1: type: string description: "The cardholder's address line 1. Can be empty string Max: 55." example: '1234 Main St' nullable: true addr2: type: string description: "The cardholder's address line 2. Max: 55." example: 'Suite 100' nullable: true city: type: string description: "The cardholder's city. Can be empty string Max: 55." example: 'New York' nullable: true state: type: string description: "The cardholder's state. Can be empty string Max: 2." example: NY nullable: true zip: type: number description: "The cardholder's ZIP code. Digits: 5." example: 10001.0 required: - addr1 - city - state - zip required: - sid - cardholder_name - card_number - expiration_date /api/transaction: get: summary: 'Show Transaction' operationId: showTransaction description: '' parameters: [] responses: 200: description: 'Successful Show' content: application/json: schema: type: object example: data: transaction_type: CC transaction_status: 'CC Pending' transaction_status_description: 'A cc transaction that is pending' transaction_number: '1231' transaction_date: '2021-01-01' fund_date: '2021-01-01' settle_date: '2021-01-01' amount: '25.0000' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: 68d9feaa-04a9-4c48-8c00-a0b79c8b2f70 multi_use_token: '' pending: true transaction_info_id: '1231321' parent_transaction_info_id: '12313244444' billing_address: first_name: '' last_name: '' addr1: '' addr2: '' city: '' state: '' zip: '' shipping_address: addr1: '123 Main St' addr2: 'apt 1' city: Alpharetta state: GA zip: '12345' properties: data: type: object properties: transaction_type: type: string example: CC description: 'Transaction type. Example: Checking' transaction_status: type: string example: 'CC Pending' description: 'Transaction Status. Example: CC Pending' transaction_status_description: type: string example: 'A cc transaction that is pending' description: 'Transaction Status Description explaining the status. Example: A credit card transaction that has not settled yet.' transaction_number: type: string example: '1231' transaction_date: type: string example: '2021-01-01' description: 'Transaction Date. Example: 2024-01-17T12:44:28.000000Z' fund_date: type: string example: '2021-01-01' description: 'Fund Date. Example: 2024-01-18T21:05:21.000000Z' settle_date: type: string example: '2021-01-01' description: 'Settle Date. Example: 2024-01-17T18:35:00.000000Z' amount: type: string example: '25.0000' description: 'Transaction amount. Example: $120.00' description: type: string example: '' description: 'Transaction type. Example: Checking' status_code: type: string example: '' description: 'The status code of the transaction.' status_text: type: string example: '' description: 'The status text of the transaction.' email: type: string example: '' description: 'The email of the transaction.' phone: type: string example: '' description: 'The phone of the transaction.' customer_uuid: type: string example: 68d9feaa-04a9-4c48-8c00-a0b79c8b2f70 description: 'The customer uuid of the transaction.' multi_use_token: type: string example: '' description: 'The multi use token of the transaction.' pending: type: boolean example: true description: 'The pending status of the transaction.' transaction_info_id: type: string example: '1231321' description: "The transaction's info id that can be used in requests to other API endpoints to look up a specific transaction." parent_transaction_info_id: type: string example: '12313244444' description: "The transaction's parent's info id that can be used in requests to other API endpoints to look up a specific transaction." billing_address: type: object properties: first_name: type: string example: '' description: 'The first name field.' last_name: type: string example: '' description: 'The last name field.' addr1: type: string example: '' description: 'The first address line.' addr2: type: string example: '' description: 'The second address line.' city: type: string example: '' description: 'The city field.' state: type: string example: '' description: 'The state field.' zip: type: string example: '' description: 'The zip field.' shipping_address: type: object properties: addr1: type: string example: '123 Main St' description: 'The first address line.' addr2: type: string example: 'apt 1' description: 'The second address line.' city: type: string example: Alpharetta description: 'The city field.' state: type: string example: GA description: 'The state field.' zip: type: string example: '12345' description: 'The zip field.' 400: description: 'Field Validation Failed' content: application/json: schema: type: object example: errors: data.sid: - 'The data.sid is not the correct format.' properties: errors: type: object properties: data.sid: type: array example: - 'The data.sid is not the correct format.' items: type: string 401: description: '' content: application/json: schema: oneOf: - description: 'Invalid API Key Permission' type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' - description: 'User perm issue' type: object example: data: message: 'User not associated with the affiliate.' properties: data: type: object properties: message: type: string example: 'User not associated with the affiliate.' 404: description: 'No transaction found' content: application/json: schema: type: object example: data: message: 'No transaction found' properties: data: type: object properties: message: type: string example: 'No transaction found' tags: - 'Transaction management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: number description: 'The ID of the merchant that processed the transaction.' example: 1234567.0 transaction_info_id: type: number description: 'The transaction info id which is unique only against the SID of the merchant, and ties across all other reporting objects such as transactions.' example: 6789131231.0 transaction_type: type: string description: 'Must be either "CC" or "ACH". This field is required with data.transaction_id when transaction_info_id is not provided.' example: ACH transaction_id: type: number description: 'The ID of a transaction. This field is required with data.transaction_type when transaction info_id is not provided.' example: 123.0 required: - sid - transaction_type /api/transaction/refund: post: summary: 'Refund Transaction' operationId: refundTransaction description: 'Processes a refund for a transaction based on the provided data.' parameters: [] responses: 200: description: '' 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/address/list: get: summary: 'List Addresses' operationId: listAddresses description: 'List all addresses for a specific customer.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - - id: 1 recipient: null line_one: '' line_two: null line_three: null city: '' state: '' zip: '' - id: 1 recipient: null line_one: '' line_two: null line_three: null city: '' state: '' zip: '' properties: data: type: array example: - - id: 1 recipient: null line_one: '' line_two: null line_three: null city: '' state: '' zip: '' - id: 1 recipient: null line_one: '' line_two: null line_three: null city: '' state: '' zip: '' items: type: array 401: description: 'Unauthorized Access' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: '' content: application/json: schema: oneOf: - description: 'Customer Not Found' type: object example: data: message: 'No such Customer' properties: data: type: object properties: message: type: string example: 'No such Customer' - description: 'Merchant Not Found' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' tags: - Addresses requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 uuid: type: string description: 'The UUID of the customer.' example: 60dac128-28da-41ae-8632-aee299de13fd required: - sid - uuid /api/address/show: get: summary: 'Show Address' operationId: showAddress description: 'Show details of a specific address.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: address_id: 1 recipient: null line_one: '' line_two: null line_three: null city: '' state: '' zip: '' properties: data: type: object properties: address_id: type: integer example: 1 recipient: type: string example: null description: 'Name associated with the address.' line_one: type: string example: '' description: 'Address line 1.' line_two: type: string example: null description: 'Address line 2.' line_three: type: string example: null description: 'Address line 3.' city: type: string example: '' description: City. state: type: string example: '' description: 'State (2 characters).' zip: type: string example: '' description: Zip 401: description: 'Unauthorized Access' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: '' content: application/json: schema: oneOf: - description: 'Address Not Found' type: object example: data: message: 'No such Address' properties: data: type: object properties: message: type: string example: 'No such Address' - description: 'Merchant Not Found' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' - description: 'Customer Not Found' type: object example: data: message: 'No such Customer' properties: data: type: object properties: message: type: string example: 'No such Customer' tags: - Addresses requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 uuid: type: string description: 'The UUID of the customer.' example: 60dac128-28da-41ae-8632-aee299de13fd address_id: type: integer description: 'The ID of the address.' example: 1 required: - sid - uuid - address_id /api/address/create: post: summary: 'Create Address' operationId: createAddress description: 'Create a new address for a customer.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: address_id: 1 recipient: null line_one: '' line_two: null line_three: null city: '' state: '' zip: '' properties: data: type: object properties: address_id: type: integer example: 1 recipient: type: string example: null description: 'Name associated with the address.' line_one: type: string example: '' description: 'Address line 1.' line_two: type: string example: null description: 'Address line 2.' line_three: type: string example: null description: 'Address line 3.' city: type: string example: '' description: City. state: type: string example: '' description: 'State (2 characters).' zip: type: string example: '' description: Zip 400: description: 'Creation Failed' content: application/json: schema: type: object example: data: message: 'Failed to create address' properties: data: type: object properties: message: type: string example: 'Failed to create address' 401: description: 'Unauthorized Access' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: '' content: application/json: schema: oneOf: - description: 'Merchant Not Found' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' - description: 'Customer Not Found' type: object example: data: message: 'No such Customer' properties: data: type: object properties: message: type: string example: 'No such Customer' tags: - Addresses requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 uuid: type: string description: 'The UUID of the customer.' example: 60dac128-28da-41ae-8632-aee299de13fd recipient: type: string description: 'Name associated with the address.' example: 'John Doe' line_one: type: string description: 'Address line 1.' example: '123 Main St' line_two: type: string description: 'Address line 2.' example: 'Apt 4B' nullable: true line_three: type: string description: 'Address line 3.' example: architecto nullable: true city: type: string description: City. example: Atlanta state: type: string description: 'State (2 characters).' example: GA zip: type: string description: 'Zip code.' example: '30301' required: - sid - uuid - recipient - line_one - city - state - zip /api/address/update: patch: summary: 'Update Address' operationId: updateAddress description: 'Update an existing address.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: address_id: 1 recipient: null line_one: '' line_two: null line_three: null city: '' state: '' zip: '' properties: data: type: object properties: address_id: type: integer example: 1 recipient: type: string example: null description: 'Name associated with the address.' line_one: type: string example: '' description: 'Address line 1.' line_two: type: string example: null description: 'Address line 2.' line_three: type: string example: null description: 'Address line 3.' city: type: string example: '' description: City. state: type: string example: '' description: 'State (2 characters).' zip: type: string example: '' description: Zip 400: description: 'Update Failed' content: application/json: schema: type: object example: data: message: 'Failed to update address' properties: data: type: object properties: message: type: string example: 'Failed to update address' 401: description: 'Unauthorized Access' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: '' content: application/json: schema: oneOf: - description: 'Merchant Not Found' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' - description: 'Customer Not Found' type: object example: data: message: 'No such Customer' properties: data: type: object properties: message: type: string example: 'No such Customer' tags: - Addresses requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 uuid: type: string description: 'The UUID of the customer.' example: 60dac128-28da-41ae-8632-aee299de13fd address_id: type: integer description: 'The ID of the address to update.' example: 1 recipient: type: string description: 'Name associated with the address.' example: 'John Doe' nullable: true line_one: type: string description: 'Address line 1.' example: '123 Main St' nullable: true line_two: type: string description: 'Address line 2.' example: 'Apt 4B' nullable: true line_three: type: string description: 'Address line 3.' example: architecto nullable: true city: type: string description: City. example: Atlanta nullable: true state: type: string description: 'State (2 characters).' example: GA nullable: true zip: type: string description: 'Zip code.' example: '30301' nullable: true required: - sid - uuid - address_id /api/address/delete: post: summary: 'Delete Address' operationId: deleteAddress description: 'Remove an address from a customer.' parameters: [] responses: 200: description: 'Address Deleted Successfully' content: application/json: schema: type: object example: data: message: 'Address deleted successfully' properties: data: type: object properties: message: type: string example: 'Address deleted successfully' description: 'Message indicating the success or failure of the deletion.' 400: description: 'Deletion Failed' content: application/json: schema: type: object example: data: message: 'Unable to delete' properties: data: type: object properties: message: type: string example: 'Unable to delete' description: 'Message indicating the success or failure of the deletion.' 401: description: 'Unauthorized Access' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' description: 'Message indicating the success or failure of the deletion.' 404: description: '' content: application/json: schema: oneOf: - description: 'Address Not Found' type: object example: data: message: 'No such Address' properties: data: type: object properties: message: type: string example: 'No such Address' description: 'Message indicating the success or failure of the deletion.' - description: 'Merchant Not Found' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' description: 'Message indicating the success or failure of the deletion.' - description: 'Customer Not Found' type: object example: data: message: 'No such Customer' properties: data: type: object properties: message: type: string example: 'No such Customer' description: 'Message indicating the success or failure of the deletion.' tags: - Addresses requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 uuid: type: string description: 'The UUID of the customer.' example: 60dac128-28da-41ae-8632-aee299de13fd address_id: type: integer description: 'The ID of the address to delete.' example: 1 required: - sid - uuid - address_id /api/customer/list: get: summary: 'List Customers' operationId: listCustomers description: 'Retrieves a list of customers for a given company, filtered by various parameters.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - - id: 6 uuid: 66f1c230-68cf-4d58-b47c-1bcb83adfddd first_name: Ryan last_name: Taylor company_name: '' phone: '+17707892072' phone_verified_at: null email: rtaylor82@gmail.com email_verified_at: null addr1: '4655 Hwy 136 W' addr2: '' addr3: '' city: Dawsonville state: GA zip: '30534' country: USA email_communications: true sms_communications: false payment_reminders: true last_login_at: '2026-04-28T20:45:43.000000Z' last_login_ip: 69.85.118.154 - id: 6 uuid: 66f1c230-68cf-4d58-b47c-1bcb83adfddd first_name: Ryan last_name: Taylor company_name: '' phone: '+17707892072' phone_verified_at: null email: rtaylor82@gmail.com email_verified_at: null addr1: '4655 Hwy 136 W' addr2: '' addr3: '' city: Dawsonville state: GA zip: '30534' country: USA email_communications: true sms_communications: false payment_reminders: true last_login_at: '2026-04-28T20:45:43.000000Z' last_login_ip: 69.85.118.154 properties: data: type: array example: - - id: 6 uuid: 66f1c230-68cf-4d58-b47c-1bcb83adfddd first_name: Ryan last_name: Taylor company_name: '' phone: '+17707892072' phone_verified_at: null email: rtaylor82@gmail.com email_verified_at: null addr1: '4655 Hwy 136 W' addr2: '' addr3: '' city: Dawsonville state: GA zip: '30534' country: USA email_communications: true sms_communications: false payment_reminders: true last_login_at: '2026-04-28T20:45:43.000000Z' last_login_ip: 69.85.118.154 - id: 6 uuid: 66f1c230-68cf-4d58-b47c-1bcb83adfddd first_name: Ryan last_name: Taylor company_name: '' phone: '+17707892072' phone_verified_at: null email: rtaylor82@gmail.com email_verified_at: null addr1: '4655 Hwy 136 W' addr2: '' addr3: '' city: Dawsonville state: GA zip: '30534' country: USA email_communications: true sms_communications: false payment_reminders: true last_login_at: '2026-04-28T20:45:43.000000Z' last_login_ip: 69.85.118.154 items: type: array 400: description: '' content: application/json: schema: oneOf: - description: '' type: object example: message: 'Validation errors' properties: message: type: string example: 'Validation errors' - description: '' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' 401: description: '' content: application/json: schema: oneOf: - description: '' type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' - description: '' type: object example: data: message: 'Merchant or Affiliate check failed' properties: data: type: object properties: message: type: string example: 'Merchant or Affiliate check failed' tags: - 'Customer management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 required: - sid filters: type: object description: '' example: [] properties: start_date: type: string description: 'required_with:filters.end_date The start date for filtering customers in `Y-m-d H:i:s` format. Must be before or equal to filters.end_date.' example: '2024-01-01 00:00:00' end_date: type: string description: 'required_with:filters.start_date The end date for filtering customers in `Y-m-d H:i:s` format. Must be after or equal to filters.start_date.' example: '2024-12-31 23:59:59' phone: type: string description: 'A phone number to filter customers by. Must be in the US format e164.' example: '+15555555555' email: type: string description: 'An email address to filter customers by. Must comply with RFC email format.' example: example@example.com /api/customer/show: get: summary: 'Show Customer' operationId: showCustomer description: "Show a specific customer's details" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: uuid: 66f1c230-68cf-4d58-b47c-1bcb83adfddd first_name: Ryan last_name: Taylor phone: '+17707892072' email: rtaylor82@gmail.com addr1: '4655 Hwy 136 W' addr2: '' addr3: '' city: Dawsonville state: GA zip: '30534' country: USA properties: data: type: object properties: uuid: type: string example: 66f1c230-68cf-4d58-b47c-1bcb83adfddd description: 'Unique User ID of customer' first_name: type: string example: Ryan description: 'First name of customer' last_name: type: string example: Taylor description: 'Last name of customer' phone: type: string example: '+17707892072' description: 'Unique phone number of customer' email: type: string example: rtaylor82@gmail.com description: 'Email address of customer' addr1: type: string example: '4655 Hwy 136 W' description: 'Address line 1 of customer' addr2: type: string example: '' description: 'Address line 2 of customer' addr3: type: string example: '' description: 'Address line 3 of customer' city: type: string example: Dawsonville description: "Customer's" state: type: string example: GA description: "Customer's" zip: type: string example: '30534' description: "Customer's" country: type: string example: USA description: "Customer's" 400: description: '' content: application/json: schema: oneOf: - description: '' type: object example: message: 'Validation errors' properties: message: type: string example: 'Validation errors' - description: '' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' 401: description: '' content: application/json: schema: oneOf: - description: '' type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' - description: '' type: object example: data: message: 'Merchant or Affiliate check failed' properties: data: type: object properties: message: type: string example: 'Merchant or Affiliate check failed' tags: - 'Customer management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 required: - sid filters: type: object description: '' example: [] properties: phone: type: string description: 'A phone number to filter customers by. Must be in the US format e164.' example: '+15555555555' email: type: string description: 'An email address to filter customers by. Must comply with RFC email format.' example: example@example.com uuid: type: string description: 'A UUID to filter customers by. Must comply with UUID format.' example: 60dac128-28da-41ae-8632-aee299de13fd /api/customer/create: post: summary: 'Create Customer' operationId: createCustomer description: 'Create a customer record linked to your Company/Merchant.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: uuid: 66f1c230-68cf-4d58-b47c-1bcb83adfddd first_name: Ryan last_name: Taylor phone: '+17707892072' email: rtaylor82@gmail.com addr1: '4655 Hwy 136 W' addr2: '' addr3: '' city: Dawsonville state: GA zip: '30534' country: USA properties: data: type: object properties: uuid: type: string example: 66f1c230-68cf-4d58-b47c-1bcb83adfddd description: 'The uuid of the customer.' first_name: type: string example: Ryan description: 'required The first name of the customer.' last_name: type: string example: Taylor description: 'required The last name of the customer.' phone: type: string example: '+17707892072' description: 'required The phone number of the customer.' email: type: string example: rtaylor82@gmail.com description: "required Customer's email." addr1: type: string example: '4655 Hwy 136 W' description: "Customer's address line 1" addr2: type: string example: '' description: "Customer's address line 2" addr3: type: string example: '' description: "Customer's address line 3" city: type: string example: Dawsonville description: "Customer's" state: type: string example: GA description: "Customer's" zip: type: string example: '30534' description: "Customer's" country: type: string example: USA description: "Customer's" 400: description: '' content: application/json: schema: oneOf: - description: '' type: object example: message: 'Validation errors' properties: message: type: string example: 'Validation errors' - description: '' type: object example: message: 'Failed to create Customer' properties: message: type: string example: 'Failed to create Customer' - description: '' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' 401: description: '' content: application/json: schema: oneOf: - description: '' type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' - description: '' type: object example: data: message: 'Merchant or Affiliate check failed' properties: data: type: object properties: message: type: string example: 'Merchant or Affiliate check failed' tags: - 'Customer management' requestBody: required: true content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 first_name: type: string description: "Customer's first name" example: architecto last_name: type: string description: "Customer's last name" example: architecto company_name: type: string description: 'optional Name of Merchant that customer interacts with' example: architecto nullable: true phone: type: string description: "Customer's unique phone number" example: architecto email: type: string description: "Customer's unique email" example: gbailey@example.net addr1: type: string description: "optional Customer's address line 1" example: architecto nullable: true addr2: type: string description: "optional Customer's address line 2" example: architecto nullable: true addr3: type: string description: "optional Customer's address line 3" example: architecto nullable: true city: type: string description: "optional Customer's city" example: architecto nullable: true state: type: string description: "optional Customer's state" example: architecto nullable: true zip: type: string description: "optional Customer's zip code" example: architecto nullable: true country: type: string description: 'Must not be greater than 3 characters.' example: 'n' nullable: true required: - sid - first_name - last_name - phone - email required: - data /api/customer/update: patch: summary: 'Update Customer' operationId: updateCustomer description: "Update a customer record. Make changes to the customer referenced by UUID, phone number, or email. One of the\nfilters is required to be provided to select a unique customer. Only pass the fields that require updating in\nthe data object." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: uuid: 66f1c230-68cf-4d58-b47c-1bcb83adfddd first_name: Ryan last_name: Taylor phone: '+17707892072' email: rtaylor82@gmail.com addr1: '4655 Hwy 136 W' addr2: '' addr3: '' city: Dawsonville state: GA zip: '30534' country: USA properties: data: type: object properties: uuid: type: string example: 66f1c230-68cf-4d58-b47c-1bcb83adfddd description: 'The UUID of the customer.' first_name: type: string example: Ryan description: 'The first name of the customer.' last_name: type: string example: Taylor description: 'The last name of the customer.' phone: type: string example: '+17707892072' description: 'Unique phone number of customer' email: type: string example: rtaylor82@gmail.com description: 'Email address of customer' addr1: type: string example: '4655 Hwy 136 W' description: 'Address line 1 of customer' addr2: type: string example: '' description: 'Address line 2 of customer' addr3: type: string example: '' description: 'Address line 3 of customer' city: type: string example: Dawsonville description: "Customer's" state: type: string example: GA description: "Customer's" zip: type: string example: '30534' description: "Customer's" country: type: string example: USA description: "Customer's" 400: description: '' content: application/json: schema: oneOf: - description: '' type: object example: message: 'Validation errors' properties: message: type: string example: 'Validation errors' - description: '' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' 401: description: '' content: application/json: schema: oneOf: - description: '' type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' - description: '' type: object example: data: message: 'Merchant or Affiliate check failed' properties: data: type: object properties: message: type: string example: 'Merchant or Affiliate check failed' tags: - 'Customer management' requestBody: required: true content: application/json: schema: type: object properties: filters: type: object description: 'One of the filters is required to select a unique customer' example: [] properties: phone: type: string description: 'A phone number to filter customers by. Must be in the US format e164.' example: '+15555555555' uuid: type: string description: 'A UUID to filter customers by. Must comply with UUID format.' example: 60dac128-28da-41ae-8632-aee299de13fd email: type: string description: 'An email address to filter customers by. Must comply with RFC email format.' example: example@example.com data: type: object description: '' example: [] properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 first_name: type: string description: "optional Customer's first name" example: architecto nullable: true last_name: type: string description: "optional Customer's last name" example: architecto nullable: true company_name: type: string description: 'optional Name of Merchant that customer interacts with' example: architecto nullable: true addr1: type: string description: "optional Customer's address line 1" example: architecto nullable: true addr2: type: string description: "optional Customer's address line 2" example: architecto nullable: true addr3: type: string description: "optional Customer's address line 3" example: architecto nullable: true city: type: string description: "optional Customer's city" example: architecto nullable: true state: type: string description: "optional Customer's state" example: architecto nullable: true zip: type: string description: "optional Customer's zip code" example: architecto nullable: true country: type: string description: 'Must not be greater than 3 characters.' example: 'n' nullable: true required: - sid required: - filters - data /api/customer/delete: post: summary: 'Delete Customer' operationId: deleteCustomer description: 'Delete a customer record from the selected Merchant. One of the filters is required to select a unique customer. This will also cancel any recurring payments associated with the customer for your company.' parameters: [] responses: 200: description: '' content: application/json: schema: oneOf: - description: '' type: object example: data: uuid: 66f1c230-68cf-4d58-b47c-1bcb83adfddd first_name: Ryan last_name: Taylor phone: '+17707892072' email: rtaylor82@gmail.com addr1: '4655 Hwy 136 W' addr2: '' addr3: '' city: Dawsonville state: GA zip: '30534' country: USA properties: data: type: object properties: uuid: type: string example: 66f1c230-68cf-4d58-b47c-1bcb83adfddd first_name: type: string example: Ryan last_name: type: string example: Taylor phone: type: string example: '+17707892072' email: type: string example: rtaylor82@gmail.com addr1: type: string example: '4655 Hwy 136 W' addr2: type: string example: '' addr3: type: string example: '' city: type: string example: Dawsonville state: type: string example: GA zip: type: string example: '30534' country: type: string example: USA - description: 'Successful Deletion' type: object example: data: message: 'Customer removed successfully' properties: data: type: object properties: message: type: string example: 'Customer removed successfully' description: 'The message returned from the delete operation.' 400: description: '' content: application/json: schema: oneOf: - description: '' type: object example: message: 'Validation errors' properties: message: type: string example: 'Validation errors' - description: '' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' description: 'The message returned from the delete operation.' 401: description: '' content: application/json: schema: oneOf: - description: '' type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' description: 'The message returned from the delete operation.' - description: '' type: object example: data: message: 'Merchant or Affiliate check failed' properties: data: type: object properties: message: type: string example: 'Merchant or Affiliate check failed' description: 'The message returned from the delete operation.' tags: - 'Customer management' requestBody: required: true content: application/json: schema: type: object properties: filters: type: object description: '' example: [] properties: phone: type: string description: 'A phone number to filter customers by. Must be in the US format e164.' example: '+15555555555' uuid: type: string description: 'A UUID to filter customers by. Must comply with UUID format.' example: 60dac128-28da-41ae-8632-aee299de13fd email: type: string description: 'An email address to filter customers by. Must comply with RFC email format.' example: example@example.com data: type: object description: '' example: [] properties: sid: type: integer description: 'The SID of the merchant.' example: 12345 required: - sid required: - data /api/deposit/list: get: summary: 'List Deposits' operationId: listDeposits description: 'Get Deposits from Merchant Account with supporting transactions' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - transaction_date: '2023-02-15T19:14:44.000000Z' fund_date: '2023-02-17 00:05:35' transaction_info_id: '789161791' transaction_id: '1' transaction_detail_account: '1005' authorization_amount: '1.0000' net_amount: '0.7200' sweep_id: '125068038' type: withdraw_funds - transaction_date: '2023-02-15T19:14:44.000000Z' fund_date: '2023-02-17 00:05:35' transaction_info_id: '789161791' transaction_id: '1' transaction_detail_account: '1005' authorization_amount: '1.0000' net_amount: '0.7200' sweep_id: '125068038' type: withdraw_funds links: prev: null next: null meta: path: / per_page: 15 next_cursor: null prev_cursor: null properties: data: type: array example: - transaction_date: '2023-02-15T19:14:44.000000Z' fund_date: '2023-02-17 00:05:35' transaction_info_id: '789161791' transaction_id: '1' transaction_detail_account: '1005' authorization_amount: '1.0000' net_amount: '0.7200' sweep_id: '125068038' type: withdraw_funds - transaction_date: '2023-02-15T19:14:44.000000Z' fund_date: '2023-02-17 00:05:35' transaction_info_id: '789161791' transaction_id: '1' transaction_detail_account: '1005' authorization_amount: '1.0000' net_amount: '0.7200' sweep_id: '125068038' type: withdraw_funds items: type: object properties: transaction_date: type: string example: '2023-02-15T19:14:44.000000Z' description: 'The datetime stamp of when the transaction was initiated.' fund_date: type: string example: '2023-02-17 00:05:35' description: 'The datetime stamp of when the funds for the deposit were made available to the merchant.' transaction_info_id: type: string example: '789161791' description: 'The transaction info ID which is unique only against the SID for the merchant and ties across all reporting objects.' transaction_id: type: string example: '1' description: 'The transaction ID, unique only to the SID for the merchant.' transaction_detail_account: type: string example: '1005' description: 'The masked first four digits of the routing number and last four digits of the bank account where funds were deposited.' authorization_amount: type: string example: '1.0000' description: 'The amount the transaction was authorized for.' net_amount: type: string example: '0.7200' description: 'The amount the merchant will receive from the transaction after transaction fees.' sweep_id: type: string example: '125068038' description: 'The ID of the sweep the deposit was associated with, which is associated with single transactions and can be used for referencing transactions included in a deposit.' type: type: string example: withdraw_funds description: "The type of the deposit will be either add_funds or withdraw_funds. The type of add_funds occurs when the escrow account needs to be replenished from the merchant's bank account to provide returns or refunds to the customer. The type of withdraw_funds occurs when money is moved from the escrow account to the merchant's bank account." links: type: object properties: prev: type: string example: null nullable: true next: type: string example: null nullable: true meta: type: object properties: path: type: string example: / per_page: type: integer example: 15 next_cursor: type: string example: null nullable: true prev_cursor: type: string example: null nullable: true 400: description: 'Malformed Request' content: application/json: schema: type: object example: errors: filters.start_date: - 'The filters.start_date field must be a valid date.' - 'The filters.start_date field must match the format Y-m-d H:i:s.' properties: errors: type: object properties: filters.start_date: type: array example: - 'The filters.start_date field must be a valid date.' - 'The filters.start_date field must match the format Y-m-d H:i:s.' items: type: string 401: description: '' content: application/json: schema: oneOf: - description: 'Incorrect API Key Permission' type: object example: message: 'Permission Denied.' properties: message: type: string example: 'Permission Denied.' - description: 'Not associated with Affiliate' type: object example: message: 'Not associated with Affiliate' properties: message: type: string example: 'Not associated with Affiliate' - description: 'Incorrect SID' type: object example: message: 'The selected data.sid is invalid' properties: message: type: string example: 'The selected data.sid is invalid' 403: description: Unauthorized content: application/json: schema: type: object example: message: Unauthorized properties: message: type: string example: Unauthorized 404: description: 'No deposits found' content: application/json: schema: type: object example: message: 'No deposits found' properties: message: type: string example: 'No deposits found' tags: - 'Deposit management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: string description: 'The ID of the merchant.' example: '91828382' required: - sid filters: type: object description: '' example: [] properties: start_date: type: string description: 'The deposit start date, in UTC, with format: "YYYY-mm-dd 00:00:00"' example: '"2024-04-01 00:00:00"' end_date: type: string description: 'The deposit end date, in UTC, with format: "YYYY-mm-dd 00:00:00"' example: '"2024-04-01 23:59:59"' /api/deposit/list-with-trans: get: summary: 'List Deposits with Supporting Trans' operationId: listDepositsWithSupportingTrans description: 'Get Deposits from Merchant Account with supporting transactions. Could result in large datasets if range is too large.' parameters: [] responses: 200: description: '' content: application/json: schema: oneOf: - description: 'Successful Transaction' type: object example: data: sid: XXXXX count: 1 deposits: '128298672': sid: XXXXX transaction_info_id: '983999999' transaction_id: '382' transaction_date: '2024-05-01T04:00:00.000000Z' fund_date: '2024-05-01 02:20:35' type: withdraw_funds countOfTransactions: 3 transTotal: '545.98' transactions: - transaction_type: ACH transaction_status: ACH_PAYMENT_CREDIT transaction_status_description: 'Successfully completed ACH Payment that has been posted to the Escrow Account.' transaction_number: '369' transaction_date: '2024-04-29T08:30:25.000000Z' fund_date: '2024-04-30T20:05:21.000000Z' settle_date: '2024-04-29T17:51:02.000000Z' amount: '369.0000' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: '' multi_use_token: '' pending: false transaction_info_id: '123123123123' parent_transaction_info_id: '123123123124' billing_address: first_name: null last_name: null addr1: null addr2: null city: null state: null zip: null - transaction_type: CC transaction_status: CC_CREDIT transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.' transaction_number: '1919162951' transaction_date: '2024-04-29T08:37:29.000000Z' fund_date: '2024-04-30T20:05:22.000000Z' settle_date: '2024-05-07T11:30:03.000000Z' amount: '103.0800' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: '' multi_use_token: '' pending: false transaction_info_id: '123123123123' parent_transaction_info_id: '123123123124' billing_address: first_name: null last_name: null addr1: null addr2: null city: null state: null zip: null - transaction_type: CC transaction_status: CC_CREDIT transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.' transaction_number: '1920383851' transaction_date: '2024-04-29T11:52:43.000000Z' fund_date: '2024-04-30T20:05:22.000000Z' settle_date: '2024-05-07T11:30:03.000000Z' amount: '82.5200' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: '' multi_use_token: '' pending: false transaction_info_id: '123123123123' parent_transaction_info_id: '123123123124' billing_address: first_name: null last_name: null addr1: null addr2: null city: null state: null zip: null properties: data: type: object properties: sid: type: string example: XXXXX description: "Merchant's sid that was requested." count: type: integer example: 1 description: 'Number of deposits that have left the escrow account on the way to a merchant account.' deposits: type: object properties: 128298672: type: object properties: sid: type: string example: XXXXX transaction_info_id: type: string example: '983999999' transaction_id: type: string example: '382' transaction_date: type: string example: '2024-05-01T04:00:00.000000Z' fund_date: type: string example: '2024-05-01 02:20:35' type: type: string example: withdraw_funds countOfTransactions: type: integer example: 3 transTotal: type: string example: '545.98' transactions: type: array example: - { transaction_type: ACH, transaction_status: ACH_PAYMENT_CREDIT, transaction_status_description: 'Successfully completed ACH Payment that has been posted to the Escrow Account.', transaction_number: '369', transaction_date: '2024-04-29T08:30:25.000000Z', fund_date: '2024-04-30T20:05:21.000000Z', settle_date: '2024-04-29T17:51:02.000000Z', amount: '369.0000', description: '', status_code: '', status_text: '', email: '', phone: '', customer_uuid: '', multi_use_token: '', pending: false, transaction_info_id: '123123123123', parent_transaction_info_id: '123123123124', billing_address: { first_name: null, last_name: null, addr1: null, addr2: null, city: null, state: null, zip: null } } - { transaction_type: CC, transaction_status: CC_CREDIT, transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.', transaction_number: '1919162951', transaction_date: '2024-04-29T08:37:29.000000Z', fund_date: '2024-04-30T20:05:22.000000Z', settle_date: '2024-05-07T11:30:03.000000Z', amount: '103.0800', description: '', status_code: '', status_text: '', email: '', phone: '', customer_uuid: '', multi_use_token: '', pending: false, transaction_info_id: '123123123123', parent_transaction_info_id: '123123123124', billing_address: { first_name: null, last_name: null, addr1: null, addr2: null, city: null, state: null, zip: null } } - { transaction_type: CC, transaction_status: CC_CREDIT, transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.', transaction_number: '1920383851', transaction_date: '2024-04-29T11:52:43.000000Z', fund_date: '2024-04-30T20:05:22.000000Z', settle_date: '2024-05-07T11:30:03.000000Z', amount: '82.5200', description: '', status_code: '', status_text: '', email: '', phone: '', customer_uuid: '', multi_use_token: '', pending: false, transaction_info_id: '123123123123', parent_transaction_info_id: '123123123124', billing_address: { first_name: null, last_name: null, addr1: null, addr2: null, city: null, state: null, zip: null } } items: type: object properties: { transaction_type: { type: string, example: ACH }, transaction_status: { type: string, example: ACH_PAYMENT_CREDIT }, transaction_status_description: { type: string, example: 'Successfully completed ACH Payment that has been posted to the Escrow Account.' }, transaction_number: { type: string, example: '369' }, transaction_date: { type: string, example: '2024-04-29T08:30:25.000000Z' }, fund_date: { type: string, example: '2024-04-30T20:05:21.000000Z' }, settle_date: { type: string, example: '2024-04-29T17:51:02.000000Z' }, amount: { type: string, example: '369.0000' }, description: { type: string, example: '' }, status_code: { type: string, example: '' }, status_text: { type: string, example: '' }, email: { type: string, example: '' }, phone: { type: string, example: '' }, customer_uuid: { type: string, example: '' }, multi_use_token: { type: string, example: '' }, pending: { type: boolean, example: false }, transaction_info_id: { type: string, example: '123123123123' }, parent_transaction_info_id: { type: string, example: '123123123124' }, billing_address: { type: object, properties: { first_name: { type: string, example: null, nullable: true }, last_name: { type: string, example: null, nullable: true }, addr1: { type: string, example: null, nullable: true }, addr2: { type: string, example: null, nullable: true }, city: { type: string, example: null, nullable: true }, state: { type: string, example: null, nullable: true }, zip: { type: string, example: null, nullable: true } } } } description: 'containing any deposits matched in the date range.' - description: 'Empty Response' type: object example: { } properties: { } 400: description: 'Field Validation Failed' content: application/json: schema: type: object example: errors: data.sid: - 'The data.sid is not the correct format.' properties: errors: type: object properties: data.sid: type: array example: - 'The data.sid is not the correct format.' items: type: string 401: description: '' content: application/json: schema: oneOf: - description: 'Bad API Key Permission' type: object example: data.message: 'Permission Denied.' properties: data.message: type: string example: 'Permission Denied.' - description: 'No such Merchant' type: object example: data.message: 'No Merchant found with SID provided.' properties: data.message: type: string example: 'No Merchant found with SID provided.' - description: 'User perm issue' type: object example: data.message: 'User not associated with the affiliate.' properties: data.message: type: string example: 'User not associated with the affiliate.' - description: 'Merchant not associated' type: object example: data.message: 'Merchant not associated with affiliate.' properties: data.message: type: string example: 'Merchant not associated with affiliate.' tags: - 'Deposit management' requestBody: required: true content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: string description: 'Must be unique to the Merchant and less than 150 digits.' example: '91828382' required: - sid filters: type: object description: '' example: [] properties: start_date: type: string description: 'The start date of the date range.' example: '2024-05-01 00:00:00' end_date: type: string description: 'The end date of the date range.' example: '2024-05-01 00:00:00' required: - data /api/deposit/show: get: summary: 'Show Deposit with Supporting Trans' operationId: showDepositWithSupportingTrans description: 'Show a Deposit from Merchant Account with supporting transactions' parameters: [] responses: 200: description: '' content: application/json: schema: oneOf: - description: 'Successful Transaction' type: object example: data: sid: XXXXX transaction_info_id: '983999999' transaction_id: '382' transaction_date: '2024-05-01T04:00:00.000000Z' fund_date: '2024-05-01 02:20:35' type: withdraw_funds countOfTransactions: 3 transTotal: '545.98' transactions: - transaction_type: ACH transaction_status: ACH_PAYMENT_CREDIT transaction_status_description: 'Successfully completed ACH Payment that has been posted to the Escrow Account.' transaction_number: '369' transaction_date: '2024-04-29T08:30:25.000000Z' fund_date: '2024-04-30T20:05:21.000000Z' settle_date: '2024-04-29T17:51:02.000000Z' amount: '369.0000' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: '' multi_use_token: '' pending: false transaction_info_id: '123123212312' parent_transaction_info_id: '123123212314' billing_address: first_name: null last_name: null addr1: null addr2: null city: null state: null zip: null - transaction_type: CC transaction_status: CC_CREDIT transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.' transaction_number: '1919162951' transaction_date: '2024-04-29T08:37:29.000000Z' fund_date: '2024-04-30T20:05:22.000000Z' settle_date: '2024-05-07T11:30:03.000000Z' amount: '103.0800' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: '' multi_use_token: '' pending: false transaction_info_id: '123123212312' parent_transaction_info_id: '123123212314' billing_address: first_name: null last_name: null addr1: null addr2: null city: null state: null zip: null - transaction_type: CC transaction_status: CC_CREDIT transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.' transaction_number: '1920383851' transaction_date: '2024-04-29T11:52:43.000000Z' fund_date: '2024-04-30T20:05:22.000000Z' settle_date: '2024-05-07T11:30:03.000000Z' amount: '82.5200' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: '' multi_use_token: '' pending: false transaction_info_id: '123123212314' billing_address: first_name: null last_name: null addr1: null addr2: null city: null state: null zip: null properties: data: type: object properties: sid: type: string example: XXXXX description: "Merchant's sid that was requested." transaction_info_id: type: string example: '983999999' description: 'The transaction_info_id of the deposit.' transaction_id: type: string example: '382' description: 'The transaction_id of the deposit.' transaction_date: type: string example: '2024-05-01T04:00:00.000000Z' description: 'The date of the deposit.' fund_date: type: string example: '2024-05-01 02:20:35' description: 'The date of the deposit.' type: type: string example: withdraw_funds description: "The type of the deposit will be either add_funds or withdraw_funds. The type of add_funds occurs when the escrow account needs to be replenished from the merchant's bank account to provide returns or refunds to the customer. The type of withdraw_funds occurs when money is moved from the escrow account to the merchant's bank account." countOfTransactions: type: integer example: 3 description: 'The number of transactions in the deposit.' transTotal: type: string example: '545.98' description: 'The total amount sent to the bank.' transactions: type: array example: - transaction_type: ACH transaction_status: ACH_PAYMENT_CREDIT transaction_status_description: 'Successfully completed ACH Payment that has been posted to the Escrow Account.' transaction_number: '369' transaction_date: '2024-04-29T08:30:25.000000Z' fund_date: '2024-04-30T20:05:21.000000Z' settle_date: '2024-04-29T17:51:02.000000Z' amount: '369.0000' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: '' multi_use_token: '' pending: false transaction_info_id: '123123212312' parent_transaction_info_id: '123123212314' billing_address: first_name: null last_name: null addr1: null addr2: null city: null state: null zip: null - transaction_type: CC transaction_status: CC_CREDIT transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.' transaction_number: '1919162951' transaction_date: '2024-04-29T08:37:29.000000Z' fund_date: '2024-04-30T20:05:22.000000Z' settle_date: '2024-05-07T11:30:03.000000Z' amount: '103.0800' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: '' multi_use_token: '' pending: false transaction_info_id: '123123212312' parent_transaction_info_id: '123123212314' billing_address: first_name: null last_name: null addr1: null addr2: null city: null state: null zip: null - transaction_type: CC transaction_status: CC_CREDIT transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.' transaction_number: '1920383851' transaction_date: '2024-04-29T11:52:43.000000Z' fund_date: '2024-04-30T20:05:22.000000Z' settle_date: '2024-05-07T11:30:03.000000Z' amount: '82.5200' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: '' multi_use_token: '' pending: false transaction_info_id: '123123212314' billing_address: first_name: null last_name: null addr1: null addr2: null city: null state: null zip: null description: 'containing any transactions supporting the deposit.' items: type: object properties: transaction_type: type: string example: ACH description: 'The type of transaction. Request a listing from developer support if unaware of options.' transaction_status: type: string example: ACH_PAYMENT_CREDIT description: 'The status of the transaction. Request a listing from developer support if unaware of options.' transaction_status_description: type: string example: 'Successfully completed ACH Payment that has been posted to the Escrow Account.' description: 'The description of the transaction status..' transaction_number: type: string example: '369' description: 'The transaction number.' transaction_date: type: string example: '2024-04-29T08:30:25.000000Z' description: 'The date of the transaction.' fund_date: type: string example: '2024-04-30T20:05:21.000000Z' description: 'The date of the transaction.' settle_date: type: string example: '2024-04-29T17:51:02.000000Z' description: 'The date of the transaction.' amount: type: string example: '369.0000' description: 'The gross amount of the transaction.' description: type: string example: '' description: 'The description of the transaction.' status_code: type: string example: '' description: 'The status code of the transaction.' status_text: type: string example: '' description: 'The status text of the transaction.' email: type: string example: '' description: 'The email of the transaction.' phone: type: string example: '' description: 'The phone of the transaction.' customer_uuid: type: string example: '' description: 'The customer uuid of the transaction.' multi_use_token: type: string example: '' description: 'The multi use token of the transaction.' pending: type: boolean example: false description: 'The pending status of the transaction.' transaction_info_id: type: string example: '123123212312' description: "The transaction's info id that can be used in requests to other API endpoints to look up a specific transaction." parent_transaction_info_id: type: string example: '123123212314' description: "The transaction's info id that can be used in requests to other API endpoints to look up a specific transaction." billing_address: type: object properties: first_name: type: string example: null description: 'The first name of the billing address.' last_name: type: string example: null description: 'The last name of the billing address.' addr1: type: string example: null description: 'The address 1 of the billing address.' addr2: type: string example: null description: 'The address 2 of the billing address.' city: type: string example: null description: 'The city of the billing address.' state: type: string example: null description: 'The state of the billing address.' zip: type: string example: null description: 'The zip of the billing address.' - description: 'Empty Response' type: object example: { } properties: { } 400: description: 'Field Validation Failed' content: application/json: schema: type: object example: errors: data.sid: - 'The data.sid is not the correct format.' properties: errors: type: object properties: data.sid: type: array example: - 'The data.sid is not the correct format.' items: type: string 401: description: '' content: application/json: schema: oneOf: - description: 'Bad API Key Permission' type: object example: data.message: 'Permission Denied.' properties: data.message: type: string example: 'Permission Denied.' - description: 'No such Merchant' type: object example: data.message: 'No Merchant found with SID provided.' properties: data.message: type: string example: 'No Merchant found with SID provided.' - description: 'User perm issue' type: object example: data.message: 'User not associated with the affiliate.' properties: data.message: type: string example: 'User not associated with the affiliate.' - description: 'Merchant not associated' type: object example: data.message: 'Merchant not associated with affiliate.' properties: data.message: type: string example: 'Merchant not associated with affiliate.' tags: - 'Deposit management' requestBody: required: true content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: number description: 'The sid of an existing record in the companies table.' example: 4326.41688 transaction_info_id: type: string description: 'Required if not passing sweep_id. Must be unique to the Merchant and less than 150 digits.' example: '91828382' sweep_id: type: string description: 'Required if not passing transaction_info_id. Must be in format: "YYYY-mm-dd 00:00:00"' example: '"2024-04-01 00:00:00"' required: - sid - transaction_info_id required: - data /api/invoices: get: summary: 'List Invoices' operationId: listInvoices description: "Retrieves a paginated (cursor) list of invoices for a Merchant, optionally\nfiltered by status." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: null invoice_number: INV-45117 status: draft customer_name: 'Mr. Gerhard Dach Jr.' customer_email: lafayette.considine@example.com total: 0 amount_paid: 0 balance: 0 cover_fee_required: false issue_date: '2026-08-16' due_date: '2026-08-31' is_overdue: false public_url: 'http://app.dimepayments.com/invoice/9svi2wME4wedrXz3PygmmNw9FJEOW6XkfmYrx4PF' - id: null invoice_number: INV-67996 status: draft customer_name: 'Dr. Mona Lemke' customer_email: rosario67@example.net total: 0 amount_paid: 0 balance: 0 cover_fee_required: false issue_date: '2026-08-15' due_date: '2026-08-30' is_overdue: false public_url: 'http://app.dimepayments.com/invoice/1FZjKEn2ipKnWk45IwXI2hGDae029vkwAXugKXLt' links: prev: null next: null meta: path: / per_page: 500 next_cursor: null prev_cursor: null properties: data: type: array example: - id: null invoice_number: INV-45117 status: draft customer_name: 'Mr. Gerhard Dach Jr.' customer_email: lafayette.considine@example.com total: 0 amount_paid: 0 balance: 0 cover_fee_required: false issue_date: '2026-08-16' due_date: '2026-08-31' is_overdue: false public_url: 'http://app.dimepayments.com/invoice/9svi2wME4wedrXz3PygmmNw9FJEOW6XkfmYrx4PF' - id: null invoice_number: INV-67996 status: draft customer_name: 'Dr. Mona Lemke' customer_email: rosario67@example.net total: 0 amount_paid: 0 balance: 0 cover_fee_required: false issue_date: '2026-08-15' due_date: '2026-08-30' is_overdue: false public_url: 'http://app.dimepayments.com/invoice/1FZjKEn2ipKnWk45IwXI2hGDae029vkwAXugKXLt' items: type: object properties: id: type: string example: null description: 'The internal id of the invoice. Example: 42' invoice_number: type: string example: INV-45117 description: 'The human-readable invoice number. Example: INV-0007' status: type: string example: draft description: 'The invoice status. Example: sent' customer_name: type: string example: 'Mr. Gerhard Dach Jr.' description: 'The customer name snapshot. Example: Jane Doe' customer_email: type: string example: lafayette.considine@example.com description: 'The customer email snapshot. Example: jane@example.com' total: type: integer example: 0 description: 'The invoice total in dollars. Example: 250.00' amount_paid: type: integer example: 0 description: 'The amount paid in dollars. Example: 0' balance: type: integer example: 0 description: 'The outstanding balance in dollars. Example: 250.00' cover_fee_required: type: boolean example: false issue_date: type: string example: '2026-08-16' description: 'The issue date (Y-m-d). Example: 2026-07-01' due_date: type: string example: '2026-08-31' 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/9svi2wME4wedrXz3PygmmNw9FJEOW6XkfmYrx4PF' description: 'The public pay link. Example: https://example.test/invoice/abcd' links: type: object properties: prev: type: string example: null nullable: true next: type: string example: null nullable: true meta: type: object properties: path: type: string example: / per_page: type: integer example: 500 next_cursor: type: string example: null nullable: true prev_cursor: type: string example: null nullable: true 400: description: 'Failed validation' content: application/json: schema: type: object example: errors: filters.status: - 'The selected filters.status is invalid.' properties: errors: type: object properties: filters.status: type: array example: - 'The selected filters.status is invalid.' items: type: string 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: 'Invalid sid' content: application/json: schema: type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 required: - sid filters: type: object description: '' example: [] properties: status: type: string description: 'A status to filter by. One of: draft, sent, viewed, partially_paid, paid, void, refunded, overdue, all. Omit for all.' example: sent /api/invoice: get: summary: 'Show Invoice' operationId: showInvoice description: 'Retrieves a single invoice with its line items, payments, and event history.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: null token: j6V61XZnxDUlRBqECzMSAVStymdTRcaDzIzSWH6C invoice_number: INV-47352 status: draft payment_terms: net_15 issue_date: '2026-08-22' due_date: '2026-09-06' is_overdue: false subtotal: 0 total: 0 amount_paid: 0 balance: 0 allow_partial_payment: true cover_fee_required: false cover_fee_quote: null thank_you_note: 'Nostrum omnis autem et consequatur aut.' public_url: 'http://app.dimepayments.com/invoice/j6V61XZnxDUlRBqECzMSAVStymdTRcaDzIzSWH6C' customer: id: 15885 name: 'Henri Mitchell' email: tleuschke@example.net items: [] payments: [] events: [] properties: data: type: object properties: id: type: string example: null description: 'The internal id of the invoice. Example: 42' token: type: string example: j6V61XZnxDUlRBqECzMSAVStymdTRcaDzIzSWH6C description: 'The public token. Example: r8s...' invoice_number: type: string example: INV-47352 description: 'The invoice number. Example: INV-0007' status: type: string example: draft description: 'The invoice status. Example: sent' payment_terms: type: string example: net_15 description: 'The payment terms. Example: net_15' issue_date: type: string example: '2026-08-22' description: 'The issue date (Y-m-d). Example: 2026-07-01' due_date: type: string example: '2026-09-06' description: 'The due date (Y-m-d). Example: 2026-07-16' is_overdue: type: boolean example: false description: 'Whether the invoice is past due with a balance. Example: false' subtotal: type: integer example: 0 description: 'The subtotal in dollars. Example: 250.00' total: type: integer example: 0 description: 'The total in dollars. Example: 250.00' amount_paid: type: integer example: 0 description: 'The amount paid in dollars. Example: 0' balance: type: integer example: 0 description: 'The outstanding balance in dollars. Example: 250.00' allow_partial_payment: type: boolean example: true description: 'Whether partial payments are allowed. Example: false' cover_fee_required: type: boolean example: false description: 'Whether the customer must cover the processing fee. When true the fee is added on top of the amount being paid, so the card/bank is charged more than `total`. Example: false' cover_fee_quote: type: string example: null description: 'The fee quoted against the current balance, per payment method (`base`, `cc.fee`, `cc.total`, `ach.fee`, `ach.total`), or null when no fee is required. Card and ACH rates differ, so the charged total depends on how the customer pays.' thank_you_note: type: string example: 'Nostrum omnis autem et consequatur aut.' description: 'An optional note shown on the invoice. Example: Thanks for your business!' public_url: type: string example: 'http://app.dimepayments.com/invoice/j6V61XZnxDUlRBqECzMSAVStymdTRcaDzIzSWH6C' description: 'The public pay link. Example: https://example.test/invoice/abcd' customer: type: object properties: id: type: integer example: 15885 name: type: string example: 'Henri Mitchell' email: type: string example: tleuschke@example.net description: 'The linked/snapshot customer (id, name, email).' items: type: array example: [] description: 'The line items (id, item_id, name, description, quantity, unit_price, amount).' payments: type: array example: [] description: 'Recorded payments (amount, cover_fee, paid_at, method, transaction_id). `amount` is credited to the invoice; `cover_fee` was charged on top of it.' events: type: array example: [] description: 'The invoice event/activity log (type, label, description, created_at).' 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: '' content: application/json: schema: oneOf: - description: 'Invalid sid' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' - description: 'Invoice not found' type: object example: data: message: 'Invoice not found' properties: data: type: object properties: message: type: string example: 'Invoice not found' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: sid: 12345 properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 invoice_id: type: integer description: 'The id of the invoice.' example: 42 required: - sid - invoice_id /api/invoice/create: post: summary: 'Create Invoice' operationId: createInvoice description: "Creates a draft invoice with its line items. Every line must reference an\nitem (fund/designation) that belongs to the Merchant; the line name and\nunit price are snapshotted onto the invoice. The invoice number may be\nsupplied, otherwise the next number is allocated automatically." parameters: [] responses: 201: description: '' content: application/json: schema: type: object example: data: id: null token: uN3LpVTbyBx75F2OveI7xaYIe1FFp5Il6VXEIJRl invoice_number: INV-26855 status: draft payment_terms: net_15 issue_date: '2026-07-28' due_date: '2026-08-12' is_overdue: false subtotal: 0 total: 0 amount_paid: 0 balance: 0 allow_partial_payment: true cover_fee_required: false cover_fee_quote: null thank_you_note: 'Sunt nihil accusantium harum mollitia.' public_url: 'http://app.dimepayments.com/invoice/uN3LpVTbyBx75F2OveI7xaYIe1FFp5Il6VXEIJRl' customer: id: 15886 name: 'Vesta Schuster PhD' email: breitenberg.gilbert@example.com items: [] payments: [] events: [] properties: data: type: object properties: id: type: string example: null nullable: true token: type: string example: uN3LpVTbyBx75F2OveI7xaYIe1FFp5Il6VXEIJRl invoice_number: type: string example: INV-26855 status: type: string example: draft payment_terms: type: string example: net_15 issue_date: type: string example: '2026-07-28' due_date: type: string example: '2026-08-12' is_overdue: type: boolean example: false subtotal: type: integer example: 0 total: type: integer example: 0 amount_paid: type: integer example: 0 balance: type: integer example: 0 allow_partial_payment: type: boolean example: true cover_fee_required: type: boolean example: false cover_fee_quote: type: string example: null nullable: true thank_you_note: type: string example: 'Sunt nihil accusantium harum mollitia.' public_url: type: string example: 'http://app.dimepayments.com/invoice/uN3LpVTbyBx75F2OveI7xaYIe1FFp5Il6VXEIJRl' customer: type: object properties: id: type: integer example: 15886 name: type: string example: 'Vesta Schuster PhD' email: type: string example: breitenberg.gilbert@example.com items: type: array example: [] payments: type: array example: [] events: type: array example: [] 400: description: 'Failed validation' content: application/json: schema: type: object example: errors: data.lines: - 'The data.lines field is required.' properties: errors: type: object properties: data.lines: type: array example: - 'The data.lines field is required.' items: type: string 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: 'Invalid sid' content: application/json: schema: type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: sid: 12345 properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 invoice_number: type: string description: 'An optional custom invoice number (unique per Merchant).' example: INV-0007 customer_uuid: type: string description: 'The uuid of an existing customer belonging to the Merchant. Preferred over data.customer_id; supply exactly one.' example: 9f2a6c14-3e8b-4d21-9a77-5c1e0b8f4d33 customer_id: type: integer description: 'An existing customer id belonging to the Merchant to link. Required unless data.customer_uuid is supplied.' example: 88 customer_name: type: string description: 'The customer name to show on the invoice.' example: 'Jane Doe' customer_email: type: string description: 'The customer email the invoice is addressed to.' example: jane@example.com payment_terms: type: string description: 'One of: due_on_receipt, net_15, net_30, net_60.' example: net_15 issue_date: type: string description: 'The issue date (Y-m-d); defaults to today.' example: '2026-07-01' thank_you_note: type: string description: 'An optional note shown on the invoice.' example: 'Thanks for your business!' allow_partial_payment: type: boolean description: 'Whether partial payments are allowed.' example: true cover_fee_required: type: boolean description: "Require the customer to cover the processing fee. The fee is added on top of the invoice total at payment time (card and ACH rates differ), so it is not part of `total` and does not appear as a line item. Defaults to the Merchant's invoice setting." example: true reminder_settings: type: object description: 'Optional per-invoice reminder toggles.' example: before_due: true properties: { } lines: type: array description: 'The line items (at least one).' example: - [] items: type: object properties: item_id: type: integer description: 'The Merchant item id this line is sourced from.' example: 5 name: type: string description: 'The line name.' example: Consulting description: type: string description: 'An optional line description.' example: '2 hours' quantity: type: number description: 'The quantity.' example: 2.0 unit_price: type: number description: 'The unit price in dollars.' example: 125.0 required: - item_id - name - quantity - unit_price required: - sid - customer_name - customer_email - payment_terms - lines /api/invoice/update: patch: summary: 'Update Invoice' operationId: updateInvoice description: "Updates a draft invoice. Only draft invoices can be edited — once sent, an\ninvoice is locked. Passing `data.lines` replaces the existing line items." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: null token: 5dNPg0EI1rCKY6u82CihQuF1Bs1gRHNRNDF4PfzS invoice_number: INV-23164 status: draft payment_terms: net_15 issue_date: '2026-07-28' due_date: '2026-08-12' is_overdue: false subtotal: 0 total: 0 amount_paid: 0 balance: 0 allow_partial_payment: true cover_fee_required: false cover_fee_quote: null thank_you_note: 'Nihil accusantium harum mollitia modi deserunt.' public_url: 'http://app.dimepayments.com/invoice/5dNPg0EI1rCKY6u82CihQuF1Bs1gRHNRNDF4PfzS' customer: id: 15887 name: 'Shaina Cormier' email: gilbert32@example.com items: [] payments: [] events: [] properties: data: type: object properties: id: type: string example: null nullable: true token: type: string example: 5dNPg0EI1rCKY6u82CihQuF1Bs1gRHNRNDF4PfzS invoice_number: type: string example: INV-23164 status: type: string example: draft payment_terms: type: string example: net_15 issue_date: type: string example: '2026-07-28' due_date: type: string example: '2026-08-12' is_overdue: type: boolean example: false subtotal: type: integer example: 0 total: type: integer example: 0 amount_paid: type: integer example: 0 balance: type: integer example: 0 allow_partial_payment: type: boolean example: true cover_fee_required: type: boolean example: false cover_fee_quote: type: string example: null nullable: true thank_you_note: type: string example: 'Nihil accusantium harum mollitia modi deserunt.' public_url: type: string example: 'http://app.dimepayments.com/invoice/5dNPg0EI1rCKY6u82CihQuF1Bs1gRHNRNDF4PfzS' customer: type: object properties: id: type: integer example: 15887 name: type: string example: 'Shaina Cormier' email: type: string example: gilbert32@example.com items: type: array example: [] payments: type: array example: [] events: type: array example: [] 400: description: 'Failed validation' content: application/json: schema: type: object example: errors: data.customer_email: - 'The data.customer email field is required.' properties: errors: type: object properties: data.customer_email: type: array example: - 'The data.customer email field is required.' items: type: string 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: '' content: application/json: schema: oneOf: - description: 'Invalid sid' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' - description: 'Invoice not found' type: object example: data: message: 'Invoice not found' properties: data: type: object properties: message: type: string example: 'Invoice not found' 422: description: 'Invoice locked' content: application/json: schema: type: object example: data: message: 'Only draft invoices can be edited.' properties: data: type: object properties: message: type: string example: 'Only draft invoices can be edited.' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: sid: 12345 properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 invoice_id: type: integer description: 'The id of the draft invoice to update.' example: 42 invoice_number: type: string description: 'An optional custom invoice number (unique per Merchant).' example: INV-0007 customer_uuid: type: string description: 'The uuid of an existing customer belonging to the Merchant. Preferred over data.customer_id; supply exactly one.' example: 9f2a6c14-3e8b-4d21-9a77-5c1e0b8f4d33 customer_id: type: integer description: 'An existing customer id belonging to the Merchant to link. Required unless data.customer_uuid is supplied.' example: 88 customer_name: type: string description: 'The customer name.' example: 'Jane Doe' customer_email: type: string description: 'The customer email.' example: jane@example.com payment_terms: type: string description: 'One of: due_on_receipt, net_15, net_30, net_60.' example: net_15 issue_date: type: string description: 'The issue date (Y-m-d).' example: '2026-07-01' thank_you_note: type: string description: 'An optional note.' example: Thanks! allow_partial_payment: type: boolean description: 'Whether partial payments are allowed.' example: true cover_fee_required: type: boolean description: 'Require the customer to cover the processing fee. Omitting it clears the flag, like the other optional invoice fields on this endpoint.' example: true reminder_settings: type: object description: 'Optional per-invoice reminder toggles.' example: before_due: true properties: { } lines: type: array description: 'The replacement line items (at least one).' example: - [] items: type: object properties: item_id: type: integer description: 'The Merchant item id.' example: 5 name: type: string description: 'The line name.' example: Consulting description: type: string description: 'An optional line description.' example: '2 hours' quantity: type: number description: 'The quantity.' example: 2.0 unit_price: type: number description: 'The unit price in dollars.' example: 125.0 required: - item_id - name - quantity - unit_price required: - sid - invoice_id - customer_name - customer_email - payment_terms - lines /api/invoice/delete: post: summary: 'Delete Invoice' operationId: deleteInvoice description: 'Soft-deletes a draft invoice. Only draft invoices can be deleted.' parameters: [] responses: 200: description: Deleted content: application/json: schema: type: object example: data: message: 'Draft invoice deleted.' properties: data: type: object properties: message: type: string example: 'Draft invoice deleted.' description: 'The result message. Example: Draft invoice deleted.' 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' description: 'The result message. Example: Draft invoice deleted.' 404: description: '' content: application/json: schema: oneOf: - description: 'Invalid sid' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' description: 'The result message. Example: Draft invoice deleted.' - description: 'Invoice not found' type: object example: data: message: 'Invoice not found' properties: data: type: object properties: message: type: string example: 'Invoice not found' description: 'The result message. Example: Draft invoice deleted.' 422: description: 'Invoice locked' content: application/json: schema: type: object example: data: message: 'Only draft invoices can be deleted.' properties: data: type: object properties: message: type: string example: 'Only draft invoices can be deleted.' description: 'The result message. Example: Draft invoice deleted.' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: sid: 12345 properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 invoice_id: type: integer description: 'The id of the draft invoice.' example: 42 required: - sid - invoice_id /api/invoice/send: post: summary: 'Send Invoice' operationId: sendInvoice description: "Emails the invoice to the customer with a link to the public pay page and\nadvances the invoice to Sent. A paid, void, or refunded invoice cannot be\nsent." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: null token: y7BtOXOtKxSgaT2vMG3341PJzYm7EwlwMFfULH5u invoice_number: INV-40640 status: draft payment_terms: net_15 issue_date: '2026-08-22' due_date: '2026-09-06' is_overdue: false subtotal: 0 total: 0 amount_paid: 0 balance: 0 allow_partial_payment: true cover_fee_required: false cover_fee_quote: null thank_you_note: null public_url: 'http://app.dimepayments.com/invoice/y7BtOXOtKxSgaT2vMG3341PJzYm7EwlwMFfULH5u' customer: id: 15888 name: 'Oswald Koch' email: bailee15@example.org items: [] payments: [] events: [] properties: data: type: object properties: id: type: string example: null nullable: true token: type: string example: y7BtOXOtKxSgaT2vMG3341PJzYm7EwlwMFfULH5u invoice_number: type: string example: INV-40640 status: type: string example: draft payment_terms: type: string example: net_15 issue_date: type: string example: '2026-08-22' due_date: type: string example: '2026-09-06' is_overdue: type: boolean example: false subtotal: type: integer example: 0 total: type: integer example: 0 amount_paid: type: integer example: 0 balance: type: integer example: 0 allow_partial_payment: type: boolean example: true cover_fee_required: type: boolean example: false cover_fee_quote: type: string example: null nullable: true thank_you_note: type: string example: null nullable: true public_url: type: string example: 'http://app.dimepayments.com/invoice/y7BtOXOtKxSgaT2vMG3341PJzYm7EwlwMFfULH5u' customer: type: object properties: id: type: integer example: 15888 name: type: string example: 'Oswald Koch' email: type: string example: bailee15@example.org items: type: array example: [] payments: type: array example: [] events: type: array example: [] 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: '' content: application/json: schema: oneOf: - description: 'Invalid sid' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' - description: 'Invoice not found' type: object example: data: message: 'Invoice not found' properties: data: type: object properties: message: type: string example: 'Invoice not found' 422: description: '' content: application/json: schema: oneOf: - description: 'No email' type: object example: data: message: 'Invoice has no customer email to send to.' properties: data: type: object properties: message: type: string example: 'Invoice has no customer email to send to.' - description: Terminal type: object example: data: message: 'A paid, void, or refunded invoice cannot be sent.' properties: data: type: object properties: message: type: string example: 'A paid, void, or refunded invoice cannot be sent.' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: sid: 12345 properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 invoice_id: type: integer description: 'The id of the invoice to send.' example: 42 required: - sid - invoice_id /api/invoice/mark-sent: post: summary: 'Mark Invoice Sent' operationId: markInvoiceSent description: "Activates a draft invoice for payment WITHOUT emailing it — for Merchants\nwho share the public link themselves. Advances Draft to Sent so the pay\nlink becomes live." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: null token: mqUI20twamzFTFLWLFx0e0EAnJThSdHZRMuvNNWx invoice_number: INV-35644 status: draft payment_terms: net_15 issue_date: '2026-08-22' due_date: '2026-09-06' is_overdue: false subtotal: 0 total: 0 amount_paid: 0 balance: 0 allow_partial_payment: true cover_fee_required: false cover_fee_quote: null thank_you_note: null public_url: 'http://app.dimepayments.com/invoice/mqUI20twamzFTFLWLFx0e0EAnJThSdHZRMuvNNWx' customer: id: 15889 name: 'Mr. Carey Smitham' email: sleffler@example.org items: [] payments: [] events: [] properties: data: type: object properties: id: type: string example: null nullable: true token: type: string example: mqUI20twamzFTFLWLFx0e0EAnJThSdHZRMuvNNWx invoice_number: type: string example: INV-35644 status: type: string example: draft payment_terms: type: string example: net_15 issue_date: type: string example: '2026-08-22' due_date: type: string example: '2026-09-06' is_overdue: type: boolean example: false subtotal: type: integer example: 0 total: type: integer example: 0 amount_paid: type: integer example: 0 balance: type: integer example: 0 allow_partial_payment: type: boolean example: true cover_fee_required: type: boolean example: false cover_fee_quote: type: string example: null nullable: true thank_you_note: type: string example: null nullable: true public_url: type: string example: 'http://app.dimepayments.com/invoice/mqUI20twamzFTFLWLFx0e0EAnJThSdHZRMuvNNWx' customer: type: object properties: id: type: integer example: 15889 name: type: string example: 'Mr. Carey Smitham' email: type: string example: sleffler@example.org items: type: array example: [] payments: type: array example: [] events: type: array example: [] 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: '' content: application/json: schema: oneOf: - description: 'Invalid sid' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' - description: 'Invoice not found' type: object example: data: message: 'Invoice not found' properties: data: type: object properties: message: type: string example: 'Invoice not found' 422: description: 'Already sent' content: application/json: schema: type: object example: data: message: 'This invoice has already been sent.' properties: data: type: object properties: message: type: string example: 'This invoice has already been sent.' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: sid: 12345 properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 invoice_id: type: integer description: 'The id of the draft invoice.' example: 42 required: - sid - invoice_id /api/invoice/void: patch: summary: 'Void Invoice' operationId: voidInvoice description: "Voids an invoice. Voiding is terminal — the invoice can no longer be paid.\nAn already void or refunded invoice cannot be voided again." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: null token: 7VRd4Orex3ugTHEJy7ldI2JtDzYcL354KjPmNAEi invoice_number: INV-8317 status: draft payment_terms: net_15 issue_date: '2026-08-22' due_date: '2026-09-06' is_overdue: false subtotal: 0 total: 0 amount_paid: 0 balance: 0 allow_partial_payment: true cover_fee_required: false cover_fee_quote: null thank_you_note: null public_url: 'http://app.dimepayments.com/invoice/7VRd4Orex3ugTHEJy7ldI2JtDzYcL354KjPmNAEi' customer: id: 15890 name: 'Carey Smitham' email: sleffler@example.org items: [] payments: [] events: [] properties: data: type: object properties: id: type: string example: null nullable: true token: type: string example: 7VRd4Orex3ugTHEJy7ldI2JtDzYcL354KjPmNAEi invoice_number: type: string example: INV-8317 status: type: string example: draft payment_terms: type: string example: net_15 issue_date: type: string example: '2026-08-22' due_date: type: string example: '2026-09-06' is_overdue: type: boolean example: false subtotal: type: integer example: 0 total: type: integer example: 0 amount_paid: type: integer example: 0 balance: type: integer example: 0 allow_partial_payment: type: boolean example: true cover_fee_required: type: boolean example: false cover_fee_quote: type: string example: null nullable: true thank_you_note: type: string example: null nullable: true public_url: type: string example: 'http://app.dimepayments.com/invoice/7VRd4Orex3ugTHEJy7ldI2JtDzYcL354KjPmNAEi' customer: type: object properties: id: type: integer example: 15890 name: type: string example: 'Carey Smitham' email: type: string example: sleffler@example.org items: type: array example: [] payments: type: array example: [] events: type: array example: [] 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: '' content: application/json: schema: oneOf: - description: 'Invalid sid' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' - description: 'Invoice not found' type: object example: data: message: 'Invoice not found' properties: data: type: object properties: message: type: string example: 'Invoice not found' 422: description: Terminal content: application/json: schema: type: object example: data: message: 'This invoice is already void or refunded.' properties: data: type: object properties: message: type: string example: 'This invoice is already void or refunded.' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: sid: 12345 properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 invoice_id: type: integer description: 'The id of the invoice to void.' example: 42 required: - sid - invoice_id /api/invoice/duplicate: post: summary: 'Duplicate Invoice' operationId: duplicateInvoice description: "Clones any invoice into a new draft (copying its line items) with a freshly\nallocated invoice number." parameters: [] responses: 201: description: '' content: application/json: schema: type: object example: data: id: null token: HFR0ZuH6Ui7kYCjsAvrKuDlNvSRVWelAupEcNaXj invoice_number: INV-98251 status: draft payment_terms: net_15 issue_date: '2026-08-22' due_date: '2026-09-06' is_overdue: false subtotal: 0 total: 0 amount_paid: 0 balance: 0 allow_partial_payment: true cover_fee_required: false cover_fee_quote: null thank_you_note: 'Consequatur aut dolores enim non facere tempora.' public_url: 'http://app.dimepayments.com/invoice/HFR0ZuH6Ui7kYCjsAvrKuDlNvSRVWelAupEcNaXj' customer: id: 15891 name: 'Vesta Glover' email: schultz.audrey@example.org items: [] payments: [] events: [] properties: data: type: object properties: id: type: string example: null nullable: true token: type: string example: HFR0ZuH6Ui7kYCjsAvrKuDlNvSRVWelAupEcNaXj invoice_number: type: string example: INV-98251 status: type: string example: draft payment_terms: type: string example: net_15 issue_date: type: string example: '2026-08-22' due_date: type: string example: '2026-09-06' is_overdue: type: boolean example: false subtotal: type: integer example: 0 total: type: integer example: 0 amount_paid: type: integer example: 0 balance: type: integer example: 0 allow_partial_payment: type: boolean example: true cover_fee_required: type: boolean example: false cover_fee_quote: type: string example: null nullable: true thank_you_note: type: string example: 'Consequatur aut dolores enim non facere tempora.' public_url: type: string example: 'http://app.dimepayments.com/invoice/HFR0ZuH6Ui7kYCjsAvrKuDlNvSRVWelAupEcNaXj' customer: type: object properties: id: type: integer example: 15891 name: type: string example: 'Vesta Glover' email: type: string example: schultz.audrey@example.org items: type: array example: [] payments: type: array example: [] events: type: array example: [] 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: '' content: application/json: schema: oneOf: - description: 'Invalid sid' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' - description: 'Invoice not found' type: object example: data: message: 'Invoice not found' properties: data: type: object properties: message: type: string example: 'Invoice not found' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: sid: 12345 properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 invoice_id: type: integer description: 'The id of the invoice to duplicate.' example: 42 required: - sid - invoice_id /api/invoice/pay: post: summary: 'Pay Invoice' operationId: payInvoice description: "Records a merchant-initiated (MOTO) payment against an open invoice, charging\na credit card (raw card or a stored token) or a bank account (ACH) through\nProPay. Mirrors the card/ACH charge endpoints but targets the invoice: the\namount is the invoice balance (or a partial amount when the invoice allows\nit), and on approval the invoice status/payment history/per-line\nclassification are updated exactly as a customer payment.\n\nWhen the invoice has `cover_fee_required`, the processing fee for the method\nbeing charged is added on top of `data.amount` — so the card or bank account\nis charged more than the amount credited to the invoice. The invoice is\ncredited `data.amount`; the fee appears as `cover_fee` on the resulting entry\nin the response's `payments` array. Card and ACH rates differ, so the same\n`data.amount` produces a different charge per `data.payment_type`. Read\n`cover_fee_quote` from the invoice beforehand to know the totals in advance.\n\nThe invoice must be open (Sent/Viewed/Partially Paid) with a balance due on\nan active ProPay merchant. A declined card is NOT recorded as a payment." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: null token: B82o5qDkMHNnXx6c9MmS3tIirRfL6vQMl29uXTdl invoice_number: INV-82093 status: draft payment_terms: net_15 issue_date: '2026-08-22' due_date: '2026-09-06' is_overdue: false subtotal: 0 total: 0 amount_paid: 0 balance: 0 allow_partial_payment: true cover_fee_required: false cover_fee_quote: null thank_you_note: null public_url: 'http://app.dimepayments.com/invoice/B82o5qDkMHNnXx6c9MmS3tIirRfL6vQMl29uXTdl' customer: id: 15892 name: 'Donny Leffler' email: mitchell.matilda@example.org items: [] payments: [] events: [] properties: data: type: object properties: id: type: string example: null nullable: true token: type: string example: B82o5qDkMHNnXx6c9MmS3tIirRfL6vQMl29uXTdl invoice_number: type: string example: INV-82093 status: type: string example: draft payment_terms: type: string example: net_15 issue_date: type: string example: '2026-08-22' due_date: type: string example: '2026-09-06' is_overdue: type: boolean example: false subtotal: type: integer example: 0 total: type: integer example: 0 amount_paid: type: integer example: 0 balance: type: integer example: 0 allow_partial_payment: type: boolean example: true cover_fee_required: type: boolean example: false cover_fee_quote: type: string example: null nullable: true thank_you_note: type: string example: null nullable: true public_url: type: string example: 'http://app.dimepayments.com/invoice/B82o5qDkMHNnXx6c9MmS3tIirRfL6vQMl29uXTdl' customer: type: object properties: id: type: integer example: 15892 name: type: string example: 'Donny Leffler' email: type: string example: mitchell.matilda@example.org items: type: array example: [] payments: type: array example: [] events: type: array example: [] 400: description: 'Failed validation' content: application/json: schema: type: object example: errors: data.card_number: - 'The data.card number field is required when data.token is not present.' properties: errors: type: object properties: data.card_number: type: array example: - 'The data.card number field is required when data.token is not present.' items: type: string 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: '' content: application/json: schema: oneOf: - description: 'Invalid sid' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' - description: 'Invoice not found' type: object example: data: message: 'Invoice not found' properties: data: type: object properties: message: type: string example: 'Invoice not found' 422: description: '' content: application/json: schema: oneOf: - description: 'Not payable' type: object example: data: message: 'This invoice cannot be paid (it must be an open invoice with a balance due on an active ProPay merchant).' properties: data: type: object properties: message: type: string example: 'This invoice cannot be paid (it must be an open invoice with a balance due on an active ProPay merchant).' - description: 'Method not accepted' type: object example: data: message: 'This payment method is not accepted by the merchant.' properties: data: type: object properties: message: type: string example: 'This payment method is not accepted by the merchant.' - description: 'Already processing' type: object example: data: message: 'A payment for this invoice is already being processed. Please try again in a moment.' properties: data: type: object properties: message: type: string example: 'A payment for this invoice is already being processed. Please try again in a moment.' - description: 'Amount exceeds balance' type: object example: data: message: 'The payment amount exceeds the $50.00 balance now due.' properties: data: type: object properties: message: type: string example: 'The payment amount exceeds the $50.00 balance now due.' - description: Declined type: object example: data: message: 'The card was declined.' code: '51' properties: data: type: object properties: message: type: string example: 'The card was declined.' code: type: string example: '51' 500: description: 'Captured but not recorded' content: application/json: schema: type: object example: data: message: 'The payment was captured but could not be recorded. Do not retry — please contact support to reconcile this invoice.' properties: data: type: object properties: message: type: string example: 'The payment was captured but could not be recorded. Do not retry — please contact support to reconcile this invoice.' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: sid: 12345 properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 invoice_id: type: integer description: 'The id of the open invoice to pay.' example: 42 payment_type: type: string description: 'The method to charge. One of: cc, ach.' example: cc amount: type: number description: 'A partial amount to pay (only when the invoice allows partial payments); defaults to the full balance.' example: 100.0 memo: type: string description: 'An optional memo for the transaction.' example: 'Phone payment' token: type: string description: '(cc) A stored ProPay card token to charge instead of raw card details.' example: abc123 cardholder_name: type: string description: '(cc, required without data.token) The name on the card.' example: 'Jane Doe' card_number: type: string description: '(cc, required without data.token) The card number (15-16 digits).' example: '4111111111111111' expiration_date: type: string description: '(cc, required without data.token) The expiration in m/Y.' example: 01/2028 cvv: type: string description: '(cc) The card CVV (3-4 digits).' example: '123' account_number: type: string description: '(ach, required) The bank account number.' example: '91828382' routing_number: type: string description: '(ach, required) The 9-digit routing number.' example: '123456789' account_type: type: string description: '(ach, required) Checking or Savings.' example: Checking account_name: type: string description: '(ach, required) The name on the bank account.' example: 'Jane Doe' billing_address: type: object description: '' example: first_name: Jane properties: first_name: type: string description: 'Billing first name.' example: Jane last_name: type: string description: 'Billing last name.' example: Doe addr1: type: string description: 'Billing address line 1.' example: '123 Main St' addr2: type: string description: 'Billing address line 2.' example: 'Suite 2' city: type: string description: 'Billing city.' example: Alpharetta state: type: string description: 'Billing state (2 letters).' example: GA zip: type: string description: 'Billing ZIP (5 digits).' example: '30004' required: - sid - invoice_id - payment_type /api/invoice/link: get: summary: 'Get Invoice Link' operationId: getInvoiceLink description: 'Returns the public pay link (and token) for an invoice.' parameters: [] responses: 200: description: Success content: application/json: schema: type: object example: data: public_url: 'https://example.test/invoice/abcd' token: abcd properties: data: type: object properties: public_url: type: string example: 'https://example.test/invoice/abcd' description: 'The public pay link. Example: https://example.test/invoice/abcd' token: type: string example: abcd description: 'The public token. Example: abcd' 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: '' content: application/json: schema: oneOf: - description: 'Invalid sid' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' - description: 'Invoice not found' type: object example: data: message: 'Invoice not found' properties: data: type: object properties: message: type: string example: 'Invoice not found' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: sid: 12345 properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 invoice_id: type: integer description: 'The id of the invoice.' example: 42 required: - sid - invoice_id /api/invoice/line-item/add: post: summary: 'Add Line Item' operationId: addLineItem description: 'Appends a single line item to a draft invoice and recalculates totals.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: null token: RUz2hn2dHzaMlgdr57qFSVkO61NvAQPvhCGYtwBN invoice_number: INV-52976 status: draft payment_terms: net_15 issue_date: '2026-08-22' due_date: '2026-09-06' is_overdue: false subtotal: 0 total: 0 amount_paid: 0 balance: 0 allow_partial_payment: true cover_fee_required: false cover_fee_quote: null thank_you_note: null public_url: 'http://app.dimepayments.com/invoice/RUz2hn2dHzaMlgdr57qFSVkO61NvAQPvhCGYtwBN' customer: id: 15893 name: 'Elenora Stokes' email: matilda.feeney@example.net items: [] payments: [] events: [] properties: data: type: object properties: id: type: string example: null nullable: true token: type: string example: RUz2hn2dHzaMlgdr57qFSVkO61NvAQPvhCGYtwBN invoice_number: type: string example: INV-52976 status: type: string example: draft payment_terms: type: string example: net_15 issue_date: type: string example: '2026-08-22' due_date: type: string example: '2026-09-06' is_overdue: type: boolean example: false subtotal: type: integer example: 0 total: type: integer example: 0 amount_paid: type: integer example: 0 balance: type: integer example: 0 allow_partial_payment: type: boolean example: true cover_fee_required: type: boolean example: false cover_fee_quote: type: string example: null nullable: true thank_you_note: type: string example: null nullable: true public_url: type: string example: 'http://app.dimepayments.com/invoice/RUz2hn2dHzaMlgdr57qFSVkO61NvAQPvhCGYtwBN' customer: type: object properties: id: type: integer example: 15893 name: type: string example: 'Elenora Stokes' email: type: string example: matilda.feeney@example.net items: type: array example: [] payments: type: array example: [] events: type: array example: [] 400: description: 'Failed validation' content: application/json: schema: type: object example: errors: data.item_id: - 'The selected data.item id is invalid.' properties: errors: type: object properties: data.item_id: type: array example: - 'The selected data.item id is invalid.' items: type: string 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: '' content: application/json: schema: oneOf: - description: 'Invalid sid' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' - description: 'Invoice not found' type: object example: data: message: 'Invoice not found' properties: data: type: object properties: message: type: string example: 'Invoice not found' 422: description: 'Invoice locked' content: application/json: schema: type: object example: data: message: 'Only draft invoices can be edited.' properties: data: type: object properties: message: type: string example: 'Only draft invoices can be edited.' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: sid: 12345 properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 invoice_id: type: integer description: 'The id of the draft invoice.' example: 42 item_id: type: integer description: 'The Merchant item id this line is sourced from.' example: 5 name: type: string description: 'The line name.' example: Consulting description: type: string description: 'An optional line description.' example: '2 hours' quantity: type: number description: 'The quantity.' example: 2.0 unit_price: type: number description: 'The unit price in dollars.' example: 125.0 required: - sid - invoice_id - item_id - name - quantity - unit_price /api/invoice/line-item/update: patch: summary: 'Update Line Item' operationId: updateLineItem description: "Updates a single line item on a draft invoice. Only the fields you pass are\nchanged; the line amount is recomputed and invoice totals refreshed." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: null token: PLzg1zl559X8xKP5xGbHASFcQx5jrFN4Ak2g0T0B invoice_number: INV-66650 status: draft payment_terms: net_15 issue_date: '2026-08-22' due_date: '2026-09-06' is_overdue: false subtotal: 0 total: 0 amount_paid: 0 balance: 0 allow_partial_payment: true cover_fee_required: false cover_fee_quote: null thank_you_note: null public_url: 'http://app.dimepayments.com/invoice/PLzg1zl559X8xKP5xGbHASFcQx5jrFN4Ak2g0T0B' customer: id: 15894 name: 'Henri Mitchell' email: tleuschke@example.net items: [] payments: [] events: [] properties: data: type: object properties: id: type: string example: null nullable: true token: type: string example: PLzg1zl559X8xKP5xGbHASFcQx5jrFN4Ak2g0T0B invoice_number: type: string example: INV-66650 status: type: string example: draft payment_terms: type: string example: net_15 issue_date: type: string example: '2026-08-22' due_date: type: string example: '2026-09-06' is_overdue: type: boolean example: false subtotal: type: integer example: 0 total: type: integer example: 0 amount_paid: type: integer example: 0 balance: type: integer example: 0 allow_partial_payment: type: boolean example: true cover_fee_required: type: boolean example: false cover_fee_quote: type: string example: null nullable: true thank_you_note: type: string example: null nullable: true public_url: type: string example: 'http://app.dimepayments.com/invoice/PLzg1zl559X8xKP5xGbHASFcQx5jrFN4Ak2g0T0B' customer: type: object properties: id: type: integer example: 15894 name: type: string example: 'Henri Mitchell' email: type: string example: tleuschke@example.net items: type: array example: [] payments: type: array example: [] events: type: array example: [] 400: description: 'Failed validation' content: application/json: schema: type: object example: errors: data.quantity: - 'The data.quantity field must be at least 0.' properties: errors: type: object properties: data.quantity: type: array example: - 'The data.quantity field must be at least 0.' items: type: string 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: '' content: application/json: schema: oneOf: - description: 'Invalid sid' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' - description: 'Invoice not found' type: object example: data: message: 'Invoice not found' properties: data: type: object properties: message: type: string example: 'Invoice not found' - description: 'Line item not found' type: object example: data: message: 'Line item not found' properties: data: type: object properties: message: type: string example: 'Line item not found' 422: description: 'Invoice locked' content: application/json: schema: type: object example: data: message: 'Only draft invoices can be edited.' properties: data: type: object properties: message: type: string example: 'Only draft invoices can be edited.' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: sid: 12345 properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 invoice_id: type: integer description: 'The id of the draft invoice.' example: 42 line_item_id: type: integer description: 'The id of the line item to update.' example: 9 item_id: type: integer description: 'The Merchant item id this line is sourced from.' example: 5 name: type: string description: 'The line name.' example: Consulting description: type: string description: 'The line description.' example: '3 hours' quantity: type: number description: 'The quantity.' example: 3.0 unit_price: type: number description: 'The unit price in dollars.' example: 125.0 required: - sid - invoice_id - line_item_id /api/invoice/line-item/delete: post: summary: 'Delete Line Item' operationId: deleteLineItem description: 'Removes a single line item from a draft invoice and recalculates totals.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: null token: HuNPPCJ7YodcN9CpjFGZEyPVVPXCrSDwEwDdwZLt invoice_number: INV-89023 status: draft payment_terms: net_15 issue_date: '2026-08-22' due_date: '2026-09-06' is_overdue: false subtotal: 0 total: 0 amount_paid: 0 balance: 0 allow_partial_payment: true cover_fee_required: false cover_fee_quote: null thank_you_note: 'Non facere tempora ex voluptatem laboriosam praesentium.' public_url: 'http://app.dimepayments.com/invoice/HuNPPCJ7YodcN9CpjFGZEyPVVPXCrSDwEwDdwZLt' customer: id: 15895 name: 'Sebastian Haag I' email: daphne59@example.com items: [] payments: [] events: [] properties: data: type: object properties: id: type: string example: null nullable: true token: type: string example: HuNPPCJ7YodcN9CpjFGZEyPVVPXCrSDwEwDdwZLt invoice_number: type: string example: INV-89023 status: type: string example: draft payment_terms: type: string example: net_15 issue_date: type: string example: '2026-08-22' due_date: type: string example: '2026-09-06' is_overdue: type: boolean example: false subtotal: type: integer example: 0 total: type: integer example: 0 amount_paid: type: integer example: 0 balance: type: integer example: 0 allow_partial_payment: type: boolean example: true cover_fee_required: type: boolean example: false cover_fee_quote: type: string example: null nullable: true thank_you_note: type: string example: 'Non facere tempora ex voluptatem laboriosam praesentium.' public_url: type: string example: 'http://app.dimepayments.com/invoice/HuNPPCJ7YodcN9CpjFGZEyPVVPXCrSDwEwDdwZLt' customer: type: object properties: id: type: integer example: 15895 name: type: string example: 'Sebastian Haag I' email: type: string example: daphne59@example.com items: type: array example: [] payments: type: array example: [] events: type: array example: [] 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: '' content: application/json: schema: oneOf: - description: 'Invalid sid' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' - description: 'Invoice not found' type: object example: data: message: 'Invoice not found' properties: data: type: object properties: message: type: string example: 'Invoice not found' - description: 'Line item not found' type: object example: data: message: 'Line item not found' properties: data: type: object properties: message: type: string example: 'Line item not found' 422: description: 'Invoice locked' content: application/json: schema: type: object example: data: message: 'Only draft invoices can be edited.' properties: data: type: object properties: message: type: string example: 'Only draft invoices can be edited.' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: sid: 12345 properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 invoice_id: type: integer description: 'The id of the draft invoice.' example: 42 line_item_id: type: integer description: 'The id of the line item to remove.' example: 9 required: - sid - invoice_id - line_item_id /api/invoice/items: get: summary: 'List Invoice Items' operationId: listInvoiceItems description: "Lists the Merchant's items (funds/designations) available to use as invoice\nline items, ordered alphabetically." parameters: [] responses: 200: description: Success content: application/json: schema: type: object example: data: - id: 5 name: Consulting description: null price: 125.0 properties: data: type: array example: - id: 5 name: Consulting description: null price: 125 items: type: object properties: id: type: integer example: 5 name: type: string example: Consulting description: type: string example: null nullable: true price: type: number example: 125.0 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: 'Invalid sid' content: application/json: schema: type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 required: - sid /api/invoice/item/create: post: summary: 'Create Invoice Item' operationId: createInvoiceItem description: "Creates an invoicing-only item (fund/designation) for the Merchant. The\nitem is hidden from public giving pages and can be referenced as a line\nitem's `item_id`." parameters: [] responses: 201: description: Created content: application/json: schema: type: object example: data: id: 5 name: Consulting description: null price: 125.0 tax_deductible: false properties: data: type: object properties: id: type: integer example: 5 description: 'The item id. Example: 5' name: type: string example: Consulting description: 'The item name. Example: Consulting' description: type: string example: null description: 'The item description. Example: null' price: type: number example: 125.0 description: 'The default unit price in dollars, if set. Example: 125.00' tax_deductible: type: boolean example: false description: 'Whether the item is tax deductible. Example: false' 400: description: 'Failed validation' content: application/json: schema: type: object example: errors: data.name: - 'The data.name field is required.' properties: errors: type: object properties: data.name: type: array example: - 'The data.name field is required.' items: type: string 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: 'Invalid sid' content: application/json: schema: type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 name: type: string description: 'The item name.' example: Consulting description: type: string description: 'An optional description.' example: 'Professional services' nullable: true price: type: number description: 'An optional default unit price in dollars.' example: 125.0 nullable: true tax_deductible: type: boolean description: 'Whether the item is tax deductible.' example: false required: - sid - name /api/recurring-invoices: get: summary: 'List Recurring Invoices' operationId: listRecurringInvoices description: "Retrieves a paginated (cursor) list of recurring-invoice templates for a\nMerchant, optionally filtered by status." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: null status: Active recurrence_schedule: Monthly payment_terms: net_15 cover_fee_required: false start_date: '2026-08-24' end_date: null next_run_date: '2026-09-24' last_run_date: null customer_name: 'Lafayette Considine' - id: null status: Active recurrence_schedule: Monthly payment_terms: net_15 cover_fee_required: false start_date: '2026-08-24' end_date: null next_run_date: '2026-09-24' last_run_date: null customer_name: 'Margaretta Thiel' links: prev: null next: null meta: path: / per_page: 500 next_cursor: null prev_cursor: null properties: data: type: array example: - id: null status: Active recurrence_schedule: Monthly payment_terms: net_15 cover_fee_required: false start_date: '2026-08-24' end_date: null next_run_date: '2026-09-24' last_run_date: null customer_name: 'Lafayette Considine' - id: null status: Active recurrence_schedule: Monthly payment_terms: net_15 cover_fee_required: false start_date: '2026-08-24' end_date: null next_run_date: '2026-09-24' last_run_date: null customer_name: 'Margaretta Thiel' items: type: object properties: id: type: string example: null description: 'The template id. Example: 3' status: type: string example: Active description: 'The template status. Example: Active' recurrence_schedule: type: string example: Monthly description: 'The schedule. Example: Monthly' payment_terms: type: string example: net_15 description: 'The payment terms applied to generated invoices. Example: net_15' cover_fee_required: type: boolean example: false start_date: type: string example: '2026-08-24' description: 'The start date (Y-m-d). Example: 2026-07-01' end_date: type: string example: null description: 'The optional end date (Y-m-d), or null. Example: 2027-07-01' next_run_date: type: string example: '2026-09-24' description: 'The next run date (Y-m-d), or null once ended. Example: 2026-08-01' last_run_date: type: string example: null description: 'The most recent run date (Y-m-d), or null. Example: 2026-07-01' customer_name: type: string example: 'Lafayette Considine' description: 'The linked customer name. Example: Jane Doe' links: type: object properties: prev: type: string example: null nullable: true next: type: string example: null nullable: true meta: type: object properties: path: type: string example: / per_page: type: integer example: 500 next_cursor: type: string example: null nullable: true prev_cursor: type: string example: null nullable: true 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: 'Invalid sid' content: application/json: schema: type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 required: - sid filters: type: object description: '' example: [] properties: status: type: string description: 'A status to filter by. One of: Active, Ended, Cancelled.' example: Active /api/recurring-invoice: get: summary: 'Show Recurring Invoice' operationId: showRecurringInvoice description: "Retrieves a single recurring-invoice template with its line items, the\ninvoices it has generated (the 50 most recent), and the upcoming run dates." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: null status: Active recurrence_schedule: Monthly payment_terms: net_15 cover_fee_required: false start_date: '2026-08-24' end_date: null next_run_date: '2026-09-24' last_run_date: null thank_you_note: null customer: id: 15898 name: 'Marcelo Predovic' email: kconsidine@example.net items: [] upcoming_run_dates: - '2026-09-24' - '2026-10-24' - '2026-11-24' invoices: [] properties: data: type: object properties: id: type: string example: null description: 'The template id. Example: 3' status: type: string example: Active description: 'The template status. Example: Active' recurrence_schedule: type: string example: Monthly description: 'The schedule. Example: Monthly' payment_terms: type: string example: net_15 description: 'The payment terms applied to generated invoices. Example: net_15' cover_fee_required: type: boolean example: false start_date: type: string example: '2026-08-24' description: 'The first run date (Y-m-d). Example: 2026-08-01' end_date: type: string example: null description: 'The optional end date (Y-m-d), or null. Example: 2027-08-01' next_run_date: type: string example: '2026-09-24' 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: 15898 name: type: string example: 'Marcelo Predovic' email: type: string example: kconsidine@example.net description: 'The linked customer (id, name, email).' items: type: array example: [] description: 'The template line items (id, item_id, name, description, quantity, unit_price, amount).' upcoming_run_dates: type: array example: - '2026-09-24' - '2026-10-24' - '2026-11-24' description: 'The next few scheduled run dates (Y-m-d), computed on read.' items: type: string invoices: type: array example: [] description: 'The 50 most recent generated invoices (id, invoice_number, status, total, issue_date, public_url).' 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: '' content: application/json: schema: oneOf: - description: 'Invalid sid' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' - description: 'Not found' type: object example: data: message: 'Recurring invoice not found' properties: data: type: object properties: message: type: string example: 'Recurring invoice not found' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: sid: 12345 properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 recurring_invoice_id: type: integer description: 'The id of the template.' example: 3 required: - sid - recurring_invoice_id /api/recurring-invoice/create: post: summary: 'Create Recurring Invoice' operationId: createRecurringInvoice description: "Creates a recurring-invoice template. The template carries its own snapshot\nof the line items and requires a linked customer (used to resolve the email\non every run). When the start date is today the first invoice is generated\nand sent immediately; a future start date just schedules the first run." parameters: [] responses: 201: description: '' content: application/json: schema: type: object example: data: id: null status: Active recurrence_schedule: Monthly payment_terms: net_15 cover_fee_required: false start_date: '2026-08-24' end_date: null next_run_date: '2026-09-24' last_run_date: null thank_you_note: null customer: id: 15899 name: 'Pauline Runte' email: alayna44@example.org items: [] upcoming_run_dates: - '2026-09-24' - '2026-10-24' - '2026-11-24' invoices: [] properties: data: type: object properties: id: type: string example: null nullable: true status: type: string example: Active recurrence_schedule: type: string example: Monthly payment_terms: type: string example: net_15 cover_fee_required: type: boolean example: false start_date: type: string example: '2026-08-24' end_date: type: string example: null nullable: true next_run_date: type: string example: '2026-09-24' 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: 15899 name: type: string example: 'Pauline Runte' email: type: string example: alayna44@example.org items: type: array example: [] upcoming_run_dates: type: array example: - '2026-09-24' - '2026-10-24' - '2026-11-24' items: type: string invoices: type: array example: [] 400: description: 'Failed validation' content: application/json: schema: type: object example: errors: data.customer_id: - 'The data.customer id field is required.' properties: errors: type: object properties: data.customer_id: type: array example: - 'The data.customer id field is required.' items: type: string 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: 'Invalid sid' content: application/json: schema: type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: sid: 12345 properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 customer_uuid: type: string description: 'The uuid of an existing customer belonging to the Merchant. Preferred over data.customer_id; supply exactly one.' example: 9f2a6c14-3e8b-4d21-9a77-5c1e0b8f4d33 customer_id: type: integer description: 'An existing customer id belonging to the Merchant. Required unless data.customer_uuid is supplied.' example: 88 payment_terms: type: string description: 'One of: due_on_receipt, net_15, net_30, net_60.' example: net_15 cover_fee_required: type: boolean description: "Require the customer to cover the processing fee on every invoice this template generates. Defaults to the Merchant's invoice setting." example: true recurring_frequency: type: string description: 'The schedule. One of: Weekly, Biweekly, FirstFifteenth, Monthly, Yearly.' example: Monthly recurring_start_date: type: string description: 'The first run date (Y-m-d).' example: '2026-08-01' recurring_end_date: type: string description: 'An optional end date (Y-m-d), on/after the start date.' example: '2027-08-01' thank_you_note: type: string description: 'An optional note shown on generated invoices.' example: Thanks! lines: type: array description: 'The line items (at least one).' example: - [] items: type: object properties: item_id: type: integer description: 'The Merchant item id.' example: 5 name: type: string description: 'The line name.' example: 'Monthly retainer' description: type: string description: 'An optional line description.' example: 'Support plan' quantity: type: number description: 'The quantity.' example: 1.0 unit_price: type: number description: 'The unit price in dollars.' example: 500.0 required: - item_id - name - quantity - unit_price required: - sid - payment_terms - recurring_frequency - recurring_start_date - lines /api/recurring-invoice/cancel: post: summary: 'Cancel Recurring Invoice' operationId: cancelRecurringInvoice description: "Cancels an active recurring-invoice template. No further invoices are\ngenerated. Only active templates can be cancelled." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: null status: Active recurrence_schedule: Monthly payment_terms: net_15 cover_fee_required: false start_date: '2026-08-24' end_date: null next_run_date: '2026-09-24' last_run_date: null thank_you_note: null customer: id: 15900 name: 'Marcelo Predovic' email: micaela88@example.org items: [] upcoming_run_dates: - '2026-09-24' - '2026-10-24' - '2026-11-24' invoices: [] properties: data: type: object properties: id: type: string example: null nullable: true status: type: string example: Active recurrence_schedule: type: string example: Monthly payment_terms: type: string example: net_15 cover_fee_required: type: boolean example: false start_date: type: string example: '2026-08-24' end_date: type: string example: null nullable: true next_run_date: type: string example: '2026-09-24' 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: 15900 name: type: string example: 'Marcelo Predovic' email: type: string example: micaela88@example.org items: type: array example: [] upcoming_run_dates: type: array example: - '2026-09-24' - '2026-10-24' - '2026-11-24' items: type: string invoices: type: array example: [] 401: description: 'Token unauthorized' content: application/json: schema: type: object example: data: message: 'Permission Denied.' properties: data: type: object properties: message: type: string example: 'Permission Denied.' 404: description: '' content: application/json: schema: oneOf: - description: 'Invalid sid' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' - description: 'Not found' type: object example: data: message: 'Recurring invoice not found' properties: data: type: object properties: message: type: string example: 'Recurring invoice not found' 422: description: 'Not active' content: application/json: schema: type: object example: data: message: 'Only active recurring invoices can be cancelled.' properties: data: type: object properties: message: type: string example: 'Only active recurring invoices can be cancelled.' tags: - 'Invoice management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: sid: 12345 properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 recurring_invoice_id: type: integer description: 'The id of the template to cancel.' example: 3 required: - sid - recurring_invoice_id /api/payment-method/list: get: summary: 'List payment methods for a customer' operationId: listPaymentMethodsForACustomer description: "This endpoint shows all payment methods for a customer. Must pass at least one filter to select\n a specific customer" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 1 type: cc token: B6EXEPCIC8WGK63Y19RE5222 first_name: Lisa last_name: 'Wallow ' cc_name_on_card: 'Lisa Wallow' cc_last_four: '5222' cc_expiration_date: 08/2028 cc_brand: Visa status: New status_date: '2026-04-20 08:32:30' enabled: true default: false addr1: '1504 Minnesota Ave' addr2: '' addr3: null city: Kenner state: LA zip: '30534' - id: 1 type: cc token: B6EXEPCIC8WGK63Y19RE5222 first_name: Lisa last_name: 'Wallow ' cc_name_on_card: 'Lisa Wallow' cc_last_four: '5222' cc_expiration_date: 08/2028 cc_brand: Visa status: New status_date: '2026-04-20 08:32:30' enabled: true default: false addr1: '1504 Minnesota Ave' addr2: '' addr3: null city: Kenner state: LA zip: '30534' links: prev: null next: null meta: path: / per_page: 15 next_cursor: null prev_cursor: null properties: data: type: array example: - id: 1 type: cc token: B6EXEPCIC8WGK63Y19RE5222 first_name: Lisa last_name: 'Wallow ' cc_name_on_card: 'Lisa Wallow' cc_last_four: '5222' cc_expiration_date: 08/2028 cc_brand: Visa status: New status_date: '2026-04-20 08:32:30' enabled: true default: false addr1: '1504 Minnesota Ave' addr2: '' addr3: null city: Kenner state: LA zip: '30534' - id: 1 type: cc token: B6EXEPCIC8WGK63Y19RE5222 first_name: Lisa last_name: 'Wallow ' cc_name_on_card: 'Lisa Wallow' cc_last_four: '5222' cc_expiration_date: 08/2028 cc_brand: Visa status: New status_date: '2026-04-20 08:32:30' enabled: true default: false addr1: '1504 Minnesota Ave' addr2: '' addr3: null city: Kenner state: LA zip: '30534' items: type: object properties: id: type: integer example: 1 description: 'The ID of the Payment Method. Example: 12345' type: type: string example: cc description: 'The type of the Payment Method. Example: cc' token: type: string example: B6EXEPCIC8WGK63Y19RE5222 description: 'The token of the Payment Method. Example: xxxxxxxx' first_name: type: string example: Lisa description: 'The first name of the customer. Example: John' last_name: type: string example: 'Wallow ' description: 'The last name of the customer. Example: Doe' cc_name_on_card: type: string example: 'Lisa Wallow' description: 'The name on the card. Example: John Doe' cc_last_four: type: string example: '5222' description: 'The last four digits of the card. Example: 1234' cc_expiration_date: type: string example: 08/2028 description: 'The expiration date of the card. Example: 01/2025' cc_brand: type: string example: Visa description: 'The brand of the card. Example: Visa' status: type: string example: New description: 'The status of the Payment Method. Example: New' status_date: type: string example: '2026-04-20 08:32:30' description: 'The date the Payment Method was created. Example: 2024-12-08 05:00:04' enabled: type: boolean example: true description: 'Whether the Payment Method is enabled or not. Example: true' default: type: boolean example: false description: 'Whether the Payment Method is default or not. Example: true' addr1: type: string example: '1504 Minnesota Ave' description: 'Address Line One. Example: 123 First St.' addr2: type: string example: '' description: 'Address Line Two. Example: Suite 111' addr3: type: string example: null description: 'Address Line Three. Example: Suite 111' city: type: string example: Kenner description: 'City name. Example: Alpharetta' state: type: string example: LA description: 'Two character State. Example: GA' zip: type: string example: '30534' description: 'Zip code. Example: 30009' links: type: object properties: prev: type: string example: null nullable: true next: type: string example: null nullable: true meta: type: object properties: path: type: string example: / per_page: type: integer example: 15 next_cursor: type: string example: null nullable: true prev_cursor: type: string example: null nullable: true 401: description: 'Token permission error' content: application/json: schema: type: object example: data: message: 'Permission denied' properties: data: type: object properties: message: type: string example: 'Permission denied' 404: description: '' content: application/json: schema: oneOf: - description: 'Customer not found' type: object example: data: message: 'Customer not found.' properties: data: type: object properties: message: type: string example: 'Customer not found.' - description: 'No such Merchant' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' tags: - 'Payment Method management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 required: - sid filters: type: object description: '' example: [] properties: phone: type: string description: 'Phone number of the customer. Must be in e.164 format.' example: '+15551237890' uuid: type: string description: 'UUID of the customer. Must be in uuid format.' example: 3c37db03-dc71-4e8b-90e7-6668290b7c3d email: type: string description: 'Email of the customer. Must be in rfc compliant.' example: an-email@domain.com /api/payment-method/show: get: summary: 'Show a Payment Method for a customer' operationId: showAPaymentMethodForACustomer description: "This endpoint shows a specific payment method for a customer. Must pass at least one filter to select\n a specific customer" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 1 type: cc token: B6EXEPCIC8WGK63Y19RE5222 first_name: Lisa last_name: 'Wallow ' cc_name_on_card: 'Lisa Wallow' cc_last_four: '5222' cc_expiration_date: 08/2028 cc_brand: Visa status: New status_date: '2026-04-20 08:32:30' enabled: true default: false addr1: '1504 Minnesota Ave' addr2: '' addr3: null city: Kenner state: LA zip: '30534' properties: data: type: object properties: id: type: integer example: 1 description: 'The ID of the Payment Method. Example: 12345' type: type: string example: cc description: 'The type of the Payment Method. Example: cc' token: type: string example: B6EXEPCIC8WGK63Y19RE5222 description: 'The token of the Payment Method. Example: xxxxxxxx' first_name: type: string example: Lisa description: 'The first name of the customer. Example: John' last_name: type: string example: 'Wallow ' description: 'The last name of the customer. Example: Doe' cc_name_on_card: type: string example: 'Lisa Wallow' description: 'The name on the card. Example: John Doe' cc_last_four: type: string example: '5222' description: 'The last four digits of the card. Example: 1234' cc_expiration_date: type: string example: 08/2028 description: 'The expiration date of the card. Example: 01/2025' cc_brand: type: string example: Visa description: 'The brand of the card. Example: Visa' status: type: string example: New description: 'The status of the Payment Method. Example: New' status_date: type: string example: '2026-04-20 08:32:30' description: 'The date the Payment Method was created. Example: 2024-12-08 05:00:04' enabled: type: boolean example: true description: 'Whether the Payment Method is enabled or not. Example: true' default: type: boolean example: false description: 'Whether the Payment Method is default or not. Example: true' addr1: type: string example: '1504 Minnesota Ave' description: 'Address Line One. Example: 123 First St.' addr2: type: string example: '' description: 'Address Line Two. Example: Suite 111' addr3: type: string example: null description: 'Address Line Three. Example: Suite 111' city: type: string example: Kenner description: 'City name. Example: Alpharetta' state: type: string example: LA description: 'Two character State. Example: GA' zip: type: string example: '30534' description: 'Zip code. Example: 30009' 401: description: 'Token permission error' content: application/json: schema: type: object example: data: message: 'Permission denied' properties: data: type: object properties: message: type: string example: 'Permission denied' 404: description: '' content: application/json: schema: oneOf: - description: 'Customer not found' type: object example: data: message: 'Customer not found.' properties: data: type: object properties: message: type: string example: 'Customer not found.' - description: 'Payment Method not found' type: object example: data: message: 'Payment Method not found.' properties: data: type: object properties: message: type: string example: 'Payment Method not found.' - description: 'No such Merchant' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' tags: - 'Payment Method management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 payment_method_id: type: integer description: 'The ID of the Payment Method.' example: 12345 required: - sid - payment_method_id filters: type: object description: '' example: [] properties: phone: type: string description: 'Phone number of the customer. Must be in e.164 format.' example: '+15551237890' uuid: type: string description: 'UUID of the customer. Must be in uuid format.' example: 3c37db03-dc71-4e8b-90e7-6668290b7c3d email: type: string description: 'Email of the customer. Must be in rfc compliant.' example: an-email@domain.com /api/payment-method/create: post: summary: 'Create a Payment Method for a customer' operationId: createAPaymentMethodForACustomer description: "This endpoint creates a new payment method for a customer. Must pass at least one filter to select\n a specific customer" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 1 type: cc token: B6EXEPCIC8WGK63Y19RE5222 first_name: Lisa last_name: 'Wallow ' cc_name_on_card: 'Lisa Wallow' cc_last_four: '5222' cc_expiration_date: 08/2028 cc_brand: Visa status: New status_date: '2026-04-20 08:32:30' enabled: true default: false addr1: '1504 Minnesota Ave' addr2: '' addr3: null city: Kenner state: LA zip: '30534' properties: data: type: object properties: id: type: integer example: 1 description: 'The ID of the Payment Method. Example: 12345' type: type: string example: cc description: 'The type of the Payment Method. Example: cc' token: type: string example: B6EXEPCIC8WGK63Y19RE5222 description: 'The token of the Payment Method. Example: xxxxxxxx' first_name: type: string example: Lisa description: 'The first name of the customer. Example: John' last_name: type: string example: 'Wallow ' description: 'The last name of the customer. Example: Doe' cc_name_on_card: type: string example: 'Lisa Wallow' description: 'The name on the card. Example: John Doe' cc_last_four: type: string example: '5222' description: 'The last four digits of the card. Example: 1234' cc_expiration_date: type: string example: 08/2028 description: 'The expiration date of the card. Example: 01/2025' cc_brand: type: string example: Visa description: 'The brand of the card. Example: Visa' status: type: string example: New description: 'The status of the Payment Method. Example: New' status_date: type: string example: '2026-04-20 08:32:30' description: 'The date the Payment Method was created. Example: 2024-12-08 05:00:04' enabled: type: boolean example: true description: 'Whether the Payment Method is enabled or not. Example: true' default: type: boolean example: false description: 'Whether the Payment Method is default or not. Example: true' addr1: type: string example: '1504 Minnesota Ave' description: 'Address Line One. Example: 123 First St.' addr2: type: string example: '' description: 'Address Line Two. Example: Suite 111' addr3: type: string example: null description: 'Address Line Three. Example: Suite 111' city: type: string example: Kenner description: 'City name. Example: Alpharetta' state: type: string example: LA description: 'Two character State. Example: GA' zip: type: string example: '30534' description: 'Zip code. Example: 30009' 401: description: 'Token permission error' content: application/json: schema: type: object example: data: message: 'Permission denied' properties: data: type: object properties: message: type: string example: 'Permission denied' 404: description: '' content: application/json: schema: oneOf: - description: 'Customer not found' type: object example: data: message: 'Customer not found.' properties: data: type: object properties: message: type: string example: 'Customer not found.' - description: 'No such Merchant' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' tags: - 'Payment Method management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: uuid: type: string description: 'UUID of the customer. Must be in uuid format.' example: 3c37db03-dc71-4e8b-90e7-6668290b7c3d sid: type: integer description: 'The SID of the Merchant.' example: 12345 type: type: string description: "Type of payment method 'cc' for credit card or 'ach' for bank accounts." example: cc cc_name_on_card: type: string description: "The name on the card. Required IF type is 'cc' Max: 255." example: 'John Doe' cc_number: type: string description: "The card number. Required IF type is 'cc' Max: 255." example: '7890' cc_expiration_date: type: string description: "The expiration date of card. Required IF type is 'cc' Max: 7." example: 01/2025 cc_cvv: type: string description: "The CVV of card. Required IF type is 'cc' Max: 4." example: '1234' cc_brand: type: string description: "The brand of the card. Must be Visa, MasterCard, or Amex. Required IF type is 'cc' Max: 10." example: Visa ach_bank_account_name: type: string description: "The name on the bank account. Required IF type is 'ach' Max: 50." example: 'Acme Inc.' ach_routing_number: type: string description: "Routing number for ach type. Required IF type is 'ach' Digits: 9." example: '123456789' ach_account_number: type: string description: "Account number for ach type. Required IF type is 'ach' Max: 35." example: '123456789' ach_ownership_type: type: string description: "Ownership type of the account. Must be Personal or Business. Required IF type is 'ach' Max: 35." example: Personal ach_account_type: type: string description: "Type of the account. Must be Checking or Savings. Required IF type is 'ach' Max: 35." example: Checking ach_bank_name: type: string description: "The name of the bank. Required IF type is 'ach' Max: 50." example: 'Wells Fargo' default: type: boolean description: 'Should this be default payment method.' example: true addr1: type: string description: 'Address Line One. Max: 75.' example: '123 First St.' addr2: type: string description: 'Address Line Two. Max: 50.' example: 'Suite 111' nullable: true city: type: string description: 'City name. Max: 75.' example: Alpharetta state: type: string description: 'Two character State. Max: 2.' example: GA zip: type: string description: 'Zip code. Digits: 5.' example: '30009' required: - sid - type - cc_name_on_card - cc_number - cc_expiration_date - cc_cvv - cc_brand - ach_bank_account_name - ach_routing_number - ach_account_number - ach_ownership_type - ach_account_type - ach_bank_name /api/payment-method/update: patch: summary: 'Update a Payment Method for a customer' operationId: updateAPaymentMethodForACustomer description: "This endpoint updates a payment method for a customer. Must pass at least one filter to select\n a specific customer" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 1 type: cc token: B6EXEPCIC8WGK63Y19RE5222 first_name: Lisa last_name: 'Wallow ' cc_name_on_card: 'Lisa Wallow' cc_last_four: '5222' cc_expiration_date: 08/2028 cc_brand: Visa status: New status_date: '2026-04-20 08:32:30' enabled: true default: false addr1: '1504 Minnesota Ave' addr2: '' addr3: null city: Kenner state: LA zip: '30534' properties: data: type: object properties: id: type: integer example: 1 description: 'The ID of the Payment Method. Example: 12345' type: type: string example: cc description: 'The type of the Payment Method. Example: cc' token: type: string example: B6EXEPCIC8WGK63Y19RE5222 description: 'The token of the Payment Method. Example: xxxxxxxx' first_name: type: string example: Lisa description: 'The first name of the customer. Example: John' last_name: type: string example: 'Wallow ' description: 'The last name of the customer. Example: Doe' cc_name_on_card: type: string example: 'Lisa Wallow' description: 'The name on the card. Example: John Doe' cc_last_four: type: string example: '5222' description: 'The last four digits of the card. Example: 1234' cc_expiration_date: type: string example: 08/2028 description: 'The expiration date of the card. Example: 01/2025' cc_brand: type: string example: Visa description: 'The brand of the card. Example: Visa' status: type: string example: New description: 'The status of the Payment Method. Example: New' status_date: type: string example: '2026-04-20 08:32:30' description: 'The date the Payment Method was created. Example: 2024-12-08 05:00:04' enabled: type: boolean example: true description: 'Whether the Payment Method is enabled or not. Example: true' default: type: boolean example: false description: 'Whether the Payment Method is default or not. Example: true' addr1: type: string example: '1504 Minnesota Ave' description: 'Address Line One. Example: 123 First St.' addr2: type: string example: '' description: 'Address Line Two. Example: Suite 111' addr3: type: string example: null description: 'Address Line Three. Example: Suite 111' city: type: string example: Kenner description: 'City name. Example: Alpharetta' state: type: string example: LA description: 'Two character State. Example: GA' zip: type: string example: '30534' description: 'Zip code. Example: 30009' 401: description: 'Token permission error' content: application/json: schema: type: object example: data: message: 'Permission denied' properties: data: type: object properties: message: type: string example: 'Permission denied' 404: description: '' content: application/json: schema: oneOf: - description: 'Customer not found' type: object example: data: message: 'Customer not found.' properties: data: type: object properties: message: type: string example: 'Customer not found.' - description: 'Merchant not found' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' tags: - 'Payment Method management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: uuid: type: string description: 'Must be a valid UUID. The uuid of an existing record in the customers table.' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed sid: type: integer description: 'The SID of the Merchant.' example: 12345 payment_method_id: type: number description: 'The id of an existing record in the payment_methods table.' example: 4326.41688 type: type: string description: "Type of payment method 'cc' for credit card or 'ach' for bank accounts." example: cc cc_name_on_card: type: string description: "The name on the card. Required IF type is 'cc' Max: 255." example: 'John Doe' cc_number: type: string description: "The card number. Required IF type is 'cc' Max: 255." example: '7890' cc_expiration_date: type: string description: "The expiration date of card. Required IF type is 'cc' Max: 7." example: 01/2025 cc_cvv: type: string description: "The CVV of card. Required IF type is 'cc' Max: 4." example: '1234' cc_brand: type: string description: "The brand of the card. Must be Visa, MasterCard, or Amex. Required IF type is 'cc' Max: 10." example: Visa ach_bank_account_name: type: string description: "The name on the bank account. Required IF type is 'ach' Max: 50." example: 'Acme Inc.' ach_routing_number: type: string description: "Routing number for ach type. Required IF type is 'ach' Digits: 9." example: '123456789' ach_account_number: type: string description: "Account number for ach type. Required IF type is 'ach' Max: 35." example: '123456789' ach_ownership_type: type: string description: "Ownership type of the account. Must be Personal or Business. Required IF type is 'ach' Max: 35." example: Personal ach_account_type: type: string description: "Type of the account. Must be Checking or Savings. Required IF type is 'ach' Max: 35." example: Checking ach_bank_name: type: string description: "The name of the bank. Required IF type is 'ach' Max: 50." example: 'Wells Fargo' default: type: boolean description: 'Should this be default payment method.' example: true addr1: type: string description: 'Address Line One. Max: 75.' example: '123 First St.' addr2: type: string description: 'Address Line Two. Max: 50.' example: 'Suite 111' nullable: true city: type: string description: 'City name. Max: 75.' example: Alpharetta state: type: string description: 'Two character State. Max: 2.' example: GA zip: type: string description: 'Zip code. Digits: 5.' example: '30009' required: - uuid - sid - payment_method_id - type - cc_name_on_card - cc_number - cc_expiration_date - cc_cvv - cc_brand - ach_bank_account_name - ach_routing_number - ach_account_number - ach_ownership_type - ach_account_type - ach_bank_name - addr1 - city - state - zip filters: type: object description: '' example: phone: '+15551237890' properties: phone: type: string description: 'Phone number of the customer. Must be in e.164 format.' example: '+15551237890' email: type: string description: 'Email of the customer. Must be in rfc compliant.' example: an-email@domain.com uuid: type: string description: 'UUID of the customer. Must be in uuid format.' example: 3c37db03-dc71-4e8b-90e7-6668290b7c3d /api/payment-method/delete: post: summary: 'Delete a Payment Method for a customer' operationId: deleteAPaymentMethodForACustomer description: "This endpoint deletes a payment method for a customer. Must pass at least one filter to select\n a specific customer" parameters: [] responses: 200: description: 'Successful Deletion' content: application/json: schema: type: object example: data: message: 'Payment Method deleted successfully.' properties: data: type: object properties: message: type: string example: 'Payment Method deleted successfully.' description: 'The message of the response. Example: Payment Method deleted successfully.' 401: description: 'Token permission error' content: application/json: schema: type: object example: data: message: 'Permission denied' properties: data: type: object properties: message: type: string example: 'Permission denied' description: 'The message of the response. Example: Payment Method deleted successfully.' 404: description: '' content: application/json: schema: oneOf: - description: 'Customer not found' type: object example: data: message: 'Customer not found.' properties: data: type: object properties: message: type: string example: 'Customer not found.' description: 'The message of the response. Example: Payment Method deleted successfully.' - description: 'Merchant not found' type: object example: data: message: 'No such Merchant' properties: data: type: object properties: message: type: string example: 'No such Merchant' description: 'The message of the response. Example: Payment Method deleted successfully.' - description: 'Payment Method not found' type: object example: data: message: 'Payment Method not found' properties: data: type: object properties: message: type: string example: 'Payment Method not found' description: 'The message of the response. Example: Payment Method deleted successfully.' 409: description: 'Payment method has active recurring payments' content: application/json: schema: type: object example: data: message: 'Cannot delete payment method with active recurring payments.' properties: data: type: object properties: message: type: string example: 'Cannot delete payment method with active recurring payments.' description: 'The message of the response. Example: Payment Method deleted successfully.' tags: - 'Payment Method management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 payment_method_id: type: integer description: 'The ID of the payment method.' example: 12345 uuid: type: string description: 'UUID of the customer. Must be in uuid format.' example: 3c37db03-dc71-4e8b-90e7-6668290b7c3d required: - sid - payment_method_id /api/recurring-payment/list: get: summary: 'List Recurring Payments' operationId: listRecurringPayments description: 'Retrieves a list of recurring payments for a given Merchant, filtered by various parameters.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 1 name: 'Car Was Solutions ' amount: '4,574.99' 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: O8LeJrEIM0xBn3VDYIx0dJnhRkDsoFIytho8bwun public_url: 'http://app.dimepayments.com/subscribe/O8LeJrEIM0xBn3VDYIx0dJnhRkDsoFIytho8bwun' 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: ejcZ8ryV69qFGY4RgK5kjiEpNLC4AXjgeI2nV3RK public_url: 'http://app.dimepayments.com/subscribe/ejcZ8ryV69qFGY4RgK5kjiEpNLC4AXjgeI2nV3RK' 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: O8LeJrEIM0xBn3VDYIx0dJnhRkDsoFIytho8bwun public_url: 'http://app.dimepayments.com/subscribe/O8LeJrEIM0xBn3VDYIx0dJnhRkDsoFIytho8bwun' 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: ejcZ8ryV69qFGY4RgK5kjiEpNLC4AXjgeI2nV3RK public_url: 'http://app.dimepayments.com/subscribe/ejcZ8ryV69qFGY4RgK5kjiEpNLC4AXjgeI2nV3RK' 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: O8LeJrEIM0xBn3VDYIx0dJnhRkDsoFIytho8bwun public_url: type: string example: 'http://app.dimepayments.com/subscribe/O8LeJrEIM0xBn3VDYIx0dJnhRkDsoFIytho8bwun' 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: Kx82Ydg15pWZoPWOt0zxGZ5kk4PZyfRaZSWI9nSn public_url: 'http://app.dimepayments.com/subscribe/Kx82Ydg15pWZoPWOt0zxGZ5kk4PZyfRaZSWI9nSn' 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: Kx82Ydg15pWZoPWOt0zxGZ5kk4PZyfRaZSWI9nSn public_url: type: string example: 'http://app.dimepayments.com/subscribe/Kx82Ydg15pWZoPWOt0zxGZ5kk4PZyfRaZSWI9nSn' 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: Id5DJzq5I7mK6or3wiCBQnGmdRbEd5aYMgcA9xmx public_url: 'http://app.dimepayments.com/subscribe/Id5DJzq5I7mK6or3wiCBQnGmdRbEd5aYMgcA9xmx' 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: Id5DJzq5I7mK6or3wiCBQnGmdRbEd5aYMgcA9xmx public_url: type: string example: 'http://app.dimepayments.com/subscribe/Id5DJzq5I7mK6or3wiCBQnGmdRbEd5aYMgcA9xmx' 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: RN91hhm8lwCw2LKiARZTDHd1NAAN5uMAijl65pEG public_url: 'http://app.dimepayments.com/subscribe/RN91hhm8lwCw2LKiARZTDHd1NAAN5uMAijl65pEG' 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: RN91hhm8lwCw2LKiARZTDHd1NAAN5uMAijl65pEG public_url: type: string example: 'http://app.dimepayments.com/subscribe/RN91hhm8lwCw2LKiARZTDHd1NAAN5uMAijl65pEG' 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: EhB0828xATjAT6SMX6vgNu5HkxYwNielPbr6uVCF public_url: 'http://app.dimepayments.com/subscribe/EhB0828xATjAT6SMX6vgNu5HkxYwNielPbr6uVCF' 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: EhB0828xATjAT6SMX6vgNu5HkxYwNielPbr6uVCF public_url: type: string example: 'http://app.dimepayments.com/subscribe/EhB0828xATjAT6SMX6vgNu5HkxYwNielPbr6uVCF' 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: Pn0qE2lnEhoZ9EEodhhrQOdhJ5OHXfyQe7BKKoGM public_url: 'http://app.dimepayments.com/subscribe/Pn0qE2lnEhoZ9EEodhhrQOdhJ5OHXfyQe7BKKoGM' 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: Pn0qE2lnEhoZ9EEodhhrQOdhJ5OHXfyQe7BKKoGM public_url: type: string example: 'http://app.dimepayments.com/subscribe/Pn0qE2lnEhoZ9EEodhhrQOdhJ5OHXfyQe7BKKoGM' 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: CNwjWBtEhlPo3G9ra6ocU1zYyX3XYVuUfXk1ZZIh public_url: 'http://app.dimepayments.com/subscribe/CNwjWBtEhlPo3G9ra6ocU1zYyX3XYVuUfXk1ZZIh' 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: CNwjWBtEhlPo3G9ra6ocU1zYyX3XYVuUfXk1ZZIh public_url: type: string example: 'http://app.dimepayments.com/subscribe/CNwjWBtEhlPo3G9ra6ocU1zYyX3XYVuUfXk1ZZIh' 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: 103 plan_name: 'Premium Plan 24492' amount: '0.00' recurrence_schedule: Monthly start_date: '2026-07-24T04:00:00.000000Z' end_date: null last_run_date: null last_run_status: null last_run_failed_count: 0 next_run_date: '2026-09-24T04:00:00.000000Z' status: Active paused_until_date: null cancelled_at: null cancelled_by: null customer_uuid: d0da1345-2420-40b2-adcb-d4d0487538fb error: null payment_method: id: 6003 type: cc last_four: '3642' expiration: 08/2030 - id: null subscription_plan_id: 104 plan_name: 'Monthly Membership 88481' amount: '0.00' recurrence_schedule: Monthly start_date: '2026-07-24T04:00:00.000000Z' end_date: null last_run_date: null last_run_status: null last_run_failed_count: 0 next_run_date: '2026-09-24T04:00:00.000000Z' status: Active paused_until_date: null cancelled_at: null cancelled_by: null customer_uuid: 583b7567-ce1f-4aa2-b6f0-81a3ab6062e7 error: null payment_method: id: 6004 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: 103 plan_name: 'Premium Plan 24492' amount: '0.00' recurrence_schedule: Monthly start_date: '2026-07-24T04:00:00.000000Z' end_date: null last_run_date: null last_run_status: null last_run_failed_count: 0 next_run_date: '2026-09-24T04:00:00.000000Z' status: Active paused_until_date: null cancelled_at: null cancelled_by: null customer_uuid: d0da1345-2420-40b2-adcb-d4d0487538fb error: null payment_method: id: 6003 type: cc last_four: '3642' expiration: 08/2030 - id: null subscription_plan_id: 104 plan_name: 'Monthly Membership 88481' amount: '0.00' recurrence_schedule: Monthly start_date: '2026-07-24T04:00:00.000000Z' end_date: null last_run_date: null last_run_status: null last_run_failed_count: 0 next_run_date: '2026-09-24T04:00:00.000000Z' status: Active paused_until_date: null cancelled_at: null cancelled_by: null customer_uuid: 583b7567-ce1f-4aa2-b6f0-81a3ab6062e7 error: null payment_method: id: 6004 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: 103 plan_name: type: string example: 'Premium Plan 24492' amount: type: string example: '0.00' recurrence_schedule: type: string example: Monthly start_date: type: string example: '2026-07-24T04:00:00.000000Z' end_date: type: string example: null nullable: true last_run_date: type: string example: null nullable: true last_run_status: type: string example: null nullable: true last_run_failed_count: type: integer example: 0 next_run_date: type: string example: '2026-09-24T04: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: d0da1345-2420-40b2-adcb-d4d0487538fb error: type: string example: null nullable: true payment_method: type: object properties: id: type: integer example: 6003 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: 105 plan_name: 'Monthly Membership 30805' amount: '0.00' recurrence_schedule: Monthly start_date: '2026-07-24T04:00:00.000000Z' end_date: null last_run_date: null last_run_status: null last_run_failed_count: 0 next_run_date: '2026-09-24T04:00:00.000000Z' status: Active paused_until_date: null cancelled_at: null cancelled_by: null customer_uuid: 8b054d07-bb4f-41ae-b3c9-39313d53c9c7 error: null payment_method: id: 6005 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: 105 plan_name: type: string example: 'Monthly Membership 30805' amount: type: string example: '0.00' recurrence_schedule: type: string example: Monthly start_date: type: string example: '2026-07-24T04:00:00.000000Z' end_date: type: string example: null nullable: true last_run_date: type: string example: null nullable: true last_run_status: type: string example: null nullable: true last_run_failed_count: type: integer example: 0 next_run_date: type: string example: '2026-09-24T04: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: 8b054d07-bb4f-41ae-b3c9-39313d53c9c7 error: type: string example: null nullable: true payment_method: type: object properties: id: type: integer example: 6005 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: 106 plan_name: 'Monthly Membership 93082' amount: '0.00' recurrence_schedule: Monthly start_date: '2026-07-24T04:00:00.000000Z' end_date: null last_run_date: null last_run_status: null last_run_failed_count: 0 next_run_date: '2026-09-24T04:00:00.000000Z' status: Active paused_until_date: null cancelled_at: null cancelled_by: null customer_uuid: f0cc541a-0954-4058-9c93-2f1f71e45853 error: null payment_method: id: 6006 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: 106 plan_name: type: string example: 'Monthly Membership 93082' amount: type: string example: '0.00' recurrence_schedule: type: string example: Monthly start_date: type: string example: '2026-07-24T04:00:00.000000Z' end_date: type: string example: null nullable: true last_run_date: type: string example: null nullable: true last_run_status: type: string example: null nullable: true last_run_failed_count: type: integer example: 0 next_run_date: type: string example: '2026-09-24T04: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: f0cc541a-0954-4058-9c93-2f1f71e45853 error: type: string example: null nullable: true payment_method: type: object properties: id: type: integer example: 6006 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: 107 plan_name: 'Monthly Membership 43383' amount: '0.00' recurrence_schedule: Monthly start_date: '2026-07-24T04:00:00.000000Z' end_date: null last_run_date: null last_run_status: null last_run_failed_count: 0 next_run_date: '2026-09-24T04:00:00.000000Z' status: Active paused_until_date: null cancelled_at: null cancelled_by: null customer_uuid: fce19255-f37b-4080-8a78-e832fedc1ea3 error: null payment_method: id: 6007 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: 107 plan_name: type: string example: 'Monthly Membership 43383' amount: type: string example: '0.00' recurrence_schedule: type: string example: Monthly start_date: type: string example: '2026-07-24T04:00:00.000000Z' end_date: type: string example: null nullable: true last_run_date: type: string example: null nullable: true last_run_status: type: string example: null nullable: true last_run_failed_count: type: integer example: 0 next_run_date: type: string example: '2026-09-24T04: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: fce19255-f37b-4080-8a78-e832fedc1ea3 error: type: string example: null nullable: true payment_method: type: object properties: id: type: integer example: 6007 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: 108 plan_name: 'Monthly Membership 92439' amount: '0.00' recurrence_schedule: Monthly start_date: '2026-07-24T04:00:00.000000Z' end_date: null last_run_date: null last_run_status: null last_run_failed_count: 0 next_run_date: '2026-09-24T04:00:00.000000Z' status: Active paused_until_date: null cancelled_at: null cancelled_by: null customer_uuid: 7eb11a57-fbf8-4300-8996-6e42de36b6bb error: null payment_method: id: 6008 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: 108 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-07-24T04:00:00.000000Z' end_date: type: string example: null nullable: true last_run_date: type: string example: null nullable: true last_run_status: type: string example: null nullable: true last_run_failed_count: type: integer example: 0 next_run_date: type: string example: '2026-09-24T04: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: 7eb11a57-fbf8-4300-8996-6e42de36b6bb error: type: string example: null nullable: true payment_method: type: object properties: id: type: integer example: 6008 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