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' 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: start_date: '2024-01-01 00:00:00' 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: 'Kunze, Wolf and Littel' sid: 1875587019 mcc: null slug: enim-molestias-quia pub_api_key: null processor_mid: null active: true active_at: null g_pay: null a_pay: null pci_compliance: null website: null addr1: null addr2: null city: null state: null zip: null phone: null primary_phone: null primary_email: null primary_name: null properties: data: type: object properties: name: type: string example: 'Kunze, Wolf and Littel' sid: type: integer example: 1875587019 mcc: type: string example: null slug: type: string example: enim-molestias-quia pub_api_key: type: string example: null processor_mid: type: string example: null active: type: boolean example: true active_at: type: string example: null g_pay: type: string example: null a_pay: type: string example: null pci_compliance: type: string example: null website: type: string example: null addr1: type: string example: null addr2: type: string example: null city: type: string example: null state: type: string example: null zip: type: string example: null phone: type: string example: null primary_phone: type: string example: null primary_email: type: string example: null primary_name: type: string example: null 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: sid: '1234567' 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: 'Tremblay, Stanton and Kuhlman' sid: 502528144 mcc: null slug: beatae-voluptas-ipsum-qui pub_api_key: null processor_mid: null active: true active_at: null g_pay: null a_pay: null pci_compliance: null website: null addr1: null addr2: null city: null state: null zip: null phone: null primary_phone: null primary_email: null primary_name: null properties: data: type: object properties: name: type: string example: 'Tremblay, Stanton and Kuhlman' sid: type: integer example: 502528144 mcc: type: string example: null slug: type: string example: beatae-voluptas-ipsum-qui pub_api_key: type: string example: null processor_mid: type: string example: null active: type: boolean example: true active_at: type: string example: null g_pay: type: string example: null a_pay: type: string example: null pci_compliance: type: string example: null website: type: string example: null addr1: type: string example: null addr2: type: string example: null city: type: string example: null state: type: string example: null zip: type: string example: null phone: type: string example: null primary_phone: type: string example: null primary_email: type: string example: null primary_name: type: string example: null 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: name: 'Acme Inc' 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: false 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_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 primary_phone: type: string description: 'The phone of the main contact for the Merchant in e164 format.' example: '+140412345678' 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_name - primary_email - primary_phone - 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: Russel-Metz sid: 2043666377 mcc: null slug: ut-molestiae-voluptatem-aut pub_api_key: null processor_mid: null active: true active_at: null g_pay: null a_pay: null pci_compliance: null website: null addr1: null addr2: null city: null state: null zip: null phone: null primary_phone: null primary_email: null primary_name: null properties: data: type: object properties: name: type: string example: Russel-Metz sid: type: integer example: 2043666377 mcc: type: string example: null slug: type: string example: ut-molestiae-voluptatem-aut pub_api_key: type: string example: null processor_mid: type: string example: null active: type: boolean example: true active_at: type: string example: null g_pay: type: string example: null a_pay: type: string example: null pci_compliance: type: string example: null website: type: string example: null addr1: type: string example: null addr2: type: string example: null city: type: string example: null state: type: string example: null zip: type: string example: null phone: type: string example: null primary_phone: type: string example: null primary_email: type: string example: null primary_name: type: string example: null 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: sid: 99 nullable: false properties: sid: type: integer description: 'The SID of the Merchant to update.' example: 99 nullable: false 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: false 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_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 primary_phone: type: string description: 'The phone of the main contact for the Merchant in e164 format.' example: '+140412345678' nullable: false industry: type: string description: 'Must be a supported Industry name, contact Dime Payments Rep for values.' example: Church nullable: false required: - sid - name - slug - mcc - processor_config_one - website - addr1 - city - state - zip - phone - primary_name - primary_email - primary_phone - 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: sid: 69 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: sid: '12345' 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: start_date: '2021-01-01 00:00:00' 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: sid: '1234567' nullable: false properties: 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 uuid: type: string description: 'The UUID of the customer record.' example: 60dac128-28da-41ae-8632-aee299de13fd nullable: false email: type: 'email:rfc' description: 'The email of a customer. Max: 50.' example: hettinger.liam@example.org nullable: false memo: type: string description: 'A string containing memo related information, such as an invoice ID. Max: 120.' example: facere nullable: false token: type: string description: 'An optional token to be used to reference a stored card for processing' example: rerum 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: veniam 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: false billing_address: type: object description: '' example: addr1: '1234 Main St' nullable: false properties: addr1: type: string description: "The cardholder's address line 1. Max: 55." example: '1234 Main St' nullable: false addr2: type: string description: "The cardholder's address line 2. Max: 55." example: 'Suite 100' nullable: false city: type: string description: "The cardholder's city. Max: 55." example: Atlanta nullable: false state: type: string description: "The cardholder's state. Max: 2." example: NY nullable: false zip: type: numeric description: "The cardholder's ZIP code. Digits: 5." example: '10001' nullable: false required: - zip required: - sid - cardholder_name /api/transaction/charge-ach: post: summary: 'Charge a Bank Account' operationId: chargeABankAccount description: '' parameters: [] responses: 200: description: 'Successful Transaction' content: application/json: schema: type: object example: data: transaction_type: ACH transaction_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: sid: '1234567' nullable: false properties: sid: type: numeric description: 'The ID of merchant account processing the charge.' example: '1234567' nullable: false account_number: type: string description: 'The bank account number. Max: 50.' example: '91828382' nullable: false routing_number: type: string description: 'The bank account routing number. Max: 9.' example: '123456789' 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 customer_uuid: type: string description: "optional The unique UUID of the merchant's customer." example: 12312312-123123123-1231231231 nullable: false memo: type: string description: 'optional The memo field. Max: 120.' example: 'payment for something' nullable: false billing_address: type: object description: '' example: first_name: Ryan nullable: false properties: first_name: type: string description: 'The first name. Max: 50.' example: Ryan nullable: false last_name: type: string description: 'The first name. Max: 50.' example: Taylor nullable: false addr1: type: integer description: 'optional The first address line. Max: 31.' example: 123 nullable: false addr2: type: integer description: 'optional The second address line. Max: 31.' example: 0 nullable: false city: type: integer description: 'optional The city. Max: 52.' example: 0 nullable: false state: type: integer description: 'optional The state. Max: 2.' example: 0 nullable: false zip: type: integer description: 'optional The zip code. Max: 5.' example: 30009 nullable: false required: - sid - account_number - routing_number - account_type - account_name - amount /api/transaction/tokenize-card: post: summary: 'Tokenize a Credit Card' operationId: tokenizeACreditCard description: 'This endpoint allows you to tokenize a credit card, which will verify its validity and return a token representing the card that can be used for transactions. This method requires PCI compliance on the part of the affiliate or merchant.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: token: abcd1234 properties: data: type: object properties: token: type: string example: abcd1234 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: sid: '1234567' 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: false billing_address: type: object description: '' example: addr1: '1234 Main St' nullable: false properties: addr1: type: string description: "The cardholder's address line 1. Can be empty string Max: 55." example: '1234 Main St' nullable: false addr2: type: string description: "The cardholder's address line 2. Max: 55." example: 'Suite 100' nullable: false city: type: string description: "The cardholder's city.Can be empty string Max: 55." example: 'New York' nullable: false state: type: string description: "The cardholder's state.Can be empty string Max: 2." example: NY nullable: false 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: sid: '1234567' 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 att_number: type: numeric description: 'sometimes The ID of an ACH transaction.' example: quo nullable: false gateway_transaction_id: type: numeric description: 'sometimes The ID of a Credit Card transaction.' example: dolor nullable: false transaction_type: type: string description: 'Must be either "CC" or "ACH".' example: ACH 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: sid: '1234567' 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: sid: 12345 nullable: false properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 nullable: false required: - sid filters: type: object description: '' example: start_date: '2024-01-01 00:00:00' 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: 6179c86e-373b-4b9f-8110-d81a478fac76 first_name: Ruthe last_name: Price phone: '+13218056029' email: kennedy26@example.com addr1: "91022 Madalyn Run\nDewaynebury, GA 89415" addr2: "3290 Fern Station\nEast Favian, AZ 33320" addr3: "683 Edyth Loop Suite 468\nPort Rosannachester, DC 03278-4547" city: Halvorsonberg state: GA zip: 86327-0701 country: Jordan properties: data: type: object properties: uuid: type: string example: 6179c86e-373b-4b9f-8110-d81a478fac76 description: 'Unique User ID of customer' enum: [] first_name: type: string example: Ruthe description: 'First name of customer' enum: [] last_name: type: string example: Price description: 'Last name of customer' enum: [] phone: type: string example: '+13218056029' description: 'Unique phone number of customer' enum: [] email: type: string example: kennedy26@example.com description: 'Email address of customer' enum: [] addr1: type: string example: "91022 Madalyn Run\nDewaynebury, GA 89415" description: 'Address line 1 of customer' enum: [] addr2: type: string example: "3290 Fern Station\nEast Favian, AZ 33320" description: 'Address line 2 of customer' enum: [] addr3: type: string example: "683 Edyth Loop Suite 468\nPort Rosannachester, DC 03278-4547" description: 'Address line 3 of customer' enum: [] city: type: string example: Halvorsonberg description: "Customer's" enum: [] state: type: string example: GA description: "Customer's" enum: [] zip: type: string example: 86327-0701 description: "Customer's" enum: [] country: type: string example: Jordan 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: sid: 12345 nullable: false properties: sid: type: integer description: 'The SID of the Merchant.' example: 12345 nullable: false required: - sid filters: type: object description: '' example: phone: '+15555555555' 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: f9ec3a10-12e4-4cb1-b1f4-adaf274b0c2a first_name: Jeanne last_name: Kutch phone: '+16896399175' email: tatum15@example.com addr1: "72084 Mariane Green Apt. 112\nLake Bonita, MA 78247-6500" addr2: "21528 Krajcik Burg\nWest Shaneton, AL 77892" addr3: "9915 Marks Burg\nJerdeview, FL 81993-7386" city: 'East Hailiechester' state: GA zip: 28820-4070 country: Indonesia properties: data: type: object properties: uuid: type: string example: f9ec3a10-12e4-4cb1-b1f4-adaf274b0c2a description: 'The uuid of the customer.' enum: [] first_name: type: string example: Jeanne description: 'required The first name of the customer.' enum: [] last_name: type: string example: Kutch description: 'required The last name of the customer.' enum: [] phone: type: string example: '+16896399175' description: 'required The phone number of the customer.' enum: [] email: type: string example: tatum15@example.com description: "required Customer's email." enum: [] addr1: type: string example: "72084 Mariane Green Apt. 112\nLake Bonita, MA 78247-6500" description: "Customer's address line 1" enum: [] addr2: type: string example: "21528 Krajcik Burg\nWest Shaneton, AL 77892" description: "Customer's address line 2" enum: [] addr3: type: string example: "9915 Marks Burg\nJerdeview, FL 81993-7386" description: "Customer's address line 3" enum: [] city: type: string example: 'East Hailiechester' description: "Customer's" enum: [] state: type: string example: GA description: "Customer's" enum: [] zip: type: string example: 28820-4070 description: "Customer's" enum: [] country: type: string example: Indonesia 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: qui nullable: false last_name: type: string description: "Customer's last name" example: aut nullable: false company_name: type: string description: 'optional Name of Merchant that customer interacts with' example: ut nullable: false phone: type: required description: "Customer's unique phone number" example: vero nullable: false email: type: required description: "Customer's unique email" example: karine.farrell@example.net nullable: false addr1: type: optional description: "Customer's address line 1" example: et nullable: false addr2: type: optional description: "Customer's address line 2" example: quis nullable: false addr3: type: optional description: "Customer's address line 3" example: unde nullable: false city: type: optional description: "Customer's city" example: impedit nullable: false state: type: optional description: "Customer's state" example: cumque nullable: false zip: type: optional description: "Customer's zip code" example: ipsa nullable: false 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: 287ef423-79c5-4b52-b48b-8fb9189c905c first_name: Cali last_name: Sanford phone: '+19729658798' email: favian32@example.net addr1: "2361 Maybelle Loop Apt. 764\nNorth Eldoraland, VT 30202" addr2: "2553 Kreiger Knoll Apt. 356\nMargaritamouth, OK 45230-9578" addr3: "878 Cassidy Path Apt. 996\nEast Elmira, SD 65611-8387" city: Botsfordland state: GA zip: 52051-1070 country: Belarus properties: data: type: object properties: uuid: type: string example: 287ef423-79c5-4b52-b48b-8fb9189c905c description: 'The UUID of the customer.' enum: [] first_name: type: string example: Cali description: 'The first name of the customer.' enum: [] last_name: type: string example: Sanford description: 'The last name of the customer.' enum: [] phone: type: string example: '+19729658798' description: 'Unique phone number of customer' enum: [] email: type: string example: favian32@example.net description: 'Email address of customer' enum: [] addr1: type: string example: "2361 Maybelle Loop Apt. 764\nNorth Eldoraland, VT 30202" description: 'Address line 1 of customer' enum: [] addr2: type: string example: "2553 Kreiger Knoll Apt. 356\nMargaritamouth, OK 45230-9578" description: 'Address line 2 of customer' enum: [] addr3: type: string example: "878 Cassidy Path Apt. 996\nEast Elmira, SD 65611-8387" description: 'Address line 3 of customer' enum: [] city: type: string example: Botsfordland description: "Customer's" enum: [] state: type: string example: GA description: "Customer's" enum: [] zip: type: string example: 52051-1070 description: "Customer's" enum: [] country: type: string example: Belarus 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 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 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: non nullable: false last_name: type: optional description: "Customer's last name" example: temporibus nullable: false company_name: type: optional description: 'Name of Merchant that customer interacts with' example: pariatur nullable: false phone: type: optional description: "Customer's unique phone number" example: minus nullable: false email: type: optional description: "Customer's unique email" example: marques34@example.org nullable: false addr1: type: optional description: "Customer's address line 1" example: perspiciatis nullable: false addr2: type: optional description: "Customer's address line 2" example: excepturi nullable: false addr3: type: optional description: "Customer's address line 3" example: a nullable: false city: type: optional description: "Customer's city" example: rerum nullable: false state: type: optional description: "Customer's state" example: assumenda nullable: false zip: type: optional description: "Customer's zip code" example: culpa nullable: false 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: 1ca42e39-b4f7-4bd6-bb24-8148c57ac93a first_name: Harley last_name: Labadie phone: '+15349100744' email: lbatz@example.com addr1: "1538 Jabari Via\nRomaineland, ME 82899-1417" addr2: "8512 Danielle Square\nWest Earlbury, FL 63985-8386" addr3: "2238 Lang Trail Suite 565\nNicholauston, IN 68184" city: Brennaberg state: GA zip: '04998' country: Madagascar properties: data: type: object properties: uuid: type: string example: 1ca42e39-b4f7-4bd6-bb24-8148c57ac93a first_name: type: string example: Harley last_name: type: string example: Labadie phone: type: string example: '+15349100744' email: type: string example: lbatz@example.com addr1: type: string example: "1538 Jabari Via\nRomaineland, ME 82899-1417" addr2: type: string example: "8512 Danielle Square\nWest Earlbury, FL 63985-8386" addr3: type: string example: "2238 Lang Trail Suite 565\nNicholauston, IN 68184" city: type: string example: Brennaberg state: type: string example: GA zip: type: string example: '04998' country: type: string example: Madagascar - 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: phone: '+15555555555' 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 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: error nullable: false last_name: type: optional description: "Customer's last name" example: eum nullable: false company_name: type: optional description: 'Name of Merchant that customer belongs to' example: non nullable: false phone: type: optional description: "Customer's unique phone number" example: molestiae nullable: false email: type: optional description: "Customer's unique email" example: raymundo83@example.com nullable: false addr1: type: optional description: "Customer's address line 1" example: minima nullable: false addr2: type: optional description: "Customer's address line 2" example: minima nullable: false addr3: type: optional description: "Customer's address line 3" example: rem nullable: false city: type: optional description: "Customer's city" example: ut nullable: false state: type: optional description: "Customer's state" example: omnis nullable: false zip: type: optional description: "Customer's zip code" example: blanditiis nullable: false required: - sid required: - data /api/deposits: 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: sid: '91828382' nullable: false properties: sid: type: string description: 'The ID of the merchant.' example: '91828382' nullable: false required: - sid filters: type: object description: '' example: start_date: '"2024-04-01 00:00:00"' 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/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: phone: '+15551237890' nullable: false properties: phone: type: string description: 'Phone number of the customer. Must be in e.164 format.' example: '+15551237890' nullable: false email: type: string description: 'Email of the customer. Must be in rfc compliant.' example: an-email@domain.com nullable: false uuid: type: string description: 'UUID of the customer. Must be in uuid format.' example: 3c37db03-dc71-4e8b-90e7-6668290b7c3d nullable: false data: type: object description: '' example: sid: 12345 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 addr1: type: string description: 'Address Line One. Max: 75.' example: '123 First St.' nullable: false addr2: type: string description: 'Address Line Two. Max: 50.' example: 'Suite 111' nullable: false city: type: string description: 'City name. Max: 75.' example: Alpharetta nullable: false state: type: string description: 'Two character State. Max: 2.' example: GA nullable: false zip: type: string description: 'Zip code. Digits: 5.' example: '30009' nullable: false required: - sid - type - 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 /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: 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: non 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 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: []