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: '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: '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: 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: 'Successful Listing' content: text/plain: schema: type: string example: "{\n\"data\": [\n {\n \"name\": \"Streich, Kub and Steuber\",\n \"sid\": \"000010\",\n \"mcc\": \"8661\",\n \"slug\": \"deleniti-sunt-at-unde\",\n \"pub_api_key\": \"pub_1zBYuKWfl4hvL71yOt40lM3QfMf\",\n \"processor_mid\": null,\n \"active\": true,\n \"active_at\": null,\n \"g_pay\": false,\n \"a_pay\": false,\n \"pci_compliance\": false,\n \"website\": null,\n \"addr1\": null,\n \"addr2\": null,\n \"addr3\": null,\n \"city\": null,\n \"state\": null,\n \"zip\": null,\n \"phone\": null,\n \"contracted_date\": null,\n \"primary_phone\": null,\n \"payment_token\": null,\n \"primary_email\": null,\n \"primary_name\": null\n},\n{\n \"name\": \"Kling, McGlynn and McKenzie\",\n \"sid\": \"000002\",\n \"mcc\": \"8661\",\n \"slug\": \"sint-inventore-cum-tempore\",\n \"pub_api_key\": \"pkapi_cert_CjsyGGXamvz9xxcrri\",\n \"processor_mid\": \"\",\n \"active\": true,\n \"active_at\": null,\n \"g_pay\": true,\n \"a_pay\": true,\n \"pci_compliance\": true,\n \"website\": \"https:\\/\\/www.google.com\",\n \"addr1\": \"78686 hjgjgj gjh\",\n \"addr2\": \"hkjhk 7777\",\n \"addr3\": \"\",\n \"city\": \"city\",\n \"state\": \"GA\",\n \"zip\": \"30303\",\n \"phone\": \"7707892072\",\n \"contracted_date\": null,\n \"primary_phone\": \"7707892072\",\n \"payment_token\": null,\n \"primary_email\": \"rtaylor82@gmail.com\",\n \"primary_name\": \"Ryan Taylor\"\n }," 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: [] nullable: false properties: start_date: type: date 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' nullable: false end_date: type: date 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' nullable: false /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.' enum: [] sid: type: string example: '00001' description: 'The unique Dime Payments ID for the merchant.' enum: [] mcc: type: string example: '8999' description: 'The MCC Code assigned to the merchant.' enum: [] slug: type: string example: pay description: "The unique address for the merchant's pay page. i.e. https://dimepayments.com/{slug}." enum: [] pub_api_key: type: string example: pkapi_prod_B5n2hQhy6uAp1rLjqs description: "The public API key for the gateway's tokenizer." enum: [] processor_mid: type: string example: '650000012366624' description: "The unique ID for the processor's merchant account.'" enum: [] active: type: boolean example: true description: 'If this merchant is active on Dime Payments.' enum: [] active_at: type: string example: null description: 'date The date the merchant was made active.' enum: [] g_pay: type: boolean example: false description: 'If this merchant is active on Google Pay.' enum: [] a_pay: type: boolean example: false description: 'If this merchant is active on Apple Pay.' enum: [] pci_compliance: type: boolean example: true description: 'If this merchant has an active AoC on file with Dime Payments.' enum: [] website: type: string example: 'https://dimepayments.com' description: "The merchant's website." enum: [] addr1: type: string example: '53 S. Main St' description: "The merchant's first address line." enum: [] addr2: type: string example: '' description: "The merchant's second address line (optional)." enum: [] city: type: string example: Alpharetta description: "The merchant's city." enum: [] state: type: string example: GA description: "The merchant's state." enum: [] zip: type: string example: '30009' description: "The merchant's zip code." enum: [] phone: type: string example: '4049064975' description: "The merchant's phone number." enum: [] primary_phone: type: string example: '4049064975' description: "The merchant's primary contact phone number." enum: [] primary_email: type: string example: ben@dimepayments.com description: "The merchant's primary email address." enum: [] primary_name: type: string example: 'Ben Habeck' description: "The merchant's primary full name." enum: [] 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: [] nullable: false properties: sid: type: numeric description: 'ID of a merchant account.' example: '1234567' nullable: false 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.' enum: [] sid: type: string example: '00001' description: 'The unique Dime Payments ID for the merchant.' enum: [] mcc: type: string example: '8999' description: 'The MCC Code assigned to the merchant.' enum: [] slug: type: string example: pay description: "The unique address for the merchant's pay page. i.e. https://dimepayments.com/{slug}." enum: [] pub_api_key: type: string example: pkapi_prod_B5n2hQhy6uAp1rLjqs description: "The public API key for the gateway's tokenizer." enum: [] processor_mid: type: string example: '650000012366624' active: type: boolean example: true description: 'If this merchant is active on Dime Payments.' enum: [] active_at: type: string example: null description: 'date The date the merchant was made active.' enum: [] g_pay: type: boolean example: false description: 'If this merchant is active on Google Pay.' enum: [] a_pay: type: boolean example: false description: 'If this merchant is active on Apple Pay.' enum: [] pci_compliance: type: boolean example: true description: 'If this merchant has an active AoC on file with Dime Payments.' enum: [] website: type: string example: 'https://dimepayments.com' description: "The merchant's website." enum: [] addr1: type: string example: '53 S. Main St' description: "The merchant's first address line." enum: [] addr2: type: string example: '' description: "The merchant's second address line (optional)." enum: [] city: type: string example: Alpharetta description: "The merchant's city." enum: [] state: type: string example: GA description: "The merchant's state." enum: [] zip: type: string example: '30009' description: "The merchant's zip code." enum: [] phone: type: string example: '4049064975' description: "The merchant's phone number." enum: [] primary_phone: type: string example: '4049064975' description: "The merchant's primary contact phone number." enum: [] primary_email: type: string example: ben@dimepayments.com description: "The merchant's primary email address." enum: [] primary_name: type: string example: 'Ben Habeck' description: "The merchant's primary full name." enum: [] 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: [] nullable: false properties: name: type: string description: 'The name of the Merchant. Avoid special characters like \ or ''.' example: 'Acme Inc' nullable: false slug: type: string description: 'Must be unique and HTML URL Compliant.' example: acme-inc nullable: false mcc: type: integer description: 'Must be 4 digits and pre-approved by Dime Payments.' example: 8661 nullable: false processor_config_one: type: string description: 'Must be on approved list, this is provided by your Dime Payments Rep.' example: Tier1 nullable: false website: type: string description: 'Must be a valid full URL.' example: 'https://acme-inc.com' nullable: false addr1: type: string description: 'Address line 1 of the Merchant.' example: '123 4th Street' nullable: false 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 nullable: false state: type: string description: 'The state abbreviation of teh Merchant.' example: GA nullable: false zip: type: integer description: 'The 5-digit zip of the Merchant.' example: 30009 nullable: false phone: type: string description: 'The main phone number for the Merchant in e164 format.' example: '+177012345678' nullable: false primary_phone: type: string description: 'The phone of the main contact for the Merchant in e164 format.' example: '+140412345678' nullable: false primary_name: type: string description: 'The full name of the main contact for the Merchant.' example: 'John Doe' nullable: false primary_email: type: string description: 'The email of the main contact for the Merchant.' example: john@acme.com nullable: false industry: type: string description: 'Must be a supported Industry name, contact Dime Payments Rep for values.' example: Church nullable: false required: - name - slug - mcc - processor_config_one - 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.' enum: [] sid: type: string example: '00001' description: 'The unique Dime Payments ID for the merchant.' enum: [] mcc: type: string example: '8999' description: 'The MCC Code assigned to the merchant.' enum: [] slug: type: string example: pay description: "The unique address for the merchant's pay page. i.e. https://dimepayments.com/{slug}." enum: [] pub_api_key: type: string example: pkapi_prod_B5n2hQhy6uAp1rLjqs description: "The public API key for the gateway's tokenizer." enum: [] processor_mid: type: string example: '650000012366624' active: type: boolean example: true description: 'If this merchant is active on Dime Payments.' enum: [] active_at: type: string example: null description: 'date The date the merchant was made active.' enum: [] g_pay: type: boolean example: false description: 'If this merchant is active on Google Pay.' enum: [] a_pay: type: boolean example: false description: 'If this merchant is active on Apple Pay.' enum: [] pci_compliance: type: boolean example: true description: 'If this merchant has an active AoC on file with Dime Payments.' enum: [] website: type: string example: 'https://dimepayments.com' description: "The merchant's website." enum: [] addr1: type: string example: '53 S. Main St' description: "The merchant's first address line." enum: [] addr2: type: string example: '' description: "The merchant's second address line (optional)." enum: [] city: type: string example: Alpharetta description: "The merchant's city." enum: [] state: type: string example: GA description: "The merchant's state." enum: [] zip: type: string example: '30009' description: "The merchant's zip code." enum: [] phone: type: string example: '4049064975' description: "The merchant's phone number." enum: [] primary_phone: type: string example: '4049064975' description: "The merchant's primary contact phone number." enum: [] primary_email: type: string example: ben@dimepayments.com description: "The merchant's primary email address." enum: [] primary_name: type: string example: 'Ben Habeck' description: "The merchant's primary full name." enum: [] 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: [] nullable: false properties: sid: type: integer description: 'The SID of the Merchant to update.' example: 99 nullable: false slug: type: string description: 'Must be unique and HTML URL Compliant.' example: acme-inc nullable: false name: type: string description: 'The name of the Merchant. Avoid special characters like \ or ''.' example: 'Acme Inc' nullable: false mcc: type: integer description: 'Must be 4 digits and pre-approved by Dime Payments.' example: 8661 nullable: false processor_config_one: type: string description: 'Must be on approved list, this is provided by your Dime Payments Rep.' example: Tier1 nullable: false website: type: string description: 'Must be a valid full URL.' example: 'https://acme-inc.com' nullable: false addr1: type: string description: 'Address line 1 of the Merchant.' example: '123 4th Street' nullable: false 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 nullable: false state: type: string description: 'The state abbreviation of teh Merchant.' example: GA nullable: false zip: type: integer description: 'The 5-digit zip of the Merchant.' example: 30009 nullable: false phone: type: string description: 'The main phone number for the Merchant in e164 format.' example: '+177012345678' nullable: false primary_phone: type: string description: 'The phone of the main contact for the Merchant in e164 format.' example: '+140412345678' nullable: false primary_name: type: string description: 'The full name of the main contact for the Merchant.' example: 'John Doe' nullable: false primary_email: type: string description: 'The email of the main contact for the Merchant.' example: john@acme.com nullable: false industry: type: string description: 'Must be a supported Industry name, contact Dime Payments Rep for values.' example: Church nullable: false required: - sid - slug - name - mcc - processor_config_one - 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: text/plain: schema: type: string example: "{\n \"data\": [\n {\n \"link\": \"https://app.dimepayments.com/some/link\",\n }" 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: [] nullable: false properties: sid: type: integer description: 'The unique SID of the Merchant.' example: 69 nullable: false 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: 'Successful Listing' content: text/plain: schema: type: string example: "{\n \"data\": [\n {\n \"transaction_type\": \"CC\",\n \"transaction_status\": \"CC Pending\",\n \"transaction_status_description\": \"A transaction that has not cleared yet\",\n \"transaction_number\": \"1234567890\",\n \"transaction_date\": \"2025-10-28T22:04:22.000000Z\",\n \"fund_date\": \"2025-10-28T22:04:22.000000Z\",\n \"settle_date\": \"2025-10-28T22:04:22.000000Z\",\n \"amount\": \"25.0000\",\n \"description\": \"\",\n \"status_code\": \"\",\n \"status_text\": \"\",\n \"email\": \"\",\n \"phone\": \"\",\n \"customer_uuid\": \"68d9feaa-04a9-4c48-8c00-a0b79c8b2f70\",\n \"multi_use_token\": \"\",\n \"pending\": true,\n \"transaction_info_id\": \"1231321321231\"\n \"parent_transaction_info_id\": \"1231321321231\"\n \"billing_address\": {\n \"first_name\": \"\",\n \"last_name\": \"\",\n \"addr1\": \"\",\n \"addr2\": \"\",\n \"city\": \"\",\n \"state\": \"\",\n \"zip\": \"\"\n },\n \"shipping_address\": {\n \"addr1\": \"123 Main St\",\n \"addr2\": \"apt 1\",\n \"city\": \"Alpharetta\",\n \"state\": \"GA\",\n \"zip\": \"12345\"\n }\n },\n {\n \"transaction_type\": \"CC\",\n \"transaction_status\": \"CC Pending\",\n \"transaction_status_description\": \"A transaction that has not cleared yet\",\n \"transaction_number\": \"\",\n \"transaction_date\": \"2025-10-28T22:04:22.000000Z\",\n \"fund_date\": \"2025-10-28T22:04:22.000000Z\",\n \"settle_date\": \"2025-10-28T22:04:22.000000Z\",\n \"amount\": \"25.0000\",\n \"description\": \"\",\n \"status_code\": \"\",\n \"status_text\": \"\",\n \"email\": \"\",\n \"phone\": \"\",\n \"customer_uuid\": \"68d9feaa-04a9-4c48-8c00-a0b79c8b2f70\",\n \"multi_use_token\": \"\",\n \"pending\": true,\n \"transaction_info_id\": \"1231321321231\"\n \"parent_transaction_info_id\": \"1231321321231\"\n \"billing_address\": {\n \"first_name\": \"\",\n \"last_name\": \"\",\n \"addr1\": \"\",\n \"addr2\": \"\",\n \"city\": \"\",\n \"state\": \"\",\n \"zip\": \"\"\n },\n \"shipping_address\": {\n \"addr1\": \"123 Main St\",\n \"addr2\": \"apt 1\",\n \"city\": \"Alpharetta\",\n \"state\": \"GA\",\n \"zip\": \"12345\"\n }\n }\n ]\n}" 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: text/plain: schema: oneOf: - description: 'Token unauthorized' type: string example: '{"data": { "message": "Permission Denied."}' - description: 'Invalid merchant or affiliate authorization' type: string example: '{"data": { "message": "Unauthorized"}' - description: 'Invalid merchant or affiliate associations' type: string example: '{"data": { "message": "Not associated with affiliate"}' 404: description: 'Invalid sid' content: text/plain: schema: type: string example: '{"data": { "message": "No such Merchant"}' tags: - 'Transaction management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] nullable: false properties: sid: type: string description: 'The ID of the merchant that processed the transactions.' example: '12345' nullable: false required: - sid filters: type: object description: '' example: [] nullable: false properties: start_date: type: date description: 'The start date for filtering transactions in `Y-m-d H:i:s` format.' example: '2021-01-01 00:00:00' nullable: false end_date: type: date description: 'The end date for filtering transactions in `Y-m-d H:i:s` format.' example: '2021-12-31 23:59:59' nullable: false sweep_id: type: string description: 'The sweep ID of the transaction.' example: 'sweep_123*' nullable: false customer_uuid: type: string description: 'The customer UUID associated with the transaction.' example: cust_456 nullable: false /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: text/plain: schema: type: string example: "{\n \"data\": {\n \"transaction_type\": \"Credit Card\",\n \"transaction_status\": \"Success\",\n \"transaction_status_description\": \"Transaction Successful\",\n \"transaction_number\": \"1234567890\",\n \"transaction_date\": \"2020-01-01\",\n \"fund_date\": \"2020-01-01\",\n \"settle_date\": \"2020-01-01\",\n \"amount\": \"100.00\",\n \"description\": \"a memo concerning this transaction\",\n \"status_code\": \"00\",\n \"status_text\": \"APPROVAL\",\n \"email\": \"email@email.com\",\n \"phone\": \"+17701234567\",\n \"customer_uuid\": \"66f1c230-1337-5g59-b43c-1bcb83adfaaa\"\n \"multi_use_token\": \"abcdefg123456790\",\n \"pending\": true,\n \"transaction_info_id\": \"1234567890\",\n \"parent_transaction_info_id\": \"1234567890\",\n \"billing_address\": {\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"addr1\": \"123 Main St\",\n \"addr2\": \"Suite 100\",\n \"city\": \"New York\",\n \"state\": \"NY\",\n}\n \"shipping_address\": {\n \"addr1\": \"12 Street Ave\",\n \"addr2\": \"Suite 123\",\n \"city\": \"Boulder\",\n \"state\": \"CO\",\n \"zip\": \"80302\"\n },\n }\n}" 400: description: '' content: application/json: schema: 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 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: [] nullable: false properties: amount: type: number description: '' example: 4326.41688 nullable: false sid: type: numeric description: 'ID of merchant account processing the charge.' example: '1234567' nullable: false phone: type: phone description: 'Must be the phone number in e164 format.' example: '+177012345678' nullable: false customer_uuid: type: string description: 'Must be a valid UUID.' example: a4855dc5-0acb-33c3-b921-f4291f719ca0 nullable: false email: type: 'email:rfc' 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 nullable: false cardholder_name: type: string description: 'The name of the cardholder. Max: 50.' example: 'John Doe' nullable: false card_number: type: numeric description: 'The credit card number. Min: 15. Max: 16.' example: '1231231231231231' nullable: false expiration_date: type: string description: 'Expiration date of the card, in the form mm/YYYY.' example: 01/2025 nullable: false cvv: type: numeric description: "optional The card's CVV. Min: 3, Max: 4." example: '123' nullable: true billing_address: type: object description: '' example: [] nullable: false 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: numeric description: "The cardholder's ZIP code. Digits: 5." example: '10001' nullable: false required: - zip shipping_address: type: object description: '' example: [] nullable: false 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: false state: type: string description: 'optional The state. Max: 2.' example: GA nullable: false zip: type: integer description: 'optional The state. Max: 5.' example: 0 nullable: false uuid: type: string description: 'The UUID of the customer record.' example: 60dac128-28da-41ae-8632-aee299de13fd nullable: false required: - amount - sid - customer_uuid - cardholder_name /api/transaction/charge-ach: post: summary: 'Charge a Bank Account' operationId: chargeABankAccount description: '' parameters: [] responses: 200: description: 'Successful Transaction' content: text/plain: schema: type: string example: "{\n \"data\": {\n \"transaction_type\": \"ACH\",\n \"transaction_status\": \"Success\",\n \"transaction_status_description\": \"Success\",\n \"transaction_number\": \"130\",\n \"transaction_date\": \"2021-01-01\",\n \"fund_date\": \"2021-01-01\",\n \"settle_date\": \"2021-01-01\",\n \"amount\": \"25\",\n \"description\": \"\",\n \"status_code\": \"00\",\n \"status_text\": \"Success\",\n \"email\": \"test@test.com\",\n \"phone\": \"\",\n \"customer_uuid\": \"\",\n \"multi_use_token\": \"\",\n \"pending\": false,\n \"transaction_info_id\": \"1234567890\",\n \"parent_transaction_info_id\": \"1234567890\",\n \"billing_address\": {\n \"first_name\": \"First\",\n \"last_name\": \"Last\",\n \"addr1\": \"12 Street Ave\",\n \"addr2\": \"Suite 123\",\n \"city\": \"Boulder\",\n \"state\": \"CO\",\n \"zip\": \"80302\"\n },\n \"shipping_address\": {\n \"addr1\": \"12 Street Ave\",\n \"addr2\": \"Suite 123\",\n \"city\": \"Boulder\",\n \"state\": \"CO\",\n \"zip\": \"80302\"\n },\n }\n}" 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: text/plain: schema: oneOf: - description: 'Token unauthorized' type: string example: '{"data": { "message": "Permission Denied."}' - description: 'Invalid merchant or affiliate authorization' type: string example: '{"data": { "message": "Unauthorized"}' - description: 'Invalid merchant or affiliate association' type: string example: '{"data": { "message": "Not associated with affiliate"}' 404: description: 'Invalid sid' content: text/plain: schema: type: string example: '{"data": { "message": "No such Merchant"}' tags: - 'Transaction management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] nullable: false properties: sid: type: numeric description: 'The ID of merchant account processing the charge.' example: '1234567' nullable: false routing_number: type: string description: 'The bank account routing number. Max: 9.' example: '123456789' nullable: false account_number: type: string description: 'The bank account number. Max: 50.' example: '91828382' nullable: false account_type: type: string description: 'Must be Checking or Savings.' example: Checking nullable: false account_name: type: string description: 'The name on the bank account. Max: 50.' example: 'Acme Inc.' nullable: false amount: type: number description: 'The transaction amount.' example: 99.19 nullable: false phone: type: string description: 'The phone number.' example: '7701234567' nullable: false customer_uuid: type: string description: "optional The unique UUID of the merchant's customer." example: 12312312-123123123-1231231231 nullable: false email: type: string description: 'Must be a valid email address. Must not be greater than 50 characters.' example: rowan.gulgowski@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: [] nullable: false 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: [] nullable: false 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' enum: [] 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: [] nullable: false properties: sid: type: numeric description: 'The ID of the merchant account processing the charge.' example: '1234567' nullable: false cardholder_name: type: string description: 'The name of the cardholder. Max: 50.' example: 'John Doe' nullable: false card_number: type: numeric description: 'The 15/16-digit credit card number.' example: '1234567812345678' nullable: false expiration_date: type: string description: 'Expiry date of the card, in the form mm/YYYY.' example: 01/2025 nullable: false cvv: type: numeric description: "optional The card's CVV. Min: 3, Max: 4." example: '123' nullable: true billing_address: type: object description: '' example: [] nullable: false 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: numeric description: "The cardholder's ZIP code. Digits: 5." example: '10001' nullable: false 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' enum: [] transaction_status: type: string example: 'CC Pending' description: 'Transaction Status. Example: CC Pending' enum: [] 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.' enum: [] transaction_number: type: string example: '1231' transaction_date: type: string example: '2021-01-01' description: 'Transaction Date. Example: 2024-01-17T12:44:28.000000Z' enum: [] fund_date: type: string example: '2021-01-01' description: 'Fund Date. Example: 2024-01-18T21:05:21.000000Z' enum: [] settle_date: type: string example: '2021-01-01' description: 'Settle Date. Example: 2024-01-17T18:35:00.000000Z' enum: [] amount: type: string example: '25.0000' description: 'Transaction amount. Example: $120.00' enum: [] description: type: string example: '' description: 'Transaction type. Example: Checking' enum: [] status_code: type: string example: '' description: 'The status code of the transaction.' enum: [] status_text: type: string example: '' description: 'The status text of the transaction.' enum: [] email: type: string example: '' description: 'The email of the transaction.' enum: [] phone: type: string example: '' description: 'The phone of the transaction.' enum: [] customer_uuid: type: string example: 68d9feaa-04a9-4c48-8c00-a0b79c8b2f70 description: 'The customer uuid of the transaction.' enum: [] multi_use_token: type: string example: '' description: 'The multi use token of the transaction.' enum: [] pending: type: boolean example: true description: 'The pending status of the transaction.' enum: [] 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." enum: [] 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." enum: [] billing_address: type: object properties: first_name: type: string example: '' description: 'The first name field.' enum: [] last_name: type: string example: '' description: 'The last name field.' enum: [] addr1: type: string example: '' description: 'The first address line.' enum: [] addr2: type: string example: '' description: 'The second address line.' enum: [] city: type: string example: '' description: 'The city field.' enum: [] state: type: string example: '' description: 'The state field.' enum: [] zip: type: string example: '' description: 'The zip field.' enum: [] shipping_address: type: object properties: addr1: type: string example: '123 Main St' description: 'The first address line.' enum: [] addr2: type: string example: 'apt 1' description: 'The second address line.' enum: [] city: type: string example: Alpharetta description: 'The city field.' enum: [] state: type: string example: GA description: 'The state field.' enum: [] zip: type: string example: '12345' description: 'The zip field.' enum: [] 400: description: 'Field Validation Failed' content: text/plain: schema: type: string example: '{"errors": {"data.sid": ["The data.sid is not the correct format."]}' 401: description: '' content: text/plain: schema: oneOf: - description: 'Invalid API Key Permission' type: string example: '{"data": "message": "Permission Denied."}}' - description: 'User perm issue' type: string example: '{"data": "message": "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: [] nullable: false properties: sid: type: numeric description: 'The ID of the merchant that processed the transaction.' example: '1234567' nullable: false transaction_info_id: type: numeric 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' nullable: false 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 nullable: false transaction_id: type: numeric description: 'The ID of a transaction. This field is required with data.transaction_type when transaction info_id is not provided.' example: '123' nullable: false required: - sid - transaction_type /api/transaction/refund: post: summary: 'Refund Transaction' operationId: refundTransaction description: 'Processes a refund for a transaction based on the provided data.' parameters: [] responses: 200: description: 'Successful Refund' content: text/plain: schema: type: string example: '{"data": { "message" : "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' enum: [] - 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' enum: [] - 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' enum: [] 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' enum: [] tags: - 'Transaction management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] nullable: false properties: sid: type: numeric description: 'The ID of merchant that processed the transaction.' example: '1234567' nullable: false amount: type: numeric description: 'The amount to be refunded. Must be greater than 0 and less than the total amount of transaction.' example: '100.50' nullable: false transaction_info_id: type: numeric 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' nullable: false 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 nullable: false transaction_id: type: numeric 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' nullable: false 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: text/plain: schema: type: string example: '{"data": "message" : "Transaction voided successfully"}}' 400: description: 'Field Validation Failed' content: text/plain: schema: type: string example: '{"errors": {"data.sid": ["The data.sid is not the correct format."]}' 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' enum: [] - 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' enum: [] tags: - 'Transaction management' requestBody: required: true content: application/json: schema: type: object properties: data: type: object description: '' example: [] nullable: false properties: sid: type: string description: 'Must be unique to the Merchant and less than 150 digits.' example: '91828382' nullable: false transaction_type: type: string description: 'Must be either "CC" or "ACH".' example: ACH nullable: false transaction_id: type: numeric 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' nullable: false required: - sid - transaction_type - transaction_id required: - data /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: 'Successful Listing' content: application/json: schema: type: object example: data: - id: 1 uuid: 60dac128-28da-41ae-8632-aee299de13fd first_name: John last_name: Doe company_name: 'Acme Inc.' phone: '+17707892222' email: an-email@gmail.com addr1: '' addr2: '' addr3: '' city: '' state: '' zip: '' country: USA last_login_at: '2024-08-30T13:08:19.000000Z' last_login_ip: 127.0.0.1 - id: 2 uuid: 60dac128-28da-41ae-8632-aee299de13fd first_name: Jane last_name: Doe company_name: '' phone: '+17707893333' email: another@gmail.com addr1: '' addr2: '' addr3: '' city: '' state: '' zip: '' country: USA last_login_at: '2024-08-30T13:08:19.000000Z' last_login_ip: 127.0.0.1 links: prev: null next: null meta: path: 'http://relictum.test/api/customers' per_page: 500 next_cursor: null prev_cursor: null properties: data: type: array example: - id: 1 uuid: 60dac128-28da-41ae-8632-aee299de13fd first_name: John last_name: Doe company_name: 'Acme Inc.' phone: '+17707892222' email: an-email@gmail.com addr1: '' addr2: '' addr3: '' city: '' state: '' zip: '' country: USA last_login_at: '2024-08-30T13:08:19.000000Z' last_login_ip: 127.0.0.1 - id: 2 uuid: 60dac128-28da-41ae-8632-aee299de13fd first_name: Jane last_name: Doe company_name: '' phone: '+17707893333' email: another@gmail.com addr1: '' addr2: '' addr3: '' city: '' state: '' zip: '' country: USA last_login_at: '2024-08-30T13:08:19.000000Z' last_login_ip: 127.0.0.1 items: type: object properties: id: type: integer example: 1 description: 'Unique field that is not used anywhere else. Can be ignored.' enum: [] uuid: type: string example: 60dac128-28da-41ae-8632-aee299de13fd description: 'The UUID of the customer.' enum: [] first_name: type: string example: John description: 'The first name of the customer.' enum: [] last_name: type: string example: Doe description: 'The last name of the customer.' enum: [] company_name: type: string example: 'Acme Inc.' description: 'Merchant name of customer' enum: [] phone: type: string example: '+17707892222' description: 'Unique phone number of customer' enum: [] email: type: string example: an-email@gmail.com description: 'Email address of customer' enum: [] addr1: type: string example: '' description: 'Address line 1 of customer' enum: [] addr2: type: string example: '' description: 'Address line 2 of customer' enum: [] addr3: type: string example: '' description: 'Address line 3 of customer' enum: [] city: type: string example: '' description: "Customer's" enum: [] state: type: string example: '' description: "Customer's" enum: [] zip: type: string example: '' description: "Customer's" enum: [] country: type: string example: USA description: "Customer's" enum: [] last_login_at: type: string example: '2024-08-30T13:08:19.000000Z' description: 'Date string showing when this customer logged into Dime Payments last' enum: [] last_login_ip: type: string example: 127.0.0.1 description: 'The IP address the customer last logged into Dime Payments from' enum: [] links: type: object properties: prev: type: string example: null next: type: string example: null meta: type: object properties: path: type: string example: 'http://relictum.test/api/customers' per_page: type: integer example: 500 next_cursor: type: string example: null prev_cursor: type: string example: null 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: [] nullable: false properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 nullable: false required: - sid filters: type: object description: '' example: [] nullable: false properties: start_date: type: date 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' nullable: false end_date: type: date 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' nullable: false phone: type: string description: 'A phone number to filter customers by. Must be in the US format e164.' example: '+15555555555' nullable: false email: type: string description: 'An email address to filter customers by. Must comply with RFC email format.' example: example@example.com nullable: false /api/customer/show: get: summary: 'Show Customer' operationId: showCustomer description: "Show a specific customer's details" 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: '' addr2: '' addr3: null city: '' state: '' zip: '' country: USA properties: data: type: object properties: uuid: type: string example: 66f1c230-68cf-4d58-b47c-1bcb83adfddd description: 'Unique User ID of customer' enum: [] first_name: type: string example: Ryan description: 'First name of customer' enum: [] last_name: type: string example: Taylor description: 'Last name of customer' enum: [] phone: type: string example: '+17707892072' description: 'Unique phone number of customer' enum: [] email: type: string example: rtaylor82@gmail.com description: 'Email address of customer' enum: [] addr1: type: string example: '' description: 'Address line 1 of customer' enum: [] addr2: type: string example: '' description: 'Address line 2 of customer' enum: [] addr3: type: string example: null description: 'Address line 3 of customer' enum: [] city: type: string example: '' description: "Customer's" enum: [] state: type: string example: '' description: "Customer's" enum: [] zip: type: string example: '' description: "Customer's" enum: [] country: type: string example: USA description: "Customer's" enum: [] - description: 'Successful Show' type: object example: data: uuid: 60dac128-28da-41ae-8632-aee299de13fd first_name: '' last_name: '' phone: '+17707892222' email: an-email@gmail.com addr1: '' addr2: '' addr3: '' city: '' state: '' zip: '' country: USA properties: data: type: object properties: uuid: type: string example: 60dac128-28da-41ae-8632-aee299de13fd description: 'Unique User ID of customer' enum: [] first_name: type: string example: '' description: 'First name of customer' enum: [] last_name: type: string example: '' description: 'Last name of customer' enum: [] phone: type: string example: '+17707892222' description: 'Unique phone number of customer' enum: [] email: type: string example: an-email@gmail.com description: 'Email address of customer' enum: [] addr1: type: string example: '' description: 'Address line 1 of customer' enum: [] addr2: type: string example: '' description: 'Address line 2 of customer' enum: [] addr3: type: string example: '' description: 'Address line 3 of customer' enum: [] city: type: string example: '' description: "Customer's" enum: [] state: type: string example: '' description: "Customer's" enum: [] zip: type: string example: '' description: "Customer's" enum: [] country: type: string example: USA description: "Customer's" enum: [] 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: [] nullable: false properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 nullable: false required: - sid filters: type: object description: '' example: [] nullable: false properties: phone: type: string description: 'A phone number to filter customers by. Must be in the US format e164.' example: '+15555555555' nullable: false email: type: string description: 'An email address to filter customers by. Must comply with RFC email format.' example: example@example.com nullable: false uuid: type: string description: 'A UUID to filter customers by. Must comply with UUID format.' example: 60dac128-28da-41ae-8632-aee299de13fd nullable: false /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: 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: '' addr2: '' addr3: null city: '' state: '' zip: '' country: USA properties: data: type: object properties: uuid: type: string example: 66f1c230-68cf-4d58-b47c-1bcb83adfddd description: 'The uuid of the customer.' enum: [] first_name: type: string example: Ryan description: 'required The first name of the customer.' enum: [] last_name: type: string example: Taylor description: 'required The last name of the customer.' enum: [] phone: type: string example: '+17707892072' description: 'required The phone number of the customer.' enum: [] email: type: string example: rtaylor82@gmail.com description: "required Customer's email." enum: [] addr1: type: string example: '' description: "Customer's address line 1" enum: [] addr2: type: string example: '' description: "Customer's address line 2" enum: [] addr3: type: string example: null description: "Customer's address line 3" enum: [] city: type: string example: '' description: "Customer's" enum: [] state: type: string example: '' description: "Customer's" enum: [] zip: type: string example: '' description: "Customer's" enum: [] country: type: string example: USA description: "Customer's" enum: [] - description: 'Successful Creation' type: object example: data: uuid: 60dac128-28da-41ae-8632-aee299de13fd first_name: John last_name: Doe phone: '+17707892222' email: an-email@gmail.com addr1: '' addr2: '' addr3: '' city: '' state: '' zip: '' country: USA properties: data: type: object properties: uuid: type: string example: 60dac128-28da-41ae-8632-aee299de13fd description: 'The uuid of the customer.' enum: [] first_name: type: string example: John description: 'required The first name of the customer.' enum: [] last_name: type: string example: Doe description: 'required The last name of the customer.' enum: [] phone: type: string example: '+17707892222' description: 'required The phone number of the customer.' enum: [] email: type: string example: an-email@gmail.com description: "required Customer's email." enum: [] addr1: type: string example: '' description: "Customer's address line 1" enum: [] addr2: type: string example: '' description: "Customer's address line 2" enum: [] addr3: type: string example: '' description: "Customer's address line 3" enum: [] city: type: string example: '' description: "Customer's" enum: [] state: type: string example: '' description: "Customer's" enum: [] zip: type: string example: '' description: "Customer's" enum: [] country: type: string example: USA description: "Customer's" enum: [] 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: [] nullable: false properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 nullable: false first_name: type: string description: "Customer's first name" example: architecto nullable: false last_name: type: string description: "Customer's last name" example: architecto nullable: false company_name: type: string description: 'optional Name of Merchant that customer interacts with' example: architecto nullable: true phone: type: required description: "Customer's unique phone number" example: architecto nullable: false email: type: required description: "Customer's unique email" example: gbailey@example.net nullable: false addr1: type: optional description: "Customer's address line 1" example: architecto nullable: true addr2: type: optional description: "Customer's address line 2" example: architecto nullable: true addr3: type: optional description: "Customer's address line 3" example: architecto nullable: true city: type: optional description: "Customer's city" example: architecto nullable: true state: type: optional description: "Customer's state" example: architecto nullable: true zip: type: optional description: "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 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: 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: '' addr2: '' addr3: null city: '' state: '' zip: '' country: USA properties: data: type: object properties: uuid: type: string example: 66f1c230-68cf-4d58-b47c-1bcb83adfddd description: 'The UUID of the customer.' enum: [] first_name: type: string example: Ryan description: 'The first name of the customer.' enum: [] last_name: type: string example: Taylor description: 'The last name of the customer.' enum: [] phone: type: string example: '+17707892072' description: 'Unique phone number of customer' enum: [] email: type: string example: rtaylor82@gmail.com description: 'Email address of customer' enum: [] addr1: type: string example: '' description: 'Address line 1 of customer' enum: [] addr2: type: string example: '' description: 'Address line 2 of customer' enum: [] addr3: type: string example: null description: 'Address line 3 of customer' enum: [] city: type: string example: '' description: "Customer's" enum: [] state: type: string example: '' description: "Customer's" enum: [] zip: type: string example: '' description: "Customer's" enum: [] country: type: string example: USA description: "Customer's" enum: [] - description: 'Successful Update' type: object example: data: uuid: 60dac128-28da-41ae-8632-aee299de13fd first_name: '' last_name: '' phone: '+17707892222' email: an-email@gmail.com addr1: '' addr2: '' addr3: '' city: '' state: '' zip: '' country: USA properties: data: type: object properties: uuid: type: string example: 60dac128-28da-41ae-8632-aee299de13fd description: 'The UUID of the customer.' enum: [] first_name: type: string example: '' description: 'The first name of the customer.' enum: [] last_name: type: string example: '' description: 'The last name of the customer.' enum: [] phone: type: string example: '+17707892222' description: 'Unique phone number of customer' enum: [] email: type: string example: an-email@gmail.com description: 'Email address of customer' enum: [] addr1: type: string example: '' description: 'Address line 1 of customer' enum: [] addr2: type: string example: '' description: 'Address line 2 of customer' enum: [] addr3: type: string example: '' description: 'Address line 3 of customer' enum: [] city: type: string example: '' description: "Customer's" enum: [] state: type: string example: '' description: "Customer's" enum: [] zip: type: string example: '' description: "Customer's" enum: [] country: type: string example: USA description: "Customer's" enum: [] 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: [] nullable: false properties: phone: type: string description: 'A phone number to filter customers by. Must be in the US format e164.' example: '+15555555555' nullable: false uuid: type: string description: 'A UUID to filter customers by. Must comply with UUID format.' example: 60dac128-28da-41ae-8632-aee299de13fd nullable: false email: type: string description: 'An email address to filter customers by. Must comply with RFC email format.' example: example@example.com nullable: false data: type: object description: '' example: [] nullable: false properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 nullable: false first_name: type: optional description: "Customer's first name" example: architecto nullable: true last_name: type: optional description: "Customer's last name" example: architecto nullable: true company_name: type: optional description: 'Name of Merchant that customer interacts with' example: architecto nullable: true phone: type: optional description: "Customer's unique phone number" example: architecto nullable: true email: type: optional description: "Customer's unique email" example: gbailey@example.net nullable: true addr1: type: optional description: "Customer's address line 1" example: architecto nullable: true addr2: type: optional description: "Customer's address line 2" example: architecto nullable: true addr3: type: optional description: "Customer's address line 3" example: architecto nullable: true city: type: optional description: "Customer's city" example: architecto nullable: true state: type: optional description: "Customer's state" example: architecto nullable: true zip: type: optional description: "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' 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: '' addr2: '' addr3: null city: '' state: '' zip: '' 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: '' addr2: type: string example: '' addr3: type: string example: null city: type: string example: '' state: type: string example: '' zip: type: string example: '' 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.' enum: [] 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.' enum: [] 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.' enum: [] - 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.' enum: [] tags: - 'Customer management' requestBody: required: true content: application/json: schema: type: object properties: filters: type: object description: '' example: [] nullable: false properties: phone: type: string description: 'A phone number to filter customers by. Must be in the US format e164.' example: '+15555555555' nullable: false uuid: type: string description: 'A UUID to filter customers by. Must comply with UUID format.' example: 60dac128-28da-41ae-8632-aee299de13fd nullable: false email: type: string description: 'An email address to filter customers by. Must comply with RFC email format.' example: example@example.com nullable: false data: type: object description: '' example: [] nullable: false properties: sid: type: integer description: 'The SID of the merchant.' example: 12345 nullable: false 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: 'Successful Listing' content: application/json: schema: type: object example: data: - transaction_date: '2023-02-17 02:41:04' fund_date: '2023-02-17 02:41:04' transaction_info_id: '789846193' transaction_id: '3' transaction_detail_account: 0089..9845 authorization_amount: '0.7100' net_amount: '0.7200' sweep_id: '125068038' properties: data: type: array example: - transaction_date: '2023-02-17 02:41:04' fund_date: '2023-02-17 02:41:04' transaction_info_id: '789846193' transaction_id: '3' transaction_detail_account: 0089..9845 authorization_amount: '0.7100' net_amount: '0.7200' sweep_id: '125068038' items: type: object properties: transaction_date: type: string example: '2023-02-17 02:41:04' description: 'The datetime stamp of when the transaction was initiated.' enum: [] fund_date: type: string example: '2023-02-17 02:41:04' description: 'The datetime stamp of when the funds for the deposit were made available to the merchant.' enum: [] transaction_info_id: type: string example: '789846193' description: 'The transaction info ID which is unique only against the SID for the merchant and ties across all reporting objects.' enum: [] transaction_id: type: string example: '3' description: 'The transaction ID, unique only to the SID for the merchant.' enum: [] transaction_detail_account: type: string example: 0089..9845 description: 'The masked first four digits of the routing number and last four digits of the bank account where funds were deposited.' enum: [] authorization_amount: type: string example: '0.7100' description: 'The amount the transaction was authorized for.' enum: [] net_amount: type: string example: '0.7200' description: 'The amount the merchant will receive from the transaction after transaction fees.' enum: [] 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.' enum: [] 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: [] nullable: false properties: sid: type: string description: 'The ID of the merchant.' example: '91828382' nullable: false required: - sid filters: type: object description: '' example: [] nullable: false properties: start_date: type: datetime description: 'The deposit start date, in UTC, with format: "YYYY-mm-dd 00:00:00"' example: '"2024-04-01 00:00:00"' nullable: false end_date: type: datetime description: 'The deposit end date, in UTC, with format: "YYYY-mm-dd 00:00:00"' example: '"2024-04-01 23:59:59"' nullable: false /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: 'Successful Transaction' content: text/plain: schema: type: string example: "{\n \"data\": {\n \"sid\": \"XXXXX\",\n \"count\": 1,\n \"deposits\": {\n \"128298672\": {\n \"sid\": \"XXXXX\",\n \"transaction_info_id\": \"983999999\",\n \"transaction_id\": \"382\",\n \"transaction_date\": \"2024-05-01T04:00:00.000000Z\",\n \"fund_date\": \"2024-05-01 02:20:35\",\n \"countOfTransactions\": 3,\n \"transTotal\": \"545.98\",\n \"transactions\": [\n {\n \"transaction_type\": \"ACH\",\n \"transaction_status\": \"ACH_PAYMENT_CREDIT\",\n \"transaction_status_description\": \"Successfully completed ACH Payment that has been posted to the Escrow Account.\",\n \"transaction_number\": \"369\",\n \"transaction_date\": \"2024-04-29T08:30:25.000000Z\",\n \"fund_date\": \"2024-04-30T20:05:21.000000Z\",\n \"settle_date\": \"2024-04-29T17:51:02.000000Z\",\n \"amount\": \"369.0000\",\n \"description\": \"\",\n \"status_code\": \"\",\n \"status_text\": \"\",\n \"email\": \"\",\n \"phone\": \"\",\n \"customer_uuid\": \"\",\n \"multi_use_token\": \"\",\n \"pending\": false,\n \"transaction_info_id\": \"123123123123\"\n \"parent_transaction_info_id\": \"123123123124\"\n \"billing_address\": {\n \"first_name\": null,\n \"last_name\": null,\n \"addr1\": null,\n \"addr2\": null,\n \"city\": null,\n \"state\": null,\n \"zip\": null\n }\n },\n {\n \"transaction_type\": \"CC\",\n \"transaction_status\": \"CC_CREDIT\",\n \"transaction_status_description\": \"Successful credit/debit card transaction that brings funds into the ProPay Account.\",\n \"transaction_number\": \"1919162951\",\n \"transaction_date\": \"2024-04-29T08:37:29.000000Z\",\n \"fund_date\": \"2024-04-30T20:05:22.000000Z\",\n \"settle_date\": \"2024-05-07T11:30:03.000000Z\",\n \"amount\": \"103.0800\",\n \"description\": \"\",\n \"status_code\": \"\",\n \"status_text\": \"\",\n \"email\": \"\",\n \"phone\": \"\",\n \"customer_uuid\": \"\",\n \"multi_use_token\": \"\",\n \"pending\": false,\n \"transaction_info_id\": \"123123123123\"\n \"parent_transaction_info_id\": \"123123123124\"\n \"billing_address\": {\n \"first_name\": null,\n \"last_name\": null,\n \"addr1\": null,\n \"addr2\": null,\n \"city\": null,\n \"state\": null,\n \"zip\": null\n }\n },\n {\n \"transaction_type\": \"CC\",\n \"transaction_status\": \"CC_CREDIT\",\n \"transaction_status_description\": \"Successful credit/debit card transaction that brings funds into the ProPay Account.\",\n \"transaction_number\": \"1920383851\",\n \"transaction_date\": \"2024-04-29T11:52:43.000000Z\",\n \"fund_date\": \"2024-04-30T20:05:22.000000Z\",\n \"settle_date\": \"2024-05-07T11:30:03.000000Z\",\n \"amount\": \"82.5200\",\n \"description\": \"\",\n \"status_code\": \"\",\n \"status_text\": \"\",\n \"email\": \"\",\n \"phone\": \"\",\n \"customer_uuid\": \"\",\n \"multi_use_token\": \"\",\n \"pending\": false,\n \"transaction_info_id\": \"123123123123\"\n \"parent_transaction_info_id\": \"123123123124\"\n \"billing_address\": {\n \"first_name\": null,\n \"last_name\": null,\n \"addr1\": null,\n \"addr2\": null,\n \"city\": null,\n \"state\": null,\n \"zip\": null\n }\n }\n ]\n ]\n }\n}" 400: description: 'Field Validation Failed' content: text/plain: schema: type: string example: '{"errors": {"data.sid": ["The data.sid is not the correct format."]}' 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: [] nullable: false properties: sid: type: string description: 'Must be unique to the Merchant and less than 150 digits.' example: '91828382' nullable: false required: - sid filters: type: object description: '' example: [] nullable: false properties: start_date: type: string description: 'The start date of the date range.' example: '2024-05-01 00:00:00' nullable: false end_date: type: string description: 'The end date of the date range.' example: '2024-05-01 00:00:00' nullable: false 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: 'Successful Transaction' content: text/plain: schema: type: string example: "{\n \"data\": {\n \"sid\": \"XXXXX\",\n \"transaction_info_id\": \"983999999\",\n \"transaction_id\": \"382\",\n \"transaction_date\": \"2024-05-01T04:00:00.000000Z\",\n \"fund_date\": \"2024-05-01 02:20:35\",\n \"countOfTransactions\": 3,\n \"transTotal\": \"545.98\",\n \"transactions\": [\n {\n \"transaction_type\": \"ACH\",\n \"transaction_status\": \"ACH_PAYMENT_CREDIT\",\n \"transaction_status_description\": \"Successfully completed ACH Payment that has been posted to the Escrow Account.\",\n \"transaction_number\": \"369\",\n \"transaction_date\": \"2024-04-29T08:30:25.000000Z\",\n \"fund_date\": \"2024-04-30T20:05:21.000000Z\",\n \"settle_date\": \"2024-04-29T17:51:02.000000Z\",\n \"amount\": \"369.0000\",\n \"description\": \"\",\n \"status_code\": \"\",\n \"status_text\": \"\",\n \"email\": \"\",\n \"phone\": \"\",\n \"customer_uuid\": \"\",\n \"multi_use_token\": \"\",\n \"pending\": false,\n \"transaction_info_id\": \"123123212312\"\n \"parent_transaction_info_id\": \"123123212314\"\n \"billing_address\": {\n \"first_name\": null,\n \"last_name\": null,\n \"addr1\": null,\n \"addr2\": null,\n \"city\": null,\n \"state\": null,\n \"zip\": null\n }\n },\n {\n \"transaction_type\": \"CC\",\n \"transaction_status\": \"CC_CREDIT\",\n \"transaction_status_description\": \"Successful credit/debit card transaction that brings funds into the ProPay Account.\",\n \"transaction_number\": \"1919162951\",\n \"transaction_date\": \"2024-04-29T08:37:29.000000Z\",\n \"fund_date\": \"2024-04-30T20:05:22.000000Z\",\n \"settle_date\": \"2024-05-07T11:30:03.000000Z\",\n \"amount\": \"103.0800\",\n \"description\": \"\",\n \"status_code\": \"\",\n \"status_text\": \"\",\n \"email\": \"\",\n \"phone\": \"\",\n \"customer_uuid\": \"\",\n \"multi_use_token\": \"\",\n \"pending\": false,\n \"transaction_info_id\": \"123123212312\"\n \"transaction_info_id\": \"123123212314\"\n \"billing_address\": {\n \"first_name\": null,\n \"last_name\": null,\n \"addr1\": null,\n \"addr2\": null,\n \"city\": null,\n \"state\": null,\n \"zip\": null\n }\n },\n {\n \"transaction_type\": \"CC\",\n \"transaction_status\": \"CC_CREDIT\",\n \"transaction_status_description\": \"Successful credit/debit card transaction that brings funds into the ProPay Account.\",\n \"transaction_number\": \"1920383851\",\n \"transaction_date\": \"2024-04-29T11:52:43.000000Z\",\n \"fund_date\": \"2024-04-30T20:05:22.000000Z\",\n \"settle_date\": \"2024-05-07T11:30:03.000000Z\",\n \"amount\": \"82.5200\",\n \"description\": \"\",\n \"status_code\": \"\",\n \"status_text\": \"\",\n \"email\": \"\",\n \"phone\": \"\",\n \"customer_uuid\": \"\",\n \"multi_use_token\": \"\",\n \"pending\": false,\n \"transaction_info_id\": \"123123212314\"\n \"billing_address\": {\n \"first_name\": null,\n \"last_name\": null,\n \"addr1\": null,\n \"addr2\": null,\n \"city\": null,\n \"state\": null,\n \"zip\": null\n }\n }\n ]\n }\n}" 400: description: 'Field Validation Failed' content: text/plain: schema: type: string example: '{"errors": {"data.sid": ["The data.sid is not the correct format."]}' 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: [] nullable: false properties: sid: type: number description: 'The sid of an existing record in the companies table.' example: 4326.41688 nullable: false 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' nullable: false 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"' nullable: false required: - sid - transaction_info_id required: - data /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: 'Successful Listing' content: text/plain: schema: type: string example: "{\n \"data\":[\n{\n \"id\": 1,\n \"type\": \"cc\",\n \"token\": \"xxxxxxxx\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"cc_name_on_card\": \"Johnny Doe\",\n \"cc_last_four\": \"1234\",\n \"cc_expiration_date\": \"01/2027\",\n \"cc_brand\": \"Visa\",\n \"status\": \"New\",\n \"status_date\": \"2024-12-08 05:00:04\",\n \"enabled\": true,\n \"default\": true,\n \"addr1\": \"123 My Street\",\n \"addr2\": \"Suite 123\",\n \"addr3\": \"\",\n \"city\": \"Alpharetta\",\n \"state\": \"GA\",\n \"zip\": \"30009\",\n },\n\"id\": 3,\n\"type\": \"ach\",\n\"first_name\": \"John\",\n\"last_name\": \"Doe\",\n\"ach_bank_account_name\": \"My savings\",\n\"ach_routing_number\": \"12345\",\n\"ach_account_number\": \"12345\",\n\"ach_ownership_type\": Personal,\n\"ach_account_type\": \"Checking\",\n\"ach_bank_name\": Wells Fargo,\n\"status\": \"New\",\n\"status_date\": \"2025-01-01 00:00:00\",\n\"enabled\": true,\n\"default\": false,\n\"addr1\": \"\",\n\"addr2\": \"\",\n\"addr3\": null,\n\"city\": \"\",\n\"state\": \"\",\n\"zip\": \"\"\n]\n}" 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: [] nullable: false properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 nullable: false required: - sid filters: type: object description: '' example: [] nullable: false properties: phone: type: string description: 'Phone number of the customer. Must be in e.164 format.' example: '+15551237890' nullable: false uuid: type: string description: 'UUID of the customer. Must be in uuid format.' example: 3c37db03-dc71-4e8b-90e7-6668290b7c3d nullable: false email: type: string description: 'Email of the customer. Must be in rfc compliant.' example: an-email@domain.com nullable: false /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: 'Successful Creation' content: text/plain: schema: type: string example: "{\n \"data\": {\n \"id\": 1,\n \"type\": \"cc\",\n \"token\": \"xxxxxxxx\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"cc_name_on_card\": \"Johnny Doe\",\n \"cc_last_four\": \"1234\",\n \"cc_expiration_date\": \"01/2027\",\n \"cc_brand\": \"Visa\",\n \"status\": \"New\",\n \"status_date\": \"2024-12-08 05:00:04\",\n \"enabled\": true,\n \"default\": true,\n \"addr1\": \"123 My Street\",\n \"addr2\": \"Suite 123\",\n \"addr3\": \"\",\n \"city\": \"Alpharetta\",\n \"state\": \"GA\",\n \"zip\": \"30009\",\n }\n}" 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: [] nullable: false properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 nullable: false payment_method_id: type: integer description: 'The ID of the Payment Method.' example: 12345 nullable: false required: - sid - payment_method_id filters: type: object description: '' example: [] nullable: false properties: phone: type: string description: 'Phone number of the customer. Must be in e.164 format.' example: '+15551237890' nullable: false uuid: type: string description: 'UUID of the customer. Must be in uuid format.' example: 3c37db03-dc71-4e8b-90e7-6668290b7c3d nullable: false email: type: string description: 'Email of the customer. Must be in rfc compliant.' example: an-email@domain.com nullable: false /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: 'Successful Creation' content: text/plain: schema: type: string example: "{\n \"data\": {\n \"id\": 1,\n \"type\": \"cc\",\n \"token\": \"xxxxxxxx\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"cc_name_on_card\": \"Johnny Doe\",\n \"cc_last_four\": \"1234\",\n \"cc_expiration_date\": \"01/2027\",\n \"cc_brand\": \"Visa\",\n \"status\": \"New\",\n \"status_date\": \"2024-12-08 05:00:04\",\n \"enabled\": true,\n \"default\": true,\n \"addr1\": \"123 My Street\",\n \"addr2\": \"Suite 123\",\n \"addr3\": \"\",\n \"city\": \"Alpharetta\",\n \"state\": \"GA\",\n \"zip\": \"30009\",\n }\n}" 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: [] nullable: false properties: uuid: type: string description: 'UUID of the customer. Must be in uuid format.' example: 3c37db03-dc71-4e8b-90e7-6668290b7c3d nullable: false sid: type: integer description: 'The SID of the Merchant.' example: 12345 nullable: false type: type: string description: "Type of payment method 'cc' for credit card or 'ach' for bank accounts." example: cc nullable: false cc_name_on_card: type: string description: "The name on the card. Required IF type is 'cc' Max: 255." example: 'John Doe' nullable: false cc_number: type: string description: "The card number. Required IF type is 'cc' Max: 255." example: '7890' nullable: false cc_expiration_date: type: string description: "The expiration date of card. Required IF type is 'cc' Max: 7." example: 01/2025 nullable: false cc_cvv: type: string description: "The CVV of card. Required IF type is 'cc' Max: 4." example: '1234' nullable: false 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 nullable: false ach_bank_account_name: type: string description: "The name on the bank account. Required IF type is 'ach' Max: 50." example: 'Acme Inc.' nullable: false ach_routing_number: type: string description: "Routing number for ach type. Required IF type is 'ach' Digits: 9." example: '123456789' nullable: false ach_account_number: type: string description: "Account number for ach type. Required IF type is 'ach' Max: 35." example: '123456789' nullable: false 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 nullable: false ach_account_type: type: string description: "Type of the account. Must be Checking or Savings. Required IF type is 'ach' Max: 35." example: Checking nullable: false ach_bank_name: type: string description: "The name of the bank. Required IF type is 'ach' Max: 50." example: 'Wells Fargo' nullable: false default: type: boolean description: 'Should this be default payment method.' example: true nullable: false addr1: type: string description: 'Address Line One. Max: 75.' example: '123 First St.' nullable: false addr2: type: string description: 'Address Line Two. Max: 50.' example: 'Suite 111' nullable: true city: type: string description: 'City name. Max: 75.' example: Alpharetta nullable: false state: type: string description: 'Two character State. Max: 2.' example: GA nullable: false zip: type: string description: 'Zip code. Digits: 5.' example: '30009' nullable: false 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: 'Successful Update' content: text/plain: schema: type: string example: "{\n \"data\": {\n \"id\": 1,\n \"type\": \"cc\",\n \"token\": \"xxxxxxxx\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"cc_name_on_card\": \"Johnny Doe\",\n \"cc_last_four\": \"1234\",\n \"cc_expiration_date\": \"01/2027\",\n \"cc_brand\": \"Visa\",\n \"status\": \"New\",\n \"status_date\": \"2024-12-08 05:00:04\",\n \"enabled\": true,\n \"default\": true,\n \"addr1\": \"123 My Street\",\n \"addr2\": \"Suite 123\",\n \"addr3\": \"\",\n \"city\": \"Alpharetta\",\n \"state\": \"GA\",\n \"zip\": \"30009\",\n }\n}" 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: [] nullable: false 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 nullable: false sid: type: integer description: 'The SID of the Merchant.' example: 12345 nullable: false payment_method_id: type: number description: 'The id of an existing record in the payment_methods table.' example: 4326.41688 nullable: false type: type: string description: "Type of payment method 'cc' for credit card or 'ach' for bank accounts." example: cc nullable: false cc_name_on_card: type: string description: "The name on the card. Required IF type is 'cc' Max: 255." example: 'John Doe' nullable: false cc_number: type: string description: "The card number. Required IF type is 'cc' Max: 255." example: '7890' nullable: false cc_expiration_date: type: string description: "The expiration date of card. Required IF type is 'cc' Max: 7." example: 01/2025 nullable: false cc_cvv: type: string description: "The CVV of card. Required IF type is 'cc' Max: 4." example: '1234' nullable: false 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 nullable: false ach_bank_account_name: type: string description: "The name on the bank account. Required IF type is 'ach' Max: 50." example: 'Acme Inc.' nullable: false ach_routing_number: type: string description: "Routing number for ach type. Required IF type is 'ach' Digits: 9." example: '123456789' nullable: false ach_account_number: type: string description: "Account number for ach type. Required IF type is 'ach' Max: 35." example: '123456789' nullable: false 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 nullable: false ach_account_type: type: string description: "Type of the account. Must be Checking or Savings. Required IF type is 'ach' Max: 35." example: Checking nullable: false ach_bank_name: type: string description: "The name of the bank. Required IF type is 'ach' Max: 50." example: 'Wells Fargo' nullable: false default: type: boolean description: 'Should this be default payment method.' example: true nullable: false addr1: type: string description: 'Address Line One. Max: 75.' example: '123 First St.' nullable: false addr2: type: string description: 'Address Line Two. Max: 50.' example: 'Suite 111' nullable: true city: type: string description: 'City name. Max: 75.' example: Alpharetta nullable: false state: type: string description: 'Two character State. Max: 2.' example: GA nullable: false zip: type: string description: 'Zip code. Digits: 5.' example: '30009' nullable: false 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' nullable: false properties: phone: type: string description: 'Phone number of the customer. Must be in e.164 format.' example: '+15551237890' nullable: false email: type: string description: 'Email of the customer. Must be in rfc compliant.' example: an-email@domain.com nullable: false uuid: type: string description: 'UUID of the customer. Must be in uuid format.' example: 3c37db03-dc71-4e8b-90e7-6668290b7c3d nullable: false /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.' enum: [] 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.' enum: [] 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.' enum: [] - 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.' enum: [] - 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.' enum: [] 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.' enum: [] tags: - 'Payment Method management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] nullable: false properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 nullable: false payment_method_id: type: integer description: 'The ID of the payment method.' example: 12345 nullable: false uuid: type: string description: 'UUID of the customer. Must be in uuid format.' example: 3c37db03-dc71-4e8b-90e7-6668290b7c3d nullable: false 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: 'Successful Listing' content: text/plain: schema: type: string example: "{\n\"data\": {\n\"id\": \"12345\",\n\"name\": \"A Smith\",\n\"amount\": \"1819.16\",\n\"start_date\": \"2025-04-04T04:00:00.000000Z\",\n\"end_date\": null,\n\"recurrence_schedule\": \"Monthly\",\n\"last_run_date\": \"2025-05-06T04:00:00.000000Z\",\n\"last_run_status\": \"Failed\",\n\"last_run_failed_count\": 3,\n\"next_run_date\": null,\n\"status\": \"Failed\",\n\"paused_until_date\": null,\n\"customer_uuid\": \"941d46d5-ad8e-4737-8dda-cec4a5116cde\",\n\"cancelled_at\": null,\n\"error\": \"EXPIRED CARD\",\n\"payment_method\": {\n\"id\": 22,\n\"type\": \"cc\",\n\"last_four\": \"8747\",\n\"expiration\": \"08/2029\",\n\"zip\": \"30115\",\n\"name_on_card\": \"Kody Smith\"\n}\n}\n],\n\"links\": {\n\"prev\": null,\n\"next\": null\n},\n\"meta\": {\n\"path\": \"https://app.dimepayments.com/api/recurring-payment/list\",\n\"per_page\": 500,\n\"next_cursor\": null,\n\"prev_cursor\": null\n}\n}" 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: text/plain: schema: oneOf: - description: 'Token unauthorized' type: string example: '{"data": { "message": "Permission Denied."}' - description: 'Invalid merchant or affiliate authorization' type: string example: '{"data": { "message": "Unauthorized"}' - description: 'Invalid merchant or affiliate associations' type: string example: '{"data": { "message": "Not associated with affiliate"}' 404: description: 'Invalid sid' content: text/plain: schema: type: string example: '{"data": { "message": "No such Merchant"}' tags: - 'Recurring Payments management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] nullable: false properties: sid: type: string description: 'The ID of the merchant that processed the transactions.' example: '12345' nullable: false required: - sid filters: type: object description: '' example: [] nullable: false properties: status: type: string description: 'The status of the recurring payment.' example: 'Active, Failed, Paused, Canceled' nullable: false customer_uuid: type: string description: 'The customer UUID associated with the transaction.' example: cust_456 nullable: false /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: 'Successful Pause' content: text/plain: schema: type: string example: "{\n\"data\": {\n\"id\": \"12345\",\n\"name\": \"A Smith\",\n\"amount\": \"1819.16\",\n\"start_date\": \"2025-04-04T04:00:00.000000Z\",\n\"end_date\": null,\n\"recurrence_schedule\": \"Monthly\",\n\"last_run_date\": \"2025-05-06T04:00:00.000000Z\",\n\"last_run_status\": \"Failed\",\n\"last_run_failed_count\": 3,\n\"next_run_date\": null,\n\"status\": \"Paused\",\n\"paused_until_date\": \"2027-05-06T04:00:00.000000Z\",\n\"customer_uuid\": \"941d46d5-ad8e-4737-8dda-cec4a5116cde\",\n\"cancelled_at\": null,\n\"error\": \"EXPIRED CARD\",\n\"payment_method\": {\n\"id\": 22,\n\"type\": \"cc\",\n\"last_four\": \"8747\",\n\"expiration\": \"08/2029\",\n\"zip\": \"30115\",\n\"name_on_card\": \"Kody Smith\"\n},\n\"shipping_address\": {\n \"addr1\": \"123 Main St\",\n \"addr2\": \"apt 1\",\n \"city\": \"Alpharetta\",\n \"state\": \"GA\",\n \"zip\": \"12345\"\n}\n}\n],\n\"links\": {\n\"prev\": null,\n\"next\": null\n},\n\"meta\": {\n\"path\": \"https://app.dimepayments.com/api/recurring-payment/list\",\n\"per_page\": 500,\n\"next_cursor\": null,\n\"prev_cursor\": null\n}\n}" 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: text/plain: schema: oneOf: - description: 'Token unauthorized' type: string example: '{"data": { "message": "Permission Denied."}' - description: 'Invalid merchant or affiliate authorization' type: string example: '{"data": { "message": "Unauthorized"}' - description: 'Invalid merchant or affiliate associations' type: string example: '{"data": { "message": "Not associated with affiliate"}' 404: description: 'Invalid sid' content: text/plain: schema: type: string example: '{"data": { "message": "No such Merchant"}' tags: - 'Recurring Payments management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] nullable: false properties: sid: type: string description: 'The ID of the merchant that processed the transactions.' example: '12345' nullable: false recurring_payment_id: type: integer description: 'The ID of the recurring payment to pause.' example: 12345 nullable: false pause_until_date: type: date description: 'optional The date to pause until in `Y-m-d H:i:s` format.' example: '2021-01-01 00:00:00' nullable: false 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: 'Successful Pause' content: text/plain: schema: type: string example: "{\n\"data\": {\n\"id\": \"12345\",\n\"name\": \"A Smith\",\n\"amount\": \"1819.1600\",\n\"start_date\": \"2025-04-04T04:00:00.000000Z\",\n\"end_date\": null,\n\"recurrence_schedule\": \"Monthly\",\n\"last_run_date\": \"2025-05-06T04:00:00.000000Z\",\n\"last_run_status\": \"Failed\",\n\"last_run_failed_count\": 3,\n\"next_run_date\": null,\n\"status\": \"Cancelled\",\n\"paused_until_date\": null,\n\"customer_uuid\": \"941d46d5-ad8e-4737-8dda-cec4a5116cde\",\n\"cancelled_at\": \"2027-05-06T04:00:00.000000Z\",\n\"error\": \"EXPIRED CARD\",\n\"payment_method\": {\n\"id\": 22,\n\"type\": \"cc\",\n\"last_four\": \"8747\",\n\"expiration\": \"08/2029\",\n\"zip\": \"30115\",\n\"name_on_card\": \"Kody Smith\",\n \"shipping_address\": {\n \"addr1\": \"123 Main St\",\n \"addr2\": \"apt 1\",\n \"city\": \"Alpharetta\",\n \"state\": \"GA\",\n \"zip\": \"12345\"\n },\n \"shipping_address\": {\n \"addr1\": \"123 Main St\",\n \"addr2\": \"apt 1\",\n \"city\": \"Alpharetta\",\n \"state\": \"GA\",\n \"zip\": \"12345\"\n }\n}\n}" 401: description: '' content: text/plain: schema: oneOf: - description: 'Token unauthorized' type: string example: '{"data": { "message": "Permission Denied."}' - description: 'Invalid merchant or affiliate authorization' type: string example: '{"data": { "message": "Unauthorized"}' - description: 'Invalid merchant or affiliate associations' type: string example: '{"data": { "message": "Not associated with affiliate"}' 404: description: 'Invalid sid' content: text/plain: schema: type: string example: '{"data": { "message": "No such Merchant"}' tags: - 'Recurring Payments management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] nullable: false properties: sid: type: string description: 'The ID of the merchant that processed the transactions.' example: '12345' nullable: false recurring_payment_id: type: integer description: 'The ID of the recurring payment to pause.' example: 12345 nullable: false 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: 'Successful Pause' content: text/plain: schema: type: string example: "{\n\"data\": {\n\"id\": \"12345\",\n\"name\": \"A Smith\",\n\"amount\": \"1819.16\",\n\"start_date\": \"2025-04-04T04:00:00.000000Z\",\n\"end_date\": null,\n\"recurrence_schedule\": \"Monthly\",\n\"last_run_date\": \"2025-05-06T04:00:00.000000Z\",\n\"last_run_status\": \"Failed\",\n\"last_run_failed_count\": 3,\n\"next_run_date\": \"2027-06-06T04:00:00.000000Z\",\n\"status\": \"Active\",\n\"paused_until_date\": null,\n\"customer_uuid\": \"941d46d5-ad8e-4737-8dda-cec4a5116cde\",\n\"cancelled_at\": null,\n\"error\": \"EXPIRED CARD\",\n\"payment_method\": {\n\"id\": 22,\n\"type\": \"cc\",\n\"last_four\": \"8747\",\n\"expiration\": \"08/2029\",\n\"zip\": \"30115\",\n\"name_on_card\": \"Kody Smith\"\n},\n \"shipping_address\": {\n \"addr1\": \"123 Main St\",\n \"addr2\": \"apt 1\",\n \"city\": \"Alpharetta\",\n \"state\": \"GA\",\n \"zip\": \"12345\"\n }\n}" 401: description: '' content: text/plain: schema: oneOf: - description: 'Token unauthorized' type: string example: '{"data": { "message": "Permission Denied."}' - description: 'Invalid merchant or affiliate authorization' type: string example: '{"data": { "message": "Unauthorized"}' - description: 'Invalid merchant or affiliate associations' type: string example: '{"data": { "message": "Not associated with affiliate"}' 404: description: 'Invalid sid' content: text/plain: schema: type: string example: '{"data": { "message": "No such Merchant"}' tags: - 'Recurring Payments management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] nullable: false properties: sid: type: string description: 'The ID of the merchant that processed the transactions.' example: '12345' nullable: false recurring_payment_id: type: integer description: 'The ID of the recurring payment to pause.' example: 12345 nullable: false 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: 'Successful Creation' content: text/plain: schema: type: string example: "{\n\"data\": {\n\"id\": \"12345\",\n\"name\": \"Rent\",\n\"amount\": \"1819.16\",\n\"start_date\": \"2025-04-04T04:00:00.000000Z\",\n\"end_date\": null,\n\"recurrence_schedule\": \"Monthly\",\n\"last_run_date\": \"\",\n\"last_run_status\": \"\",\n\"last_run_failed_count\": 3,\n\"next_run_date\": \"2027-06-06T04:00:00.000000Z\",\n\"status\": \"Active\",\n\"paused_until_date\": null,\n\"customer_uuid\": \"941d46d5-ad8e-4737-8dda-cec4a5116cde\",\n\"cancelled_at\": null,\n\"error\": \"\",\n\"payment_method\": {\n\"id\": 22,\n\"type\": \"cc\",\n\"last_four\": \"8247\",\n\"expiration\": \"08/2030\",\n\"zip\": \"30111\",\n\"name_on_card\": \"John Doe\"\n}\n \"shipping_address\": {\n \"addr1\": \"123 Main St\",\n \"addr2\": \"apt 1\",\n \"city\": \"Alpharetta\",\n \"state\": \"GA\",\n \"zip\": \"12345\"\n }\n}" 401: description: '' content: text/plain: schema: oneOf: - description: 'Token unauthorized' type: string example: '{"data": { "message": "Permission Denied."}' - description: 'Invalid merchant or affiliate authorization' type: string example: '{"data": { "message": "Unauthorized"}' - description: 'Invalid merchant or affiliate associations' type: string example: '{"data": { "message": "Not associated with affiliate"}' 404: description: 'Invalid sid' content: text/plain: schema: type: string example: '{"data": { "message": "No such Merchant"}' tags: - 'Recurring Payments management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] nullable: false properties: sid: type: string description: 'The ID of the merchant that processed the transactions.' example: '12345' nullable: false name: type: string description: 'The name for the recurring payment.' example: Rent nullable: false amount: type: number description: 'The amount for the recurring payment in US Dollars and Cents.' example: 1101.69 nullable: false start_date: type: date description: 'The date the recurring payment should start in the correct format.' example: '2025-06-12 13:26:00' nullable: false end_date: type: The description: '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 nullable: false payment_method: type: integer description: 'The ID of the payment method.' example: 69585 nullable: false customer_uuid: type: string description: 'The UUID of the customer.' example: 12312312-12312321-12312312-12312312 nullable: false shipping_address: type: object description: '' example: [] nullable: false 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: 'Successful Show' content: text/plain: schema: type: string example: "{\n\"data\": {\n\"id\": \"12345\",\n\"name\": \"A Smith\",\n\"amount\": \"1819.16\",\n\"start_date\": \"2025-04-04T04:00:00.000000Z\",\n\"end_date\": null,\n\"recurrence_schedule\": \"Monthly\",\n\"last_run_date\": \"2025-05-06T04:00:00.000000Z\",\n\"last_run_status\": \"Failed\",\n\"last_run_failed_count\": 3,\n\"next_run_date\": \"2027-06-06T04:00:00.000000Z\",\n\"status\": \"Active\",\n\"paused_until_date\": null,\n\"customer_uuid\": \"941d46d5-ad8e-4737-8dda-cec4a5116cde\",\n\"cancelled_at\": null,\n\"error\": \"EXPIRED CARD\",\n\"payment_method\": {\n\"id\": 22,\n\"type\": \"cc\",\n\"last_four\": \"8747\",\n\"expiration\": \"08/2029\",\n\"zip\": \"30115\",\n\"name_on_card\": \"Kody Smith\"\n}\n \"shipping_address\": {\n \"addr1\": \"123 Main St\",\n \"addr2\": \"apt 1\",\n \"city\": \"Alpharetta\",\n \"state\": \"GA\",\n \"zip\": \"12345\"\n }\n}" 401: description: '' content: text/plain: schema: oneOf: - description: 'Token unauthorized' type: string example: '{"data": { "message": "Permission Denied."}' - description: 'Invalid merchant or affiliate authorization' type: string example: '{"data": { "message": "Unauthorized"}' - description: 'Invalid merchant or affiliate associations' type: string example: '{"data": { "message": "Not associated with affiliate"}' 404: description: 'Invalid sid' content: text/plain: schema: type: string example: '{"data": { "message": "No such Merchant"}' tags: - 'Recurring Payments management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] nullable: false properties: sid: type: string description: 'The ID of the merchant that processed the transactions.' example: '12345' nullable: false recurring_payment_id: type: integer description: 'The ID of the recurring payment to show.' example: 12345 nullable: false 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.' enum: [] 401: description: '' content: text/plain: schema: oneOf: - description: 'Token unauthorized' type: string example: '{"data": { "message": "Permission Denied."}' - description: 'Invalid merchant or affiliate authorization' type: string example: '{"data": { "message": "Unauthorized"}' - description: 'Invalid merchant or affiliate associations' type: string example: '{"data": { "message": "Not associated with affiliate"}' 404: description: 'Invalid sid' content: text/plain: schema: type: string example: '{"data": { "message": "No such Merchant"}' tags: - 'Recurring Payments management' requestBody: required: false content: application/json: schema: type: object properties: data: type: object description: '' example: [] nullable: false properties: sid: type: string description: 'The ID of the merchant that processed the transactions.' example: '12345' nullable: false recurring_payment_id: type: integer description: 'The ID of the recurring payment to show.' example: 12345 nullable: false required: - sid - recurring_payment_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: text/plain: schema: type: string example: '{' 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: text/plain: schema: type: string example: "{\n [\n \"amount\": \"100.00\",\n \"business\": \"Acme Inc\",\n \"transaction_date\": \"2020-10-15 12:00:00\",\n \"customer_uuid\": \"1234567890\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"customer_phone\": \"1234567890\",\n \"customer_email\": \"email@email.com\"\n ],\n [\n \"amount\": \"100.00\",\n \"business\": \"Acme Inc\",\n \"transaction_date\": \"2020-10-15 12:00:00\",\n \"customer_uuid\": \"1234567890\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"customer_phone\": \"1234567890\",\n \"customer_email\": \"email@email.com\"\n ]\n}" 401: description: 'Token permission error' content: application/json: schema: type: object example: message: 'Permission denied' properties: message: type: string example: 'Permission denied' 404: description: 'Merchant not found' content: application/json: schema: type: object example: message: 'Merchant not found' properties: message: type: string example: 'Merchant not found' 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: text/plain: schema: type: string example: '{' 400: description: '' content: text/plain: schema: type: string example: 'scenario"Invalid input data" {"data.message" : "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: 'Merchant not found' content: application/json: schema: type: object example: message: 'Merchant not found' properties: message: type: string example: 'Merchant not found' tags: - Zapier requestBody: required: false content: application/json: schema: type: object properties: start_date: type: Date description: 'in the form of YYYY-MM-DD' example: '2020-10-15' nullable: false end_date: type: Date description: 'in the form of YYYY-MM-DD' example: '2020-10-15' nullable: false last_days: type: Integer description: 'number of days' example: '90' nullable: false parameters: - in: path name: phone description: '' example: architecto required: true schema: type: string /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: text/plain: schema: type: string example: '{' 401: description: 'Token permission error' content: application/json: schema: type: object example: message: 'Permission denied' properties: message: type: string example: 'Permission denied' 404: description: 'Merchant not found' content: application/json: schema: type: object example: message: 'Merchant not found' properties: message: type: string example: 'Merchant not found' tags: - Zapier