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, create, update, and delete payment methods along with several other payment method specific requests." - 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' sid: type: string example: '00001' mcc: type: string example: '8999' slug: type: string example: pay pub_api_key: type: string example: pkapi_prod_B5n2hQhy6uAp1rLjqs processor_mid: type: string example: '650000012366624' active: type: boolean example: true active_at: type: string example: null g_pay: type: boolean example: false a_pay: type: boolean example: false pci_compliance: type: boolean example: true website: type: string example: 'https://dimepayments.com' addr1: type: string example: '53 S. Main St' addr2: type: string example: '' city: type: string example: Alpharetta state: type: string example: GA zip: type: string example: '30009' phone: type: string example: '4049064975' primary_phone: type: string example: '4049064975' primary_email: type: string example: ben@dimepayments.com primary_name: type: string example: 'Ben Habeck' 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 merchant account processing the charge.' 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' sid: type: string example: '00001' mcc: type: string example: '8999' slug: type: string example: pay pub_api_key: type: string example: pkapi_prod_B5n2hQhy6uAp1rLjqs processor_mid: type: string example: '650000012366624' active: type: boolean example: true active_at: type: string example: null g_pay: type: boolean example: false a_pay: type: boolean example: false pci_compliance: type: boolean example: true website: type: string example: 'https://dimepayments.com' addr1: type: string example: '53 S. Main St' addr2: type: string example: '' city: type: string example: Alpharetta state: type: string example: GA zip: type: string example: '30009' phone: type: string example: '4049064975' primary_phone: type: string example: '4049064975' primary_email: type: string example: ben@dimepayments.com primary_name: type: string example: 'Ben Habeck' 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' sid: type: string example: '00001' mcc: type: string example: '8999' slug: type: string example: pay pub_api_key: type: string example: pkapi_prod_B5n2hQhy6uAp1rLjqs processor_mid: type: string example: '650000012366624' active: type: boolean example: true active_at: type: string example: null g_pay: type: boolean example: false a_pay: type: boolean example: false pci_compliance: type: boolean example: true website: type: string example: 'https://dimepayments.com' addr1: type: string example: '53 S. Main St' addr2: type: string example: '' city: type: string example: Alpharetta state: type: string example: GA zip: type: string example: '30009' phone: type: string example: '4049064975' primary_phone: type: string example: '4049064975' primary_email: type: string example: ben@dimepayments.com primary_name: type: string example: 'Ben Habeck' 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\": \"\",\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 \"billing_address\": {\n \"first_name\": \"\",\n \"last_name\": \"\",\n \"addr1\": \"\",\n \"addr2\": \"\",\n \"city\": \"\",\n \"state\": \"\",\n \"zip\": \"\"\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 \"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 \"billing_address\": {\n \"first_name\": \"\",\n \"last_name\": \"\",\n \"addr1\": \"\",\n \"addr2\": \"\",\n \"city\": \"\",\n \"state\": \"\",\n \"zip\": \"\"\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 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: 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: application/json: schema: type: object example: data: amount: '1.00' transaction_type: 'Credit Card' transactionNumber: '1234567890' description: 'a memo concerning this transaction' status_code: '00' status_text: APPROVAL multi_use_token: abcdefg123456790 billing_address: first_name: Jamie last_name: Doe addr1: '1 Lakeshore Dr' addr2: 'Suite 100' city: Chicago state: IL zip: '60601' properties: data: type: object properties: amount: type: string example: '1.00' description: 'The amount of the transaction in USD.' enum: [] transaction_type: type: string example: 'Credit Card' description: 'ACH or Credit Card.' enum: [] transactionNumber: type: string example: '1234567890' description: 'The unique transaction used for referencing in the future.' enum: [] description: type: string example: 'a memo concerning this transaction' description: 'The original memo field.' enum: [] status_code: type: string example: '00' status_text: type: string example: APPROVAL description: 'Response text from processor.' enum: [] multi_use_token: type: string example: abcdefg123456790 description: 'A token used to charge against a stored credit card.' enum: [] billing_address: type: object properties: first_name: type: string example: Jamie description: 'The first name field.' enum: [] last_name: type: string example: Doe description: 'The last name field.' enum: [] addr1: type: string example: '1 Lakeshore Dr' description: 'The first address line.' enum: [] addr2: type: string example: 'Suite 100' description: 'The second address line.' enum: [] city: type: string example: Chicago description: 'The city field.' enum: [] state: type: string example: IL description: 'The state field.' enum: [] zip: type: string example: '60601' description: 'The zip field.' enum: [] 400: description: '' content: application/json: schema: oneOf: - description: '' type: object example: errors: sid: - 'The sid is required.' properties: errors: type: object properties: sid: type: array example: - 'The sid is required.' items: type: string - description: '' type: object example: data: amount: '1.00' transaction_type: 'Credit Card' transactionNumber: '1234567890' description: 'a memo concerning this transaction' status_code: '05' status_text: DECLINE billing_address: first_name: Jamie last_name: Doe addr1: '1 Lakeshore Dr' addr2: 'Suite 100' city: Chicago state: IL zip: '60601' properties: data: type: object properties: amount: type: string example: '1.00' description: 'The amount of the transaction in USD.' enum: [] transaction_type: type: string example: 'Credit Card' description: 'ACH or Credit Card.' enum: [] transactionNumber: type: string example: '1234567890' description: 'The unique transaction used for referencing in the future.' enum: [] description: type: string example: 'a memo concerning this transaction' description: 'The original memo field.' enum: [] status_code: type: string example: '05' status_text: type: string example: DECLINE description: 'Response text from processor.' enum: [] billing_address: type: object properties: first_name: type: string example: Jamie description: 'The first name field.' enum: [] last_name: type: string example: Doe description: 'The last name field.' enum: [] addr1: type: string example: '1 Lakeshore Dr' description: 'The first address line.' enum: [] addr2: type: string example: 'Suite 100' description: 'The second address line.' enum: [] city: type: string example: Chicago description: 'The city field.' enum: [] state: type: string example: IL description: 'The state field.' enum: [] zip: type: string example: '60601' description: 'The zip field.' enum: [] 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: architecto 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: architecto 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 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: application/json: schema: type: object example: data: transaction_type: ACH transaction_number: '130' amount: '25' description: '' status_code: '00' status_text: Success email: test@test.com phone: '' customer_uuid: '' multi_use_token: '' pending: false billing_address: first_name: First last_name: Last addr1: '12 Street Ave' addr2: 'Suite 123' city: Boulder state: CO zip: '80302' properties: data: type: object properties: transaction_type: type: string example: ACH description: 'ACH or Credit Card.' enum: [] transaction_number: type: string example: '130' description: 'The unique transaction used for referencing in the future.' enum: [] amount: type: string example: '25' description: 'The amount of the transaction in USD.' enum: [] description: type: string example: '' description: 'The original memo field.' enum: [] status_code: type: string example: '00' description: 'Response code from processor.' enum: [] status_text: type: string example: Success description: 'Response text from processor.' enum: [] email: type: string example: test@test.com description: 'The email address.' enum: [] phone: type: string example: '' description: 'The phone number.' enum: [] customer_uuid: type: string example: '' description: "The customer's UUID." enum: [] multi_use_token: type: string example: '' description: Not enum: [] pending: type: boolean example: false billing_address: type: object properties: first_name: type: string example: First description: 'The first name field.' enum: [] last_name: type: string example: Last description: 'The last name field.' enum: [] addr1: type: string example: '12 Street Ave' description: 'The first address line.' enum: [] addr2: type: string example: 'Suite 123' description: 'The second address line.' enum: [] city: type: string example: Boulder description: 'The city field.' enum: [] state: type: string example: CO description: 'The state field.' enum: [] zip: type: string example: '80302' description: 'The zip field.' enum: [] 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: '' example: architecto 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: integer description: 'optional The first address line. Max: 31.' example: 123 nullable: true addr2: type: integer description: 'optional The second address line. Max: 31.' example: 0 nullable: true city: type: integer description: 'optional The city. Max: 52.' example: 0 nullable: true state: type: integer description: 'optional The state. Max: 2.' example: 0 nullable: true zip: type: integer description: 'optional The zip code. Max: 5.' example: 30009 nullable: true required: - sid - routing_number - account_number - account_type - account_name - amount - phone /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 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 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 Refund' 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' amount: '25.0000' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: 68d9feaa-04a9-4c48-8c00-a0b79c8b2f70 multi_use_token: '' pending: true billing_address: first_name: '' last_name: '' addr1: '' addr2: '' city: '' state: '' zip: '' 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' 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: '' status_text: type: string example: '' email: type: string example: '' phone: type: string example: '' customer_uuid: type: string example: 68d9feaa-04a9-4c48-8c00-a0b79c8b2f70 description: "The unique UUID of the merchant's customer." enum: [] multi_use_token: type: string example: '' pending: type: boolean example: true 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: [] 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: 'sometimes 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".' example: ACH nullable: false transaction_id: type: number description: 'This field is required when data.transaction_info_id is not present.' example: 4326.41688 nullable: false att_number: type: numeric description: 'sometimes The ID of an ACH transaction.' example: architecto nullable: false gateway_transaction_id: type: numeric description: 'sometimes The ID of a Credit Card transaction.' example: architecto 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: '' content: text/plain: schema: oneOf: - description: Success type: string example: '{"data": { "message" : "refund"}' - description: Success type: string example: '{"data": { "message" : "void"}' 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: '' type: object example: data: message: 'Error processing refund' properties: data: type: object properties: message: type: string example: 'Error processing refund' - description: '' type: object example: data: message: 'Unsupported processor.' properties: data: type: object properties: message: type: string example: 'Unsupported processor.' 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.' 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. The transaction_id which is returned when processing a card or ach account.' 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 Transaction' 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: '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.' 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.' 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 Listing' 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: 'Customer created' 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 Listing' 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' 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: '' 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: false last_name: type: optional description: "Customer's last name" example: architecto nullable: false company_name: type: optional description: 'Name of Merchant that customer belongs to' example: architecto nullable: false phone: type: optional description: "Customer's unique phone number" example: architecto nullable: false email: type: optional description: "Customer's unique email" example: gbailey@example.net nullable: false addr1: type: optional description: "Customer's address line 1" example: architecto nullable: false addr2: type: optional description: "Customer's address line 2" example: architecto nullable: false addr3: type: optional description: "Customer's address line 3" example: architecto nullable: false city: type: optional description: "Customer's city" example: architecto nullable: false state: type: optional description: "Customer's state" example: architecto nullable: false zip: type: optional description: "Customer's zip code" example: architecto 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 two 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 \"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 \"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 \"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 start_date: type: datetime description: 'Must be in format: "YYYY-mm-dd 00:00:00"' example: '"2024-04-01 00:00:00"' nullable: false end_date: type: datetime description: 'Must be in format: "YYYY-mm-dd 00:00:00"' example: '"2024-04-01 23:59:59"' nullable: false required: - sid - start_date - end_date filters: type: object description: '' example: [] nullable: false properties: start_date: type: string description: 'Must be a valid date in the format Y-m-d H:i:s.' example: '2025-06-05 15:57:58' nullable: false end_date: type: string description: 'Must be a valid date in the format Y-m-d H:i:s.' example: '2025-06-05 15:57:58' nullable: false required: - start_date - end_date required: - data /api/deposit/show: get: summary: 'Show Deposit with Supporting Trans' operationId: showDepositWithSupportingTrans description: 'Show a Deposit from Merchant Account with supporting transactions' parameters: [] responses: 200: description: '' content: application/json: schema: oneOf: - description: 'Successful Transaction' type: object example: data: sid: XXXXX transaction_info_id: '983999999' transaction_id: '382' transaction_date: '2024-05-01T04:00:00.000000Z' fund_date: '2024-05-01 02:20:35' countOfTransactions: 3 transTotal: '545.98' transactions: - transaction_type: ACH transaction_status: ACH_PAYMENT_CREDIT transaction_status_description: 'Successfully completed ACH Payment that has been posted to the Escrow Account.' transaction_number: '369' transaction_date: '2024-04-29T08:30:25.000000Z' fund_date: '2024-04-30T20:05:21.000000Z' settle_date: '2024-04-29T17:51:02.000000Z' amount: '369.0000' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: '' multi_use_token: '' pending: false billing_address: first_name: null last_name: null addr1: null addr2: null city: null state: null zip: null - transaction_type: CC transaction_status: CC_CREDIT transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.' transaction_number: '1919162951' transaction_date: '2024-04-29T08:37:29.000000Z' fund_date: '2024-04-30T20:05:22.000000Z' settle_date: '2024-05-07T11:30:03.000000Z' amount: '103.0800' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: '' multi_use_token: '' pending: false billing_address: first_name: null last_name: null addr1: null addr2: null city: null state: null zip: null - transaction_type: CC transaction_status: CC_CREDIT transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.' transaction_number: '1920383851' transaction_date: '2024-04-29T11:52:43.000000Z' fund_date: '2024-04-30T20:05:22.000000Z' settle_date: '2024-05-07T11:30:03.000000Z' amount: '82.5200' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: '' multi_use_token: '' pending: false billing_address: first_name: null last_name: null addr1: null addr2: null city: null state: null zip: null properties: data: type: object properties: sid: type: string example: XXXXX description: "Merchant's sid that was requested." enum: [] transaction_info_id: type: string example: '983999999' description: 'The transaction_info_id of the deposit.' enum: [] transaction_id: type: string example: '382' description: 'The transaction_id of the deposit.' enum: [] transaction_date: type: string example: '2024-05-01T04:00:00.000000Z' description: 'The date of the deposit.' enum: [] fund_date: type: string example: '2024-05-01 02:20:35' description: 'The date of the deposit.' enum: [] countOfTransactions: type: integer example: 3 description: 'The number of transactions in the deposit.' enum: [] transTotal: type: string example: '545.98' description: 'The total of the transactions in the deposit (net of deposit).' enum: [] transactions: type: array example: - transaction_type: ACH transaction_status: ACH_PAYMENT_CREDIT transaction_status_description: 'Successfully completed ACH Payment that has been posted to the Escrow Account.' transaction_number: '369' transaction_date: '2024-04-29T08:30:25.000000Z' fund_date: '2024-04-30T20:05:21.000000Z' settle_date: '2024-04-29T17:51:02.000000Z' amount: '369.0000' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: '' multi_use_token: '' pending: false billing_address: first_name: null last_name: null addr1: null addr2: null city: null state: null zip: null - transaction_type: CC transaction_status: CC_CREDIT transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.' transaction_number: '1919162951' transaction_date: '2024-04-29T08:37:29.000000Z' fund_date: '2024-04-30T20:05:22.000000Z' settle_date: '2024-05-07T11:30:03.000000Z' amount: '103.0800' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: '' multi_use_token: '' pending: false billing_address: first_name: null last_name: null addr1: null addr2: null city: null state: null zip: null - transaction_type: CC transaction_status: CC_CREDIT transaction_status_description: 'Successful credit/debit card transaction that brings funds into the ProPay Account.' transaction_number: '1920383851' transaction_date: '2024-04-29T11:52:43.000000Z' fund_date: '2024-04-30T20:05:22.000000Z' settle_date: '2024-05-07T11:30:03.000000Z' amount: '82.5200' description: '' status_code: '' status_text: '' email: '' phone: '' customer_uuid: '' multi_use_token: '' pending: false billing_address: first_name: null last_name: null addr1: null addr2: null city: null state: null zip: null description: 'containing any transactions supporting the deposit.' enum: [] items: type: object properties: transaction_type: type: string example: ACH description: 'The type of transaction. Request a listing from developer support if unaware of options.' enum: [] transaction_status: type: string example: ACH_PAYMENT_CREDIT description: 'The status of the transaction. Request a listing from developer support if unaware of options.' enum: [] transaction_status_description: type: string example: 'Successfully completed ACH Payment that has been posted to the Escrow Account.' description: 'The description of the transaction status..' enum: [] transaction_number: type: string example: '369' description: 'The transaction number.' enum: [] transaction_date: type: string example: '2024-04-29T08:30:25.000000Z' description: 'The date of the transaction.' enum: [] fund_date: type: string example: '2024-04-30T20:05:21.000000Z' description: 'The date of the transaction.' enum: [] settle_date: type: string example: '2024-04-29T17:51:02.000000Z' description: 'The date of the transaction.' enum: [] amount: type: string example: '369.0000' description: 'The amount of the transaction.' enum: [] description: type: string example: '' description: 'The description of the transaction.' 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: '' 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: false description: 'The pending status of the transaction.' enum: [] billing_address: type: object properties: first_name: type: string example: null description: 'The first name of the billing address.' enum: [] last_name: type: string example: null description: 'The last name of the billing address.' enum: [] addr1: type: string example: null description: 'The address 1 of the billing address.' enum: [] addr2: type: string example: null description: 'The address 2 of the billing address.' enum: [] city: type: string example: null description: 'The city of the billing address.' enum: [] state: type: string example: null description: 'The state of the billing address.' enum: [] zip: type: string example: null description: 'The zip of the billing address.' enum: [] - description: 'Empty Response' type: object example: { } properties: { } 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 - sweep_id required: - data /api/payment-method/create: post: summary: 'Create Payment Method for a customer' operationId: createPaymentMethodForACustomer description: "This endpoint lets you create a new payment method for a customer. Must pass at least one filter to select\n a specific customer" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 1 user_id: 1 type: cc token: xxxxxxxx default: 1 created_at: '2022-10-01' updated_at: '2022-10-01' properties: data: type: object properties: id: type: integer example: 1 user_id: type: integer example: 1 type: type: string example: cc token: type: string example: xxxxxxxx default: type: integer example: 1 created_at: type: string example: '2022-10-01' updated_at: type: string example: '2022-10-01' 401: description: '' content: application/json: schema: type: object example: message: 'Permission denied' properties: message: type: string example: 'Permission denied' 404: description: '' content: application/json: schema: type: object example: message: 'Customer not found.' properties: message: type: string example: 'Customer not found.' tags: - 'Payment Method management' requestBody: required: false content: application/json: schema: type: object properties: 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 data: type: object description: '' example: [] nullable: false properties: 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 token: type: string description: "MultiUse Token for credit card type. Required IF type is 'cc' Max: 255." example: xxxxxxxx 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_last_four: type: string description: "The last 4 digits of 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_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: '' example: false nullable: false addr1: type: string description: 'Address Line One. Max: 75.' example: '123 First St.' nullable: true 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: true state: type: string description: 'Two character State. Max: 2.' example: GA nullable: true zip: type: string description: 'Zip code. Digits: 5.' example: '30009' nullable: false required: - sid - type - token - cc_name_on_card - cc_last_four - cc_expiration_date - cc_brand - ach_bank_account_name - ach_routing_number - ach_account_number - ach_ownership_type - ach_account_type - ach_bank_name - default /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: '{' 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: string description: 'Must be a valid date. Must be a valid date in the format Y-m-d H:i:s. Must be a date before or equal to end_date.' example: '2021-06-29' nullable: false end_date: type: string description: 'Must be a valid date. Must be a valid date in the format Y-m-d H:i:s. Must be a date after or equal to start_date.' example: '2051-06-29' nullable: false last_days: type: number description: 'Must not be greater than 365.' example: 22 nullable: false data: type: object description: '' example: [] nullable: false 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