Dime Payments API Documentation

Postman collection → OpenAPI spec →

Introduction

A simple, basic API for managing Merchants through Dime Payments. JSON based REST API

This documentation aims to provide all the information you need to work with our API.

<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

You can retrieve your token by visiting your dashboard and clicking Generate API token under your profile in top right.

Merchant management

List Merchants

GET
https://app.dimepayments.com
/api/merchant/list
requires authentication

Get a list of all merchants and their fields

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/merchant/list" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"filters\": {
        \"start_date\": \"2024-01-01 00:00:00\",
        \"end_date\": \"2024-12-31 23:59:59\"
    }
}"
Example response:
{
    "data": [
        {
            "name": "Dime Payments",
            "dba": "",
            "notes": "",
            "sid": "00001",
            "ein": "",
            "mcc": "8999",
            "slug": "pay",
            "pub_api_key": "pkapi_prod_B5n2hQhy6uAp1rLjqs",
            "processor_mid": "650000012366624",
            "active": true,
            "active_at": null,
            "pending_cancellation": null,
            "approved_cancellation": null,
            "approved_cancellation_by": null,
            "g_pay": false,
            "a_pay": false,
            "pci_compliance": true,
            "api_access": "2025-05-20T12:43:00.000000Z",
            "api_enabled_by_id": 1,
            "website": "https://dimepayments.com",
            "addr1": "53 S. Main St",
            "addr2": "",
            "addr3": "",
            "city": "Alpharetta",
            "state": "GA",
            "zip": "30009",
            "phone": "4049064975",
            "primary_phone": "4049064975",
            "primary_email": "[email protected]",
            "primary_name": "Ben Habeck"
        },
        {
            "name": "Dime Payments",
            "dba": "",
            "notes": "",
            "sid": "00001",
            "ein": "",
            "mcc": "8999",
            "slug": "pay",
            "pub_api_key": "pkapi_prod_B5n2hQhy6uAp1rLjqs",
            "processor_mid": "650000012366624",
            "active": true,
            "active_at": null,
            "pending_cancellation": null,
            "approved_cancellation": null,
            "approved_cancellation_by": null,
            "g_pay": false,
            "a_pay": false,
            "pci_compliance": true,
            "api_access": "2025-05-20T12:43:00.000000Z",
            "api_enabled_by_id": 1,
            "website": "https://dimepayments.com",
            "addr1": "53 S. Main St",
            "addr2": "",
            "addr3": "",
            "city": "Alpharetta",
            "state": "GA",
            "zip": "30009",
            "phone": "4049064975",
            "primary_phone": "4049064975",
            "primary_email": "[email protected]",
            "primary_name": "Ben Habeck"
        }
    ]
}
{
    "errors": {
        "filters.start_date": [
            "The filters.start_date field must be a valid date."
        ]
    }
}
{
    "message": "Permission Denied."
}

Show a specific Merchant's Details

GET
https://app.dimepayments.com
/api/merchant/show
requires authentication

List all non-protected fields for a merchant. Other fields are available using their specific requests.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/merchant/show" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 1234567
    }
}"
Example response:
{
    "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": "[email protected]",
        "primary_name": "Ben Habeck"
    }
}
{
    "errors": {
        "filters.start_date": [
            "The filters.start_date field must be a valid date."
        ]
    }
}
{
    "message": "Permission Denied."
}

Create Merchant

POST
https://app.dimepayments.com
/api/merchant/create
requires authentication

Create a merchant record which can be used for generating an application.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/merchant/create" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"name\": \"Acme Inc\",
        \"slug\": \"acme-inc\",
        \"mcc\": 8661,
        \"website\": \"https:\\/\\/acme-inc.com\",
        \"addr1\": \"123 4th Street\",
        \"addr2\": \"Suite 5\",
        \"city\": \"Alpharetta\",
        \"state\": \"GA\",
        \"zip\": 30009,
        \"phone\": \"+177012345678\",
        \"primary_phone\": \"+140412345678\",
        \"primary_name\": \"John Doe\",
        \"primary_email\": \"[email protected]\",
        \"industry\": \"Church\"
    }
}"
Example response:
{
    "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": "[email protected]",
        "primary_name": "Ben Habeck"
    }
}
{
    "errors": {
        "data.phone": [
            "The data.phone field is required."
        ]
    }
}
{
    "data": {
        "message": "Something went wrong: contact Dime Payments Rep"
    }
}
{
    "message": "Permission Denied."
}

Update a specific Merchant's Details

PATCH
https://app.dimepayments.com
/api/merchant/update
requires authentication

Update a Merchant's details.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request PATCH \
    "https://app.dimepayments.com/api/merchant/update" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 99,
        \"slug\": \"acme-inc\",
        \"name\": \"Acme Inc\",
        \"mcc\": 8661,
        \"website\": \"https:\\/\\/acme-inc.com\",
        \"addr1\": \"123 4th Street\",
        \"addr2\": \"Suite 5\",
        \"city\": \"Alpharetta\",
        \"state\": \"GA\",
        \"zip\": 30009,
        \"phone\": \"+177012345678\",
        \"primary_phone\": \"+140412345678\",
        \"primary_name\": \"John Doe\",
        \"primary_email\": \"[email protected]\",
        \"industry\": \"Church\"
    }
}"
Example response:
{
    "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": "[email protected]",
        "primary_name": "Ben Habeck"
    }
}
{
    "errors": {
        "data.phone": [
            "The data.phone field is required."
        ]
    }
}
{
    "data": {
        "message": "Something went wrong: contact Dime Payments Rep"
    }
}
{
    "message": "Permission Denied."
}
GET
https://app.dimepayments.com
/api/merchant/get-form-link
requires authentication

Passed a merchant's ID, returns a full URL to the application for processor approval. This link expires in 48 hours.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/merchant/get-form-link" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 69
    }
}"
Example response:

Transaction management

APIs for managing transactions. Depending on API KEY permissions, one should be able to charge credit cards, ACH, Google/Apple Pay wallets along with other functions.

List Transactions

GET
https://app.dimepayments.com
/api/transactions
requires authentication

Retrieves a list of transactions for a given Merchant, filtered by various parameters.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/transactions" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": \"12345\"
    },
    \"filters\": {
        \"start_date\": \"2021-01-01 00:00:00\",
        \"end_date\": \"2021-12-31 23:59:59\",
        \"sweep_id\": \"sweep_123*\",
        \"customer_uuid\": \"cust_456\"
    }
}"
Example response:
{
    "data": [
        {
            "transaction_type": "CC",
            "transaction_status": "CC_CREDIT",
            "transaction_status_description": "Successful credit/debit card transaction that brings funds into the ProPay Account.",
            "transaction_number": "741046715",
            "transaction_date": "2023-02-15T19:14:44.000000Z",
            "fund_date": "2023-02-17T05:05:35.000000Z",
            "settle_date": "2023-03-24T11:30:04.000000Z",
            "amount": "1.0000",
            "description": "",
            "status_code": "",
            "status_text": "",
            "email": "",
            "phone": "",
            "customer_uuid": "",
            "multi_use_token": "",
            "pending": false,
            "transaction_info_id": "789161791",
            "parent_transaction_info_id": "",
            "billing_address": {
                "first_name": null,
                "last_name": null,
                "addr1": null,
                "addr2": null,
                "city": null,
                "state": null,
                "zip": null
            },
            "shippingAddress": {
                "addr1": null,
                "addr2": null,
                "city": null,
                "state": null,
                "zip": null
            }
        },
        {
            "transaction_type": "CC",
            "transaction_status": "CC_CREDIT",
            "transaction_status_description": "Successful credit/debit card transaction that brings funds into the ProPay Account.",
            "transaction_number": "741046715",
            "transaction_date": "2023-02-15T19:14:44.000000Z",
            "fund_date": "2023-02-17T05:05:35.000000Z",
            "settle_date": "2023-03-24T11:30:04.000000Z",
            "amount": "1.0000",
            "description": "",
            "status_code": "",
            "status_text": "",
            "email": "",
            "phone": "",
            "customer_uuid": "",
            "multi_use_token": "",
            "pending": false,
            "transaction_info_id": "789161791",
            "parent_transaction_info_id": "",
            "billing_address": {
                "first_name": null,
                "last_name": null,
                "addr1": null,
                "addr2": null,
                "city": null,
                "state": null,
                "zip": null
            },
            "shippingAddress": {
                "addr1": null,
                "addr2": null,
                "city": null,
                "state": null,
                "zip": null
            }
        }
    ],
    "links": {
        "prev": null,
        "next": null
    },
    "meta": {
        "path": "/",
        "per_page": 15,
        "next_cursor": null,
        "prev_cursor": null
    }
}
{
    "errors": {
        "filters.start_date": [
            "The filters.start_date field must be a valid date."
        ]
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "Unauthorized"
    }
}
{
    "data": {
        "message": "Not associated with affiliate"
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "No transactions found"
    }
}

Charge a Credit Card

POST
https://app.dimepayments.com
/api/transaction/charge-card
requires authentication

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 representing the card that can be used for transactions as well as the transactionId and the customerUUID if requested. If 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. You 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.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/transaction/charge-card" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"amount\": 4326.41688,
        \"sid\": 1234567,
        \"phone\": \"+177012345678\",
        \"customer_uuid\": \"977e5426-8d13-3824-86aa-b092f8ae52c5\",
        \"email\": \"[email protected]\",
        \"memo\": \"architecto\",
        \"token\": \"abc123\",
        \"cardholder_name\": \"John Doe\",
        \"card_number\": 1231231231231231,
        \"expiration_date\": \"01\\/2025\",
        \"cvv\": 123,
        \"billing_address\": {
            \"first_name\": \"m\",
            \"last_name\": \"i\",
            \"addr1\": \"1234 Main St\",
            \"addr2\": \"Suite 100\",
            \"city\": \"Atlanta\",
            \"state\": \"NY\",
            \"zip\": 10001
        },
        \"shipping_address\": {
            \"addr1\": \"123 A Street\",
            \"addr2\": \"Suite 123\",
            \"city\": \"Alpharetta\",
            \"state\": \"GA\",
            \"zip\": 0
        },
        \"uuid\": \"60dac128-28da-41ae-8632-aee299de13fd\"
    }
}"
Example response:
{
    "data": {
        "transaction_type": "Credit Card",
        "transaction_status": "Success",
        "transaction_status_description": "Transaction Successful",
        "transaction_number": "1234567890",
        "transaction_date": "2020-01-01",
        "fund_date": "2020-01-01",
        "settle_date": "2020-01-01",
        "amount": "100.00",
        "description": "a memo concerning this transaction",
        "status_code": "00",
        "status_text": "APPROVAL",
        "email": "[email protected]",
        "phone": "+17701234567",
        "customer_uuid": "66f1c230-1337-5g59-b43c-1bcb83adfaaa",
        "multi_use_token": "abcdefg123456790",
        "pending": true,
        "transaction_info_id": "1234567890",
        "parent_transaction_info_id": "1234567890",
        "billing_address": {
            "first_name": "John",
            "last_name": "Doe",
            "addr1": "123 Main St",
            "addr2": "Suite 100",
            "city": "New York",
            "state": "NY"
        },
        "shipping_address": {
            "addr1": "12 Street Ave",
            "addr2": "Suite 123",
            "city": "Boulder",
            "state": "CO",
            "zip": "80302"
        }
    }
}
{
    "errors": {
        "sid": [
            "The sid is required."
        ]
    }
}
{
    "data": {
        "transaction_type": "Credit Card",
        "transaction_status": "Failed",
        "transaction_status_description": "Transaction failed",
        "transaction_number": "1234567890",
        "transaction_date": "2020-01-01",
        "fund_date": "2020-01-01",
        "settle_date": "2020-01-01",
        "amount": "100.00",
        "description": "a memo concerning this transaction",
        "status_code": "05",
        "status_text": "DECLINE",
        "email": "[email protected]",
        "phone": "+17701234567",
        "customer_uuid": "66f1c230-1337-5g59-b43c-1bcb83adfaaa",
        "multi_use_token": "abcdefg123456790",
        "pending": true,
        "transaction_info_id": "1234567890",
        "parent_transaction_info_id": "1234567890",
        "billing_address": {
            "first_name": "John",
            "last_name": "Doe",
            "addr1": "123 Main St",
            "addr2": "Suite 100",
            "city": "New York",
            "state": "NY"
        },
        "shipping_address": {
            "addr1": "12 Street Ave",
            "addr2": "Suite 123",
            "city": "Boulder",
            "state": "CO",
            "zip": "80302"
        }
    }
}
{
    "message": "Permission Denied."
}

Charge a Bank Account

POST
https://app.dimepayments.com
/api/transaction/charge-ach
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/transaction/charge-ach" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 1234567,
        \"routing_number\": \"123456789\",
        \"account_number\": \"91828382\",
        \"account_type\": \"Checking\",
        \"account_name\": \"Acme Inc.\",
        \"amount\": 99.19,
        \"phone\": \"7701234567\",
        \"customer_uuid\": \"12312312-123123123-1231231231\",
        \"email\": \"[email protected]\",
        \"memo\": \"payment for something\",
        \"billing_address\": {
            \"first_name\": \"Ryan\",
            \"last_name\": \"Taylor\",
            \"addr1\": \"123 A Street\",
            \"addr2\": \"Suite 123\",
            \"city\": \"Alpharetta\",
            \"state\": \"GA\",
            \"zip\": 30009
        },
        \"shipping_address\": {
            \"addr1\": \"123 A Street\",
            \"addr2\": \"Suite 123\",
            \"city\": \"Alpharetta\",
            \"state\": \"GA\",
            \"zip\": 12345
        }
    }
}"
Example response:
{
    "data": {
        "transaction_type": "ACH",
        "transaction_status": "Success",
        "transaction_status_description": "Success",
        "transaction_number": "130",
        "transaction_date": "2021-01-01",
        "fund_date": "2021-01-01",
        "settle_date": "2021-01-01",
        "amount": "25",
        "description": "",
        "status_code": "00",
        "status_text": "Success",
        "email": "[email protected]",
        "phone": "",
        "customer_uuid": "",
        "multi_use_token": "",
        "pending": false,
        "transaction_info_id": "1234567890",
        "parent_transaction_info_id": "1234567890",
        "billing_address": {
            "first_name": "First",
            "last_name": "Last",
            "addr1": "12 Street Ave",
            "addr2": "Suite 123",
            "city": "Boulder",
            "state": "CO",
            "zip": "80302"
        },
        "shipping_address": {
            "addr1": "12 Street Ave",
            "addr2": "Suite 123",
            "city": "Boulder",
            "state": "CO",
            "zip": "80302"
        }
    }
}
{
    "errors": {
        "data.amount": [
            "The data.amount field is required."
        ],
        "data.account_type": [
            "The selected data.account_type is invalid."
        ]
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "Unauthorized"
    }
}
{
    "data": {
        "message": "Not associated with affiliate"
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}

Tokenize a Credit Card

POST
https://app.dimepayments.com
/api/transaction/tokenize-card
requires authentication

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.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/transaction/tokenize-card" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 1234567,
        \"cardholder_name\": \"John Doe\",
        \"card_number\": 1234567812345678,
        \"expiration_date\": \"01\\/2025\",
        \"cvv\": 123,
        \"billing_address\": {
            \"addr1\": \"1234 Main St\",
            \"addr2\": \"Suite 100\",
            \"city\": \"New York\",
            \"state\": \"NY\",
            \"zip\": 10001
        }
    }
}"
Example response:
{
    "data": {
        "token": "abcd1234"
    }
}
{
    "errors": {
        "card_number": [
            "The card number must be a number."
        ]
    }
}
{
    "data": {
        "message": "Validation of card failed."
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}

Show Transaction

GET
https://app.dimepayments.com
/api/transaction
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/transaction" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 1234567,
        \"transaction_info_id\": 6789131231,
        \"transaction_type\": \"ACH\",
        \"transaction_id\": 123
    }
}"
Example response:
{
    "data": {
        "transaction_type": "CC",
        "transaction_status": "CC Pending",
        "transaction_status_description": "A cc transaction that is pending",
        "transaction_number": "1231",
        "transaction_date": "2021-01-01",
        "fund_date": "2021-01-01",
        "settle_date": "2021-01-01",
        "amount": "25.0000",
        "description": "",
        "status_code": "",
        "status_text": "",
        "email": "",
        "phone": "",
        "customer_uuid": "68d9feaa-04a9-4c48-8c00-a0b79c8b2f70",
        "multi_use_token": "",
        "pending": true,
        "transaction_info_id": "1231321",
        "parent_transaction_info_id": "12313244444",
        "billing_address": {
            "first_name": "",
            "last_name": "",
            "addr1": "",
            "addr2": "",
            "city": "",
            "state": "",
            "zip": ""
        },
        "shipping_address": {
            "addr1": "123 Main St",
            "addr2": "apt 1",
            "city": "Alpharetta",
            "state": "GA",
            "zip": "12345"
        }
    }
}
{
    "errors": {
        "data.sid": [
            "The data.sid is not the correct format."
        ]
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "User not associated with the affiliate."
    }
}
{
    "data": {
        "message": "No transaction found"
    }
}

Refund Transaction

POST
https://app.dimepayments.com
/api/transaction/refund
requires authentication

Processes a refund for a transaction based on the provided data.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/transaction/refund" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 1234567,
        \"amount\": 100.5,
        \"transaction_info_id\": 6789131231,
        \"transaction_type\": \"CC\",
        \"transaction_id\": 6789131231
    }
}"
Example response:
{
    "data": {
        "message": "refund"
    }
}
{
    "errors": {
        "data.sid": [
            "The sid field is required."
        ],
        "data.transaction_info_id": [
            "The selected transaction_info_id is invalid."
        ]
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Error processing refund"
    }
}
{
    "data": {
        "message": "Unsupported processor."
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}

Void Transaction

PATCH
https://app.dimepayments.com
/api/transaction/void
requires authentication

Void a transaction

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request PATCH \
    "https://app.dimepayments.com/api/transaction/void" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": \"91828382\",
        \"transaction_type\": \"ACH\",
        \"transaction_id\": 123
    }
}"
Example response:
{
    "data": {
        "message": "Transaction voided successfully"
    }
}
{
    "errors": {
        "data.sid": [
            "The data.sid is not the correct format."
        ]
    }
}
{
    "data": {
        "message": "No transaction found"
    }
}
{
    "data": {
        "message": "Unsupported Processor"
    }
}
{
    "data": {
        "message": "Transaction cannot be voided"
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "User not associated with the affiliate."
    }
}

Addresses

APIs for managing customer addresses

List Addresses

GET
https://app.dimepayments.com
/api/address/list
requires authentication

List all addresses for a specific customer.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/address/list" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 12345,
        \"uuid\": \"60dac128-28da-41ae-8632-aee299de13fd\"
    }
}"
Example response:
{
    "data": [
        [
            {
                "id": 1,
                "recipient": null,
                "line_one": "",
                "line_two": null,
                "line_three": null,
                "city": "",
                "state": "",
                "zip": ""
            },
            {
                "id": 1,
                "recipient": null,
                "line_one": "",
                "line_two": null,
                "line_three": null,
                "city": "",
                "state": "",
                "zip": ""
            }
        ]
    ]
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Customer"
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}

Show Address

GET
https://app.dimepayments.com
/api/address/show
requires authentication

Show details of a specific address.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/address/show" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 12345,
        \"uuid\": \"60dac128-28da-41ae-8632-aee299de13fd\",
        \"address_id\": 1
    }
}"
Example response:
{
    "data": {
        "address_id": 1,
        "recipient": null,
        "line_one": "",
        "line_two": null,
        "line_three": null,
        "city": "",
        "state": "",
        "zip": ""
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Address"
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "No such Customer"
    }
}

Create Address

POST
https://app.dimepayments.com
/api/address/create
requires authentication

Create a new address for a customer.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/address/create" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 12345,
        \"uuid\": \"60dac128-28da-41ae-8632-aee299de13fd\",
        \"recipient\": \"John Doe\",
        \"line_one\": \"123 Main St\",
        \"line_two\": \"Apt 4B\",
        \"line_three\": \"architecto\",
        \"city\": \"Atlanta\",
        \"state\": \"GA\",
        \"zip\": \"30301\"
    }
}"
Example response:
{
    "data": {
        "address_id": 1,
        "recipient": null,
        "line_one": "",
        "line_two": null,
        "line_three": null,
        "city": "",
        "state": "",
        "zip": ""
    }
}
{
    "data": {
        "message": "Failed to create address"
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "No such Customer"
    }
}

Update Address

PATCH
https://app.dimepayments.com
/api/address/update
requires authentication

Update an existing address.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request PATCH \
    "https://app.dimepayments.com/api/address/update" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 12345,
        \"uuid\": \"60dac128-28da-41ae-8632-aee299de13fd\",
        \"address_id\": 1,
        \"recipient\": \"John Doe\",
        \"line_one\": \"123 Main St\",
        \"line_two\": \"Apt 4B\",
        \"line_three\": \"architecto\",
        \"city\": \"Atlanta\",
        \"state\": \"GA\",
        \"zip\": \"30301\"
    }
}"
Example response:
{
    "data": {
        "address_id": 1,
        "recipient": null,
        "line_one": "",
        "line_two": null,
        "line_three": null,
        "city": "",
        "state": "",
        "zip": ""
    }
}
{
    "data": {
        "message": "Failed to update address"
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "No such Customer"
    }
}

Delete Address

POST
https://app.dimepayments.com
/api/address/delete
requires authentication

Remove an address from a customer.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/address/delete" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 12345,
        \"uuid\": \"60dac128-28da-41ae-8632-aee299de13fd\",
        \"address_id\": 1
    }
}"
Example response:
{
    "data": {
        "message": "Address deleted successfully"
    }
}
{
    "data": {
        "message": "Unable to delete"
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Address"
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "No such Customer"
    }
}

Customer management

APIs for managing customers. Depending on API KEY permissions, one should be able to list, create, update, and delete customers along with several other customer specific requests.

List Customers

GET
https://app.dimepayments.com
/api/customer/list
requires authentication

Retrieves a list of customers for a given company, filtered by various parameters.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/customer/list" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 12345
    },
    \"filters\": {
        \"start_date\": \"2024-01-01 00:00:00\",
        \"end_date\": \"2024-12-31 23:59:59\",
        \"phone\": \"+15555555555\",
        \"email\": \"[email protected]\"
    }
}"
Example response:
{
    "data": [
        [
            {
                "id": 6,
                "uuid": "66f1c230-68cf-4d58-b47c-1bcb83adfddd",
                "first_name": "Ryan",
                "last_name": "Taylor",
                "company_name": "",
                "phone": "+17707892072",
                "phone_verified_at": null,
                "email": "[email protected]",
                "email_verified_at": null,
                "addr1": "4655 Hwy 136 W",
                "addr2": "",
                "addr3": "",
                "city": "Dawsonville",
                "state": "GA",
                "zip": "30534",
                "country": "USA",
                "email_communications": true,
                "sms_communications": false,
                "payment_reminders": true,
                "last_login_at": "2026-04-28T20:45:43.000000Z",
                "last_login_ip": "69.85.118.154"
            },
            {
                "id": 6,
                "uuid": "66f1c230-68cf-4d58-b47c-1bcb83adfddd",
                "first_name": "Ryan",
                "last_name": "Taylor",
                "company_name": "",
                "phone": "+17707892072",
                "phone_verified_at": null,
                "email": "[email protected]",
                "email_verified_at": null,
                "addr1": "4655 Hwy 136 W",
                "addr2": "",
                "addr3": "",
                "city": "Dawsonville",
                "state": "GA",
                "zip": "30534",
                "country": "USA",
                "email_communications": true,
                "sms_communications": false,
                "payment_reminders": true,
                "last_login_at": "2026-04-28T20:45:43.000000Z",
                "last_login_ip": "69.85.118.154"
            }
        ]
    ]
}
{
    "message": "Validation errors"
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "Merchant or Affiliate check failed"
    }
}

Show Customer

GET
https://app.dimepayments.com
/api/customer/show
requires authentication

Show a specific customer's details

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/customer/show" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 12345
    },
    \"filters\": {
        \"phone\": \"+15555555555\",
        \"email\": \"[email protected]\",
        \"uuid\": \"60dac128-28da-41ae-8632-aee299de13fd\"
    }
}"
Example response:
{
    "data": {
        "uuid": "66f1c230-68cf-4d58-b47c-1bcb83adfddd",
        "first_name": "Ryan",
        "last_name": "Taylor",
        "phone": "+17707892072",
        "email": "[email protected]",
        "addr1": "4655 Hwy 136 W",
        "addr2": "",
        "addr3": "",
        "city": "Dawsonville",
        "state": "GA",
        "zip": "30534",
        "country": "USA"
    }
}
{
    "message": "Validation errors"
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "Merchant or Affiliate check failed"
    }
}

Create Customer

POST
https://app.dimepayments.com
/api/customer/create
requires authentication

Create a customer record linked to your Company/Merchant.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/customer/create" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 12345,
        \"first_name\": \"architecto\",
        \"last_name\": \"architecto\",
        \"company_name\": \"architecto\",
        \"phone\": \"architecto\",
        \"email\": \"[email protected]\",
        \"addr1\": \"architecto\",
        \"addr2\": \"architecto\",
        \"addr3\": \"architecto\",
        \"city\": \"architecto\",
        \"state\": \"architecto\",
        \"zip\": \"architecto\",
        \"country\": \"n\"
    }
}"
Example response:
{
    "data": {
        "uuid": "66f1c230-68cf-4d58-b47c-1bcb83adfddd",
        "first_name": "Ryan",
        "last_name": "Taylor",
        "phone": "+17707892072",
        "email": "[email protected]",
        "addr1": "4655 Hwy 136 W",
        "addr2": "",
        "addr3": "",
        "city": "Dawsonville",
        "state": "GA",
        "zip": "30534",
        "country": "USA"
    }
}
{
    "message": "Validation errors"
}
{
    "message": "Failed to create Customer"
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "Merchant or Affiliate check failed"
    }
}

Update Customer

PATCH
https://app.dimepayments.com
/api/customer/update
requires authentication

Update a customer record. Make changes to the customer referenced by UUID, phone number, or email. One of the filters is required to be provided to select a unique customer. Only pass the fields that require updating in the data object.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request PATCH \
    "https://app.dimepayments.com/api/customer/update" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"filters\": {
        \"phone\": \"+15555555555\",
        \"uuid\": \"60dac128-28da-41ae-8632-aee299de13fd\",
        \"email\": \"[email protected]\"
    },
    \"data\": {
        \"sid\": 12345,
        \"first_name\": \"architecto\",
        \"last_name\": \"architecto\",
        \"company_name\": \"architecto\",
        \"addr1\": \"architecto\",
        \"addr2\": \"architecto\",
        \"addr3\": \"architecto\",
        \"city\": \"architecto\",
        \"state\": \"architecto\",
        \"zip\": \"architecto\",
        \"country\": \"n\"
    }
}"
Example response:
{
    "data": {
        "uuid": "66f1c230-68cf-4d58-b47c-1bcb83adfddd",
        "first_name": "Ryan",
        "last_name": "Taylor",
        "phone": "+17707892072",
        "email": "[email protected]",
        "addr1": "4655 Hwy 136 W",
        "addr2": "",
        "addr3": "",
        "city": "Dawsonville",
        "state": "GA",
        "zip": "30534",
        "country": "USA"
    }
}
{
    "message": "Validation errors"
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "Merchant or Affiliate check failed"
    }
}

Delete Customer

POST
https://app.dimepayments.com
/api/customer/delete
requires authentication

Delete a customer record from the selected Merchant. One of the filters is required to select a unique customer. This will also cancel any recurring payments associated with the customer for your company.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/customer/delete" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"filters\": {
        \"phone\": \"+15555555555\",
        \"uuid\": \"60dac128-28da-41ae-8632-aee299de13fd\",
        \"email\": \"[email protected]\"
    },
    \"data\": {
        \"sid\": 12345
    }
}"
Example response:
{
    "data": {
        "uuid": "66f1c230-68cf-4d58-b47c-1bcb83adfddd",
        "first_name": "Ryan",
        "last_name": "Taylor",
        "phone": "+17707892072",
        "email": "[email protected]",
        "addr1": "4655 Hwy 136 W",
        "addr2": "",
        "addr3": "",
        "city": "Dawsonville",
        "state": "GA",
        "zip": "30534",
        "country": "USA"
    }
}
{
    "data": {
        "message": "Customer removed successfully"
    }
}
{
    "message": "Validation errors"
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "Merchant or Affiliate check failed"
    }
}

Deposit management

List Deposits

GET
https://app.dimepayments.com
/api/deposit/list
requires authentication

Get Deposits from Merchant Account with supporting transactions

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/deposit/list" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": \"91828382\"
    },
    \"filters\": {
        \"start_date\": \"\\\"2024-04-01 00:00:00\\\"\",
        \"end_date\": \"\\\"2024-04-01 23:59:59\\\"\"
    }
}"
Example response:
{
    "data": [
        {
            "transaction_date": "2023-02-15T19:14:44.000000Z",
            "fund_date": "2023-02-17 00:05:35",
            "transaction_info_id": "789161791",
            "transaction_id": "1",
            "transaction_detail_account": "1005",
            "authorization_amount": "1.0000",
            "net_amount": "0.7200",
            "sweep_id": "125068038",
            "type": "withdraw_funds"
        },
        {
            "transaction_date": "2023-02-15T19:14:44.000000Z",
            "fund_date": "2023-02-17 00:05:35",
            "transaction_info_id": "789161791",
            "transaction_id": "1",
            "transaction_detail_account": "1005",
            "authorization_amount": "1.0000",
            "net_amount": "0.7200",
            "sweep_id": "125068038",
            "type": "withdraw_funds"
        }
    ],
    "links": {
        "prev": null,
        "next": null
    },
    "meta": {
        "path": "/",
        "per_page": 15,
        "next_cursor": null,
        "prev_cursor": null
    }
}
{
    "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."
        ]
    }
}
{
    "message": "Permission Denied."
}
{
    "message": "Not associated with Affiliate"
}
{
    "message": "The selected data.sid is invalid"
}
{
    "message": "Unauthorized"
}
{
    "message": "No deposits found"
}

List Deposits with Supporting Trans

GET
https://app.dimepayments.com
/api/deposit/list-with-trans
requires authentication

Get Deposits from Merchant Account with supporting transactions. Could result in large datasets if range is too large.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/deposit/list-with-trans" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": \"91828382\"
    },
    \"filters\": {
        \"start_date\": \"2024-05-01 00:00:00\",
        \"end_date\": \"2024-05-01 00:00:00\"
    }
}"
Example response:
{
    "data": {
        "sid": "XXXXX",
        "count": 1,
        "deposits": {
            "128298672": {
                "sid": "XXXXX",
                "transaction_info_id": "983999999",
                "transaction_id": "382",
                "transaction_date": "2024-05-01T04:00:00.000000Z",
                "fund_date": "2024-05-01 02:20:35",
                "type": "withdraw_funds",
                "countOfTransactions": 3,
                "transTotal": "545.98",
                "transactions": [
                    {
                        "transaction_type": "ACH",
                        "transaction_status": "ACH_PAYMENT_CREDIT",
                        "transaction_status_description": "Successfully completed ACH Payment that has been posted to the Escrow Account.",
                        "transaction_number": "369",
                        "transaction_date": "2024-04-29T08:30:25.000000Z",
                        "fund_date": "2024-04-30T20:05:21.000000Z",
                        "settle_date": "2024-04-29T17:51:02.000000Z",
                        "amount": "369.0000",
                        "description": "",
                        "status_code": "",
                        "status_text": "",
                        "email": "",
                        "phone": "",
                        "customer_uuid": "",
                        "multi_use_token": "",
                        "pending": false,
                        "transaction_info_id": "123123123123",
                        "parent_transaction_info_id": "123123123124",
                        "billing_address": {
                            "first_name": null,
                            "last_name": null,
                            "addr1": null,
                            "addr2": null,
                            "city": null,
                            "state": null,
                            "zip": null
                        }
                    },
                    {
                        "transaction_type": "CC",
                        "transaction_status": "CC_CREDIT",
                        "transaction_status_description": "Successful credit/debit card transaction that brings funds into the ProPay Account.",
                        "transaction_number": "1919162951",
                        "transaction_date": "2024-04-29T08:37:29.000000Z",
                        "fund_date": "2024-04-30T20:05:22.000000Z",
                        "settle_date": "2024-05-07T11:30:03.000000Z",
                        "amount": "103.0800",
                        "description": "",
                        "status_code": "",
                        "status_text": "",
                        "email": "",
                        "phone": "",
                        "customer_uuid": "",
                        "multi_use_token": "",
                        "pending": false,
                        "transaction_info_id": "123123123123",
                        "parent_transaction_info_id": "123123123124",
                        "billing_address": {
                            "first_name": null,
                            "last_name": null,
                            "addr1": null,
                            "addr2": null,
                            "city": null,
                            "state": null,
                            "zip": null
                        }
                    },
                    {
                        "transaction_type": "CC",
                        "transaction_status": "CC_CREDIT",
                        "transaction_status_description": "Successful credit/debit card transaction that brings funds into the ProPay Account.",
                        "transaction_number": "1920383851",
                        "transaction_date": "2024-04-29T11:52:43.000000Z",
                        "fund_date": "2024-04-30T20:05:22.000000Z",
                        "settle_date": "2024-05-07T11:30:03.000000Z",
                        "amount": "82.5200",
                        "description": "",
                        "status_code": "",
                        "status_text": "",
                        "email": "",
                        "phone": "",
                        "customer_uuid": "",
                        "multi_use_token": "",
                        "pending": false,
                        "transaction_info_id": "123123123123",
                        "parent_transaction_info_id": "123123123124",
                        "billing_address": {
                            "first_name": null,
                            "last_name": null,
                            "addr1": null,
                            "addr2": null,
                            "city": null,
                            "state": null,
                            "zip": null
                        }
                    }
                ]
            }
        }
    }
}
{}
{
    "errors": {
        "data.sid": [
            "The data.sid is not the correct format."
        ]
    }
}
{
    "data.message": "Permission Denied."
}
{
    "data.message": "No Merchant found with SID provided."
}
{
    "data.message": "User not associated with the affiliate."
}
{
    "data.message": "Merchant not associated with affiliate."
}

Show Deposit with Supporting Trans

GET
https://app.dimepayments.com
/api/deposit/show
requires authentication

Show a Deposit from Merchant Account with supporting transactions

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/deposit/show" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 4326.41688,
        \"transaction_info_id\": \"91828382\",
        \"sweep_id\": \"\\\"2024-04-01 00:00:00\\\"\"
    }
}"
Example response:
{
    "data": {
        "sid": "XXXXX",
        "transaction_info_id": "983999999",
        "transaction_id": "382",
        "transaction_date": "2024-05-01T04:00:00.000000Z",
        "fund_date": "2024-05-01 02:20:35",
        "type": "withdraw_funds",
        "countOfTransactions": 3,
        "transTotal": "545.98",
        "transactions": [
            {
                "transaction_type": "ACH",
                "transaction_status": "ACH_PAYMENT_CREDIT",
                "transaction_status_description": "Successfully completed ACH Payment that has been posted to the Escrow Account.",
                "transaction_number": "369",
                "transaction_date": "2024-04-29T08:30:25.000000Z",
                "fund_date": "2024-04-30T20:05:21.000000Z",
                "settle_date": "2024-04-29T17:51:02.000000Z",
                "amount": "369.0000",
                "description": "",
                "status_code": "",
                "status_text": "",
                "email": "",
                "phone": "",
                "customer_uuid": "",
                "multi_use_token": "",
                "pending": false,
                "transaction_info_id": "123123212312",
                "parent_transaction_info_id": "123123212314",
                "billing_address": {
                    "first_name": null,
                    "last_name": null,
                    "addr1": null,
                    "addr2": null,
                    "city": null,
                    "state": null,
                    "zip": null
                }
            },
            {
                "transaction_type": "CC",
                "transaction_status": "CC_CREDIT",
                "transaction_status_description": "Successful credit/debit card transaction that brings funds into the ProPay Account.",
                "transaction_number": "1919162951",
                "transaction_date": "2024-04-29T08:37:29.000000Z",
                "fund_date": "2024-04-30T20:05:22.000000Z",
                "settle_date": "2024-05-07T11:30:03.000000Z",
                "amount": "103.0800",
                "description": "",
                "status_code": "",
                "status_text": "",
                "email": "",
                "phone": "",
                "customer_uuid": "",
                "multi_use_token": "",
                "pending": false,
                "transaction_info_id": "123123212312",
                "parent_transaction_info_id": "123123212314",
                "billing_address": {
                    "first_name": null,
                    "last_name": null,
                    "addr1": null,
                    "addr2": null,
                    "city": null,
                    "state": null,
                    "zip": null
                }
            },
            {
                "transaction_type": "CC",
                "transaction_status": "CC_CREDIT",
                "transaction_status_description": "Successful credit/debit card transaction that brings funds into the ProPay Account.",
                "transaction_number": "1920383851",
                "transaction_date": "2024-04-29T11:52:43.000000Z",
                "fund_date": "2024-04-30T20:05:22.000000Z",
                "settle_date": "2024-05-07T11:30:03.000000Z",
                "amount": "82.5200",
                "description": "",
                "status_code": "",
                "status_text": "",
                "email": "",
                "phone": "",
                "customer_uuid": "",
                "multi_use_token": "",
                "pending": false,
                "transaction_info_id": "123123212314",
                "billing_address": {
                    "first_name": null,
                    "last_name": null,
                    "addr1": null,
                    "addr2": null,
                    "city": null,
                    "state": null,
                    "zip": null
                }
            }
        ]
    }
}
{}
{
    "errors": {
        "data.sid": [
            "The data.sid is not the correct format."
        ]
    }
}
{
    "data.message": "Permission Denied."
}
{
    "data.message": "No Merchant found with SID provided."
}
{
    "data.message": "User not associated with the affiliate."
}
{
    "data.message": "Merchant not associated with affiliate."
}

Invoice management

APIs for managing invoices. Depending on API KEY permissions, one should be able to list, create, update, delete, and send invoices, manage their line items, and manage recurring-invoice schedules. Every request is scoped to a single Merchant via the required data.sid.

List Invoices

GET
https://app.dimepayments.com
/api/invoices
requires authentication

Retrieves a paginated (cursor) list of invoices for a Merchant, optionally filtered by status.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/invoices" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 12345
    },
    \"filters\": {
        \"status\": \"sent\"
    }
}"
Example response:
{
    "data": [
        {
            "id": null,
            "invoice_number": "INV-45117",
            "status": "draft",
            "customer_name": "Mr. Gerhard Dach Jr.",
            "customer_email": "[email protected]",
            "total": 0,
            "amount_paid": 0,
            "balance": 0,
            "issue_date": "2026-07-28",
            "due_date": "2026-08-12",
            "is_overdue": false,
            "public_url": "http://app.dimepayments.com/invoice/XepzeEH4j3UoSX9YjR1uEOXebXjwWCBJCIj9MZMR"
        },
        {
            "id": null,
            "invoice_number": "INV-67996",
            "status": "draft",
            "customer_name": "Dr. Mona Lemke",
            "customer_email": "[email protected]",
            "total": 0,
            "amount_paid": 0,
            "balance": 0,
            "issue_date": "2026-07-27",
            "due_date": "2026-08-11",
            "is_overdue": false,
            "public_url": "http://app.dimepayments.com/invoice/j8dXIMrfoaeUtCV69NHzOusR3vQkqUeFhdjhABP2"
        }
    ],
    "links": {
        "prev": null,
        "next": null
    },
    "meta": {
        "path": "/",
        "per_page": 500,
        "next_cursor": null,
        "prev_cursor": null
    }
}
{
    "errors": {
        "filters.status": [
            "The selected filters.status is invalid."
        ]
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}

Show Invoice

GET
https://app.dimepayments.com
/api/invoice
requires authentication

Retrieves a single invoice with its line items, payments, and event history.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/invoice" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "token": "mpXHIdVBlykMQYG4vNjmZoUEMnSliGSCFrVc2zzK",
        "invoice_number": "INV-92439",
        "status": "draft",
        "payment_terms": "net_15",
        "issue_date": "2026-08-03",
        "due_date": "2026-08-18",
        "is_overdue": false,
        "subtotal": 0,
        "total": 0,
        "amount_paid": 0,
        "balance": 0,
        "allow_partial_payment": true,
        "thank_you_note": "Ipsum nostrum omnis autem et consequatur aut dolores enim.",
        "public_url": "http://app.dimepayments.com/invoice/mpXHIdVBlykMQYG4vNjmZoUEMnSliGSCFrVc2zzK",
        "customer": {
            "id": 15604,
            "name": "Domingo Leuschke",
            "email": "[email protected]"
        },
        "items": [],
        "payments": [],
        "events": []
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Invoice not found"
    }
}

Create Invoice

POST
https://app.dimepayments.com
/api/invoice/create
requires authentication

Creates a draft invoice with its line items. Every line must reference an item (fund/designation) that belongs to the Merchant; the line name and unit price are snapshotted onto the invoice. The invoice number may be supplied, otherwise the next number is allocated automatically.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/invoice/create" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"lines\": [
            {
                \"item_id\": 5,
                \"name\": \"Consulting\",
                \"description\": \"2 hours\",
                \"quantity\": 2,
                \"unit_price\": 125
            }
        ]
    }
}"
Example response:
{
    "data": {
        "id": null,
        "token": "53CLp7JZSNvuBBHZIcUGwdbKZGuM6m7J8QRNFIbl",
        "invoice_number": "INV-26855",
        "status": "draft",
        "payment_terms": "net_15",
        "issue_date": "2026-07-09",
        "due_date": "2026-07-24",
        "is_overdue": false,
        "subtotal": 0,
        "total": 0,
        "amount_paid": 0,
        "balance": 0,
        "allow_partial_payment": true,
        "thank_you_note": "Sunt nihil accusantium harum mollitia.",
        "public_url": "http://app.dimepayments.com/invoice/53CLp7JZSNvuBBHZIcUGwdbKZGuM6m7J8QRNFIbl",
        "customer": {
            "id": 15605,
            "name": "Vesta Schuster PhD",
            "email": "[email protected]"
        },
        "items": [],
        "payments": [],
        "events": []
    }
}
{
    "errors": {
        "data.lines": [
            "The data.lines field is required."
        ]
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}

Update Invoice

PATCH
https://app.dimepayments.com
/api/invoice/update
requires authentication

Updates a draft invoice. Only draft invoices can be edited — once sent, an invoice is locked. Passing data.lines replaces the existing line items.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request PATCH \
    "https://app.dimepayments.com/api/invoice/update" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"lines\": [
            {
                \"item_id\": 5,
                \"name\": \"Consulting\",
                \"description\": \"2 hours\",
                \"quantity\": 2,
                \"unit_price\": 125
            }
        ]
    }
}"
Example response:
{
    "data": {
        "id": null,
        "token": "X6sqDz3XlW7gsjwBxItGTY9g1qEUKkq2NzZctMa9",
        "invoice_number": "INV-23164",
        "status": "draft",
        "payment_terms": "net_15",
        "issue_date": "2026-07-09",
        "due_date": "2026-07-24",
        "is_overdue": false,
        "subtotal": 0,
        "total": 0,
        "amount_paid": 0,
        "balance": 0,
        "allow_partial_payment": true,
        "thank_you_note": "Nihil accusantium harum mollitia modi deserunt.",
        "public_url": "http://app.dimepayments.com/invoice/X6sqDz3XlW7gsjwBxItGTY9g1qEUKkq2NzZctMa9",
        "customer": {
            "id": 15606,
            "name": "Shaina Cormier",
            "email": "[email protected]"
        },
        "items": [],
        "payments": [],
        "events": []
    }
}
{
    "errors": {
        "data.customer_email": [
            "The data.customer email field is required."
        ]
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Invoice not found"
    }
}
{
    "data": {
        "message": "Only draft invoices can be edited."
    }
}

Delete Invoice

POST
https://app.dimepayments.com
/api/invoice/delete
requires authentication

Soft-deletes a draft invoice. Only draft invoices can be deleted.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/invoice/delete" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "message": "Draft invoice deleted."
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Invoice not found"
    }
}
{
    "data": {
        "message": "Only draft invoices can be deleted."
    }
}

Send Invoice

POST
https://app.dimepayments.com
/api/invoice/send
requires authentication

Emails the invoice to the customer with a link to the public pay page and advances the invoice to Sent. A paid, void, or refunded invoice cannot be sent.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/invoice/send" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "token": "Gjl1MPv91EFdFm4iK0QmUhWv4BxLLKmv3YtdZzzP",
        "invoice_number": "INV-47352",
        "status": "draft",
        "payment_terms": "net_15",
        "issue_date": "2026-08-03",
        "due_date": "2026-08-18",
        "is_overdue": false,
        "subtotal": 0,
        "total": 0,
        "amount_paid": 0,
        "balance": 0,
        "allow_partial_payment": true,
        "thank_you_note": "Nostrum omnis autem et consequatur aut.",
        "public_url": "http://app.dimepayments.com/invoice/Gjl1MPv91EFdFm4iK0QmUhWv4BxLLKmv3YtdZzzP",
        "customer": {
            "id": 15607,
            "name": "Henri Mitchell",
            "email": "[email protected]"
        },
        "items": [],
        "payments": [],
        "events": []
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Invoice not found"
    }
}
{
    "data": {
        "message": "Invoice has no customer email to send to."
    }
}
{
    "data": {
        "message": "A paid, void, or refunded invoice cannot be sent."
    }
}

Mark Invoice Sent

POST
https://app.dimepayments.com
/api/invoice/mark-sent
requires authentication

Activates a draft invoice for payment WITHOUT emailing it — for Merchants who share the public link themselves. Advances Draft to Sent so the pay link becomes live.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/invoice/mark-sent" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "token": "T27cLLegtmHHYvZmC4r7XBPQWHSL8RyU7XMoXM67",
        "invoice_number": "INV-40640",
        "status": "draft",
        "payment_terms": "net_15",
        "issue_date": "2026-08-03",
        "due_date": "2026-08-18",
        "is_overdue": false,
        "subtotal": 0,
        "total": 0,
        "amount_paid": 0,
        "balance": 0,
        "allow_partial_payment": true,
        "thank_you_note": null,
        "public_url": "http://app.dimepayments.com/invoice/T27cLLegtmHHYvZmC4r7XBPQWHSL8RyU7XMoXM67",
        "customer": {
            "id": 15608,
            "name": "Oswald Koch",
            "email": "[email protected]"
        },
        "items": [],
        "payments": [],
        "events": []
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Invoice not found"
    }
}
{
    "data": {
        "message": "This invoice has already been sent."
    }
}

Void Invoice

PATCH
https://app.dimepayments.com
/api/invoice/void
requires authentication

Voids an invoice. Voiding is terminal — the invoice can no longer be paid. An already void or refunded invoice cannot be voided again.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request PATCH \
    "https://app.dimepayments.com/api/invoice/void" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "token": "vc0guo4OB0QlNjfGVNNVhtBJkNvBZKgFPmehbYe0",
        "invoice_number": "INV-35644",
        "status": "draft",
        "payment_terms": "net_15",
        "issue_date": "2026-08-03",
        "due_date": "2026-08-18",
        "is_overdue": false,
        "subtotal": 0,
        "total": 0,
        "amount_paid": 0,
        "balance": 0,
        "allow_partial_payment": true,
        "thank_you_note": null,
        "public_url": "http://app.dimepayments.com/invoice/vc0guo4OB0QlNjfGVNNVhtBJkNvBZKgFPmehbYe0",
        "customer": {
            "id": 15609,
            "name": "Mr. Carey Smitham",
            "email": "[email protected]"
        },
        "items": [],
        "payments": [],
        "events": []
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Invoice not found"
    }
}
{
    "data": {
        "message": "This invoice is already void or refunded."
    }
}

Duplicate Invoice

POST
https://app.dimepayments.com
/api/invoice/duplicate
requires authentication

Clones any invoice into a new draft (copying its line items) with a freshly allocated invoice number.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/invoice/duplicate" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "token": "FlLAAYVNpWegPuPN5z29RKlFf0gEMDMZHzUWEdsE",
        "invoice_number": "INV-8317",
        "status": "draft",
        "payment_terms": "net_15",
        "issue_date": "2026-08-03",
        "due_date": "2026-08-18",
        "is_overdue": false,
        "subtotal": 0,
        "total": 0,
        "amount_paid": 0,
        "balance": 0,
        "allow_partial_payment": true,
        "thank_you_note": null,
        "public_url": "http://app.dimepayments.com/invoice/FlLAAYVNpWegPuPN5z29RKlFf0gEMDMZHzUWEdsE",
        "customer": {
            "id": 15610,
            "name": "Carey Smitham",
            "email": "[email protected]"
        },
        "items": [],
        "payments": [],
        "events": []
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Invoice not found"
    }
}

Pay Invoice

POST
https://app.dimepayments.com
/api/invoice/pay
requires authentication

Records a merchant-initiated (MOTO) payment against an open invoice, charging a credit card (raw card or a stored token) or a bank account (ACH) through ProPay. Mirrors the card/ACH charge endpoints but targets the invoice: the amount is the invoice balance (or a partial amount when the invoice allows it), no cover fee is added, and on approval the invoice status/payment history/per-line classification are updated exactly as a customer payment.

The invoice must be open (Sent/Viewed/Partially Paid) with a balance due on an active ProPay merchant. A declined card is NOT recorded as a payment.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/invoice/pay" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "token": "B8rUFWhPsmMkG5bHFmi7grg537n1StbRytOeIiep",
        "invoice_number": "INV-98251",
        "status": "draft",
        "payment_terms": "net_15",
        "issue_date": "2026-08-03",
        "due_date": "2026-08-18",
        "is_overdue": false,
        "subtotal": 0,
        "total": 0,
        "amount_paid": 0,
        "balance": 0,
        "allow_partial_payment": true,
        "thank_you_note": "Consequatur aut dolores enim non facere tempora.",
        "public_url": "http://app.dimepayments.com/invoice/B8rUFWhPsmMkG5bHFmi7grg537n1StbRytOeIiep",
        "customer": {
            "id": 15611,
            "name": "Vesta Glover",
            "email": "[email protected]"
        },
        "items": [],
        "payments": [],
        "events": []
    }
}
{
    "errors": {
        "data.card_number": [
            "The data.card number field is required when data.token is not present."
        ]
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Invoice not found"
    }
}
{
    "data": {
        "message": "This invoice cannot be paid (it must be an open invoice with a balance due on an active ProPay merchant)."
    }
}
{
    "data": {
        "message": "This payment method is not accepted by the merchant."
    }
}
{
    "data": {
        "message": "A payment for this invoice is already being processed. Please try again in a moment."
    }
}
{
    "data": {
        "message": "The payment amount exceeds the $50.00 balance now due."
    }
}
{
    "data": {
        "message": "The card was declined.",
        "code": "51"
    }
}
{
    "data": {
        "message": "The payment was captured but could not be recorded. Do not retry — please contact support to reconcile this invoice."
    }
}
GET
https://app.dimepayments.com
/api/invoice/link
requires authentication

Returns the public pay link (and token) for an invoice.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/invoice/link" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:

Add Line Item

POST
https://app.dimepayments.com
/api/invoice/line-item/add
requires authentication

Appends a single line item to a draft invoice and recalculates totals.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/invoice/line-item/add" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "token": "6QQ0ZOAA7l0VmBGgGv3XWJf9w8Q3WvAZrfz09Pao",
        "invoice_number": "INV-82093",
        "status": "draft",
        "payment_terms": "net_15",
        "issue_date": "2026-08-03",
        "due_date": "2026-08-18",
        "is_overdue": false,
        "subtotal": 0,
        "total": 0,
        "amount_paid": 0,
        "balance": 0,
        "allow_partial_payment": true,
        "thank_you_note": null,
        "public_url": "http://app.dimepayments.com/invoice/6QQ0ZOAA7l0VmBGgGv3XWJf9w8Q3WvAZrfz09Pao",
        "customer": {
            "id": 15612,
            "name": "Donny Leffler",
            "email": "[email protected]"
        },
        "items": [],
        "payments": [],
        "events": []
    }
}
{
    "errors": {
        "data.item_id": [
            "The selected data.item id is invalid."
        ]
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Invoice not found"
    }
}
{
    "data": {
        "message": "Only draft invoices can be edited."
    }
}

Update Line Item

PATCH
https://app.dimepayments.com
/api/invoice/line-item/update
requires authentication

Updates a single line item on a draft invoice. Only the fields you pass are changed; the line amount is recomputed and invoice totals refreshed.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request PATCH \
    "https://app.dimepayments.com/api/invoice/line-item/update" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "token": "ZNQsiY56lvQ8f4gGS10FLKdS0nzEqgCR0akctR04",
        "invoice_number": "INV-52976",
        "status": "draft",
        "payment_terms": "net_15",
        "issue_date": "2026-08-03",
        "due_date": "2026-08-18",
        "is_overdue": false,
        "subtotal": 0,
        "total": 0,
        "amount_paid": 0,
        "balance": 0,
        "allow_partial_payment": true,
        "thank_you_note": null,
        "public_url": "http://app.dimepayments.com/invoice/ZNQsiY56lvQ8f4gGS10FLKdS0nzEqgCR0akctR04",
        "customer": {
            "id": 15613,
            "name": "Elenora Stokes",
            "email": "[email protected]"
        },
        "items": [],
        "payments": [],
        "events": []
    }
}
{
    "errors": {
        "data.quantity": [
            "The data.quantity field must be at least 0."
        ]
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Invoice not found"
    }
}
{
    "data": {
        "message": "Line item not found"
    }
}
{
    "data": {
        "message": "Only draft invoices can be edited."
    }
}

Delete Line Item

POST
https://app.dimepayments.com
/api/invoice/line-item/delete
requires authentication

Removes a single line item from a draft invoice and recalculates totals.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/invoice/line-item/delete" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "token": "aWXht3Akh1fONUs3XH1m6cyx4i9Nzg5LY2l5uFGE",
        "invoice_number": "INV-66650",
        "status": "draft",
        "payment_terms": "net_15",
        "issue_date": "2026-08-03",
        "due_date": "2026-08-18",
        "is_overdue": false,
        "subtotal": 0,
        "total": 0,
        "amount_paid": 0,
        "balance": 0,
        "allow_partial_payment": true,
        "thank_you_note": null,
        "public_url": "http://app.dimepayments.com/invoice/aWXht3Akh1fONUs3XH1m6cyx4i9Nzg5LY2l5uFGE",
        "customer": {
            "id": 15614,
            "name": "Henri Mitchell",
            "email": "[email protected]"
        },
        "items": [],
        "payments": [],
        "events": []
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Invoice not found"
    }
}
{
    "data": {
        "message": "Line item not found"
    }
}
{
    "data": {
        "message": "Only draft invoices can be edited."
    }
}

List Invoice Items

GET
https://app.dimepayments.com
/api/invoice/items
requires authentication

Lists the Merchant's items (funds/designations) available to use as invoice line items, ordered alphabetically.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/invoice/items" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 12345
    }
}"
Example response:
{
    "data": [
        {
            "id": 5,
            "name": "Consulting",
            "description": null,
            "price": 125
        }
    ]
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}

Create Invoice Item

POST
https://app.dimepayments.com
/api/invoice/item/create
requires authentication

Creates an invoicing-only item (fund/designation) for the Merchant. The item is hidden from public giving pages and can be referenced as a line item's item_id.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/invoice/item/create" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 12345,
        \"name\": \"Consulting\",
        \"description\": \"Professional services\",
        \"price\": 125,
        \"tax_deductible\": false
    }
}"
Example response:
{
    "data": {
        "id": 5,
        "name": "Consulting",
        "description": null,
        "price": 125,
        "tax_deductible": false
    }
}
{
    "errors": {
        "data.name": [
            "The data.name field is required."
        ]
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}

List Recurring Invoices

GET
https://app.dimepayments.com
/api/recurring-invoices
requires authentication

Retrieves a paginated (cursor) list of recurring-invoice templates for a Merchant, optionally filtered by status.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/recurring-invoices" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 12345
    },
    \"filters\": {
        \"status\": \"Active\"
    }
}"
Example response:
{
    "data": [
        {
            "id": null,
            "status": "Active",
            "recurrence_schedule": "Monthly",
            "payment_terms": "net_15",
            "start_date": "2026-08-05",
            "end_date": null,
            "next_run_date": "2026-09-05",
            "last_run_date": null,
            "customer_name": "Lafayette Considine"
        },
        {
            "id": null,
            "status": "Active",
            "recurrence_schedule": "Monthly",
            "payment_terms": "net_15",
            "start_date": "2026-08-05",
            "end_date": null,
            "next_run_date": "2026-09-05",
            "last_run_date": null,
            "customer_name": "Margaretta Thiel"
        }
    ],
    "links": {
        "prev": null,
        "next": null
    },
    "meta": {
        "path": "/",
        "per_page": 500,
        "next_cursor": null,
        "prev_cursor": null
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}

Show Recurring Invoice

GET
https://app.dimepayments.com
/api/recurring-invoice
requires authentication

Retrieves a single recurring-invoice template with its line items, the invoices it has generated (the 50 most recent), and the upcoming run dates.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/recurring-invoice" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "status": "Active",
        "recurrence_schedule": "Monthly",
        "payment_terms": "net_15",
        "start_date": "2026-08-05",
        "end_date": null,
        "next_run_date": "2026-09-05",
        "last_run_date": null,
        "thank_you_note": null,
        "customer": {
            "id": 15617,
            "name": "Marcelo Predovic",
            "email": "[email protected]"
        },
        "items": [],
        "upcoming_run_dates": [
            "2026-09-05",
            "2026-10-05",
            "2026-11-05"
        ],
        "invoices": []
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Recurring invoice not found"
    }
}

Create Recurring Invoice

POST
https://app.dimepayments.com
/api/recurring-invoice/create
requires authentication

Creates a recurring-invoice template. The template carries its own snapshot of the line items and requires a linked customer (used to resolve the email on every run). When the start date is today the first invoice is generated and sent immediately; a future start date just schedules the first run.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/recurring-invoice/create" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"lines\": [
            {
                \"item_id\": 5,
                \"name\": \"Monthly retainer\",
                \"description\": \"Support plan\",
                \"quantity\": 1,
                \"unit_price\": 500
            }
        ]
    }
}"
Example response:
{
    "data": {
        "id": null,
        "status": "Active",
        "recurrence_schedule": "Monthly",
        "payment_terms": "net_15",
        "start_date": "2026-08-05",
        "end_date": null,
        "next_run_date": "2026-09-05",
        "last_run_date": null,
        "thank_you_note": null,
        "customer": {
            "id": 15618,
            "name": "Pauline Runte",
            "email": "[email protected]"
        },
        "items": [],
        "upcoming_run_dates": [
            "2026-09-05",
            "2026-10-05",
            "2026-11-05"
        ],
        "invoices": []
    }
}
{
    "errors": {
        "data.customer_id": [
            "The data.customer id field is required."
        ]
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}

Cancel Recurring Invoice

POST
https://app.dimepayments.com
/api/recurring-invoice/cancel
requires authentication

Cancels an active recurring-invoice template. No further invoices are generated. Only active templates can be cancelled.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/recurring-invoice/cancel" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "status": "Active",
        "recurrence_schedule": "Monthly",
        "payment_terms": "net_15",
        "start_date": "2026-08-05",
        "end_date": null,
        "next_run_date": "2026-09-05",
        "last_run_date": null,
        "thank_you_note": null,
        "customer": {
            "id": 15619,
            "name": "Marcelo Predovic",
            "email": "[email protected]"
        },
        "items": [],
        "upcoming_run_dates": [
            "2026-09-05",
            "2026-10-05",
            "2026-11-05"
        ],
        "invoices": []
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Recurring invoice not found"
    }
}
{
    "data": {
        "message": "Only active recurring invoices can be cancelled."
    }
}

Payment Method management

APIs for managing payment methods associated with customers. Depending on API KEY permissions, one should be able to list, show, create, update, and delete payment methods.

List payment methods for a customer

GET
https://app.dimepayments.com
/api/payment-method/list
requires authentication

This endpoint shows all payment methods for a customer. Must pass at least one filter to select a specific customer

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/payment-method/list" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 12345
    },
    \"filters\": {
        \"phone\": \"+15551237890\",
        \"uuid\": \"3c37db03-dc71-4e8b-90e7-6668290b7c3d\",
        \"email\": \"[email protected]\"
    }
}"
Example response:
{
    "data": [
        {
            "id": 1,
            "type": "cc",
            "token": "B6EXEPCIC8WGK63Y19RE5222",
            "first_name": "Lisa",
            "last_name": "Wallow ",
            "cc_name_on_card": "Lisa Wallow",
            "cc_last_four": "5222",
            "cc_expiration_date": "08/2028",
            "cc_brand": "Visa",
            "status": "New",
            "status_date": "2026-04-20 08:32:30",
            "enabled": true,
            "default": false,
            "addr1": "1504 Minnesota Ave",
            "addr2": "",
            "addr3": null,
            "city": "Kenner",
            "state": "LA",
            "zip": "30534"
        },
        {
            "id": 1,
            "type": "cc",
            "token": "B6EXEPCIC8WGK63Y19RE5222",
            "first_name": "Lisa",
            "last_name": "Wallow ",
            "cc_name_on_card": "Lisa Wallow",
            "cc_last_four": "5222",
            "cc_expiration_date": "08/2028",
            "cc_brand": "Visa",
            "status": "New",
            "status_date": "2026-04-20 08:32:30",
            "enabled": true,
            "default": false,
            "addr1": "1504 Minnesota Ave",
            "addr2": "",
            "addr3": null,
            "city": "Kenner",
            "state": "LA",
            "zip": "30534"
        }
    ],
    "links": {
        "prev": null,
        "next": null
    },
    "meta": {
        "path": "/",
        "per_page": 15,
        "next_cursor": null,
        "prev_cursor": null
    }
}
{
    "data": {
        "message": "Permission denied"
    }
}
{
    "data": {
        "message": "Customer not found."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}

Show a Payment Method for a customer

GET
https://app.dimepayments.com
/api/payment-method/show
requires authentication

This endpoint shows a specific payment method for a customer. Must pass at least one filter to select a specific customer

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/payment-method/show" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 12345,
        \"payment_method_id\": 12345
    },
    \"filters\": {
        \"phone\": \"+15551237890\",
        \"uuid\": \"3c37db03-dc71-4e8b-90e7-6668290b7c3d\",
        \"email\": \"[email protected]\"
    }
}"
Example response:
{
    "data": {
        "id": 1,
        "type": "cc",
        "token": "B6EXEPCIC8WGK63Y19RE5222",
        "first_name": "Lisa",
        "last_name": "Wallow ",
        "cc_name_on_card": "Lisa Wallow",
        "cc_last_four": "5222",
        "cc_expiration_date": "08/2028",
        "cc_brand": "Visa",
        "status": "New",
        "status_date": "2026-04-20 08:32:30",
        "enabled": true,
        "default": false,
        "addr1": "1504 Minnesota Ave",
        "addr2": "",
        "addr3": null,
        "city": "Kenner",
        "state": "LA",
        "zip": "30534"
    }
}
{
    "data": {
        "message": "Permission denied"
    }
}
{
    "data": {
        "message": "Customer not found."
    }
}
{
    "data": {
        "message": "Payment Method not found."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}

Create a Payment Method for a customer

POST
https://app.dimepayments.com
/api/payment-method/create
requires authentication

This endpoint creates a new payment method for a customer. Must pass at least one filter to select a specific customer

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/payment-method/create" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"uuid\": \"3c37db03-dc71-4e8b-90e7-6668290b7c3d\",
        \"sid\": 12345,
        \"type\": \"cc\",
        \"cc_name_on_card\": \"John Doe\",
        \"cc_number\": \"7890\",
        \"cc_expiration_date\": \"01\\/2025\",
        \"cc_cvv\": \"1234\",
        \"cc_brand\": \"Visa\",
        \"ach_bank_account_name\": \"Acme Inc.\",
        \"ach_routing_number\": \"123456789\",
        \"ach_account_number\": \"123456789\",
        \"ach_ownership_type\": \"Personal\",
        \"ach_account_type\": \"Checking\",
        \"ach_bank_name\": \"Wells Fargo\",
        \"default\": true,
        \"addr1\": \"123 First St.\",
        \"addr2\": \"Suite 111\",
        \"city\": \"Alpharetta\",
        \"state\": \"GA\",
        \"zip\": \"30009\"
    }
}"
Example response:
{
    "data": {
        "id": 1,
        "type": "cc",
        "token": "B6EXEPCIC8WGK63Y19RE5222",
        "first_name": "Lisa",
        "last_name": "Wallow ",
        "cc_name_on_card": "Lisa Wallow",
        "cc_last_four": "5222",
        "cc_expiration_date": "08/2028",
        "cc_brand": "Visa",
        "status": "New",
        "status_date": "2026-04-20 08:32:30",
        "enabled": true,
        "default": false,
        "addr1": "1504 Minnesota Ave",
        "addr2": "",
        "addr3": null,
        "city": "Kenner",
        "state": "LA",
        "zip": "30534"
    }
}
{
    "data": {
        "message": "Permission denied"
    }
}
{
    "data": {
        "message": "Customer not found."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}

Update a Payment Method for a customer

PATCH
https://app.dimepayments.com
/api/payment-method/update
requires authentication

This endpoint updates a payment method for a customer. Must pass at least one filter to select a specific customer

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request PATCH \
    "https://app.dimepayments.com/api/payment-method/update" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"uuid\": \"6ff8f7f6-1eb3-3525-be4a-3932c805afed\",
        \"sid\": 12345,
        \"payment_method_id\": 4326.41688,
        \"type\": \"cc\",
        \"cc_name_on_card\": \"John Doe\",
        \"cc_number\": \"7890\",
        \"cc_expiration_date\": \"01\\/2025\",
        \"cc_cvv\": \"1234\",
        \"cc_brand\": \"Visa\",
        \"ach_bank_account_name\": \"Acme Inc.\",
        \"ach_routing_number\": \"123456789\",
        \"ach_account_number\": \"123456789\",
        \"ach_ownership_type\": \"Personal\",
        \"ach_account_type\": \"Checking\",
        \"ach_bank_name\": \"Wells Fargo\",
        \"default\": true,
        \"addr1\": \"123 First St.\",
        \"addr2\": \"Suite 111\",
        \"city\": \"Alpharetta\",
        \"state\": \"GA\",
        \"zip\": \"30009\"
    }
}"
Example response:
{
    "data": {
        "id": 1,
        "type": "cc",
        "token": "B6EXEPCIC8WGK63Y19RE5222",
        "first_name": "Lisa",
        "last_name": "Wallow ",
        "cc_name_on_card": "Lisa Wallow",
        "cc_last_four": "5222",
        "cc_expiration_date": "08/2028",
        "cc_brand": "Visa",
        "status": "New",
        "status_date": "2026-04-20 08:32:30",
        "enabled": true,
        "default": false,
        "addr1": "1504 Minnesota Ave",
        "addr2": "",
        "addr3": null,
        "city": "Kenner",
        "state": "LA",
        "zip": "30534"
    }
}
{
    "data": {
        "message": "Permission denied"
    }
}
{
    "data": {
        "message": "Customer not found."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}

Delete a Payment Method for a customer

POST
https://app.dimepayments.com
/api/payment-method/delete
requires authentication

This endpoint deletes a payment method for a customer. Must pass at least one filter to select a specific customer

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/payment-method/delete" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 12345,
        \"payment_method_id\": 12345,
        \"uuid\": \"3c37db03-dc71-4e8b-90e7-6668290b7c3d\"
    }
}"
Example response:
{
    "data": {
        "message": "Payment Method deleted successfully."
    }
}
{
    "data": {
        "message": "Permission denied"
    }
}
{
    "data": {
        "message": "Customer not found."
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "Payment Method not found"
    }
}
{
    "data": {
        "message": "Cannot delete payment method with active recurring payments."
    }
}

Recurring Payments management

APIs for managing recurring payments. Depending on API KEY permissions, one should be able to create, edit, pause, cancel along with other functions.

List Recurring Payments

GET
https://app.dimepayments.com
/api/recurring-payment/list
requires authentication

Retrieves a list of recurring payments for a given Merchant, filtered by various parameters.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/recurring-payment/list" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": \"12345\"
    },
    \"filters\": {
        \"status\": \"Active, Failed, Paused, Canceled\",
        \"customer_uuid\": \"cust_456\"
    }
}"
Example response:
{
    "data": [
        {
            "id": 1,
            "name": "Car Was Solutions ",
            "amount": "4,574.99",
            "start_date": "2024-11-07T05:00:00.000000Z",
            "end_date": "2026-12-31T05:00:00.000000Z",
            "recurrence_schedule": "Monthly",
            "last_run_date": "2025-12-15T05:00:00.000000Z",
            "last_run_status": "Failed",
            "last_run_failed_count": 3,
            "next_run_date": null,
            "status": "Cancelled",
            "paused_until_date": null,
            "customer_uuid": "9a242468-6b4e-4382-a61b-a728fbc8edae",
            "cancelled_at": "2026-06-29T04:00:00.000000Z",
            "error": "DECLINE",
            "payment_method": {
                "id": 7,
                "type": "cc",
                "last_four": "4003",
                "expiration": "09/2029",
                "zip": "",
                "name_on_card": "Geo Perez"
            },
            "shipping_address": {
                "addr1": null,
                "addr2": null,
                "city": null,
                "state": null,
                "zip": null
            }
        },
        {
            "id": 1,
            "name": "Car Was Solutions ",
            "amount": "4,574.99",
            "start_date": "2024-11-07T05:00:00.000000Z",
            "end_date": "2026-12-31T05:00:00.000000Z",
            "recurrence_schedule": "Monthly",
            "last_run_date": "2025-12-15T05:00:00.000000Z",
            "last_run_status": "Failed",
            "last_run_failed_count": 3,
            "next_run_date": null,
            "status": "Cancelled",
            "paused_until_date": null,
            "customer_uuid": "9a242468-6b4e-4382-a61b-a728fbc8edae",
            "cancelled_at": "2026-06-29T04:00:00.000000Z",
            "error": "DECLINE",
            "payment_method": {
                "id": 7,
                "type": "cc",
                "last_four": "4003",
                "expiration": "09/2029",
                "zip": "",
                "name_on_card": "Geo Perez"
            },
            "shipping_address": {
                "addr1": null,
                "addr2": null,
                "city": null,
                "state": null,
                "zip": null
            }
        }
    ],
    "links": {
        "prev": null,
        "next": null
    },
    "meta": {
        "path": "/",
        "per_page": 15,
        "next_cursor": null,
        "prev_cursor": null
    }
}
{
    "errors": {
        "filters.status": [
            "The filters.status field is not valid."
        ]
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "Unauthorized"
    }
}
{
    "data": {
        "message": "Not associated with affiliate"
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "No recurring payments found"
    }
}

Pause Recurring Payment

PATCH
https://app.dimepayments.com
/api/recurring-payment/pause
requires authentication

Pauses a scheduled recurring payment. If pause_until_date is not passed, it will be set to 2099-12-31

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request PATCH \
    "https://app.dimepayments.com/api/recurring-payment/pause" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": \"12345\",
        \"recurring_payment_id\": 12345,
        \"pause_until_date\": \"2021-01-01 00:00:00\"
    }
}"
Example response:
{
    "data": {
        "id": 1,
        "name": "Car Was Solutions ",
        "amount": "4,574.99",
        "start_date": "2024-11-07T05:00:00.000000Z",
        "end_date": "2026-12-31T05:00:00.000000Z",
        "recurrence_schedule": "Monthly",
        "last_run_date": "2025-12-15T05:00:00.000000Z",
        "last_run_status": "Failed",
        "last_run_failed_count": 3,
        "next_run_date": null,
        "status": "Cancelled",
        "paused_until_date": null,
        "customer_uuid": "9a242468-6b4e-4382-a61b-a728fbc8edae",
        "cancelled_at": "2026-06-29T04:00:00.000000Z",
        "error": "DECLINE",
        "payment_method": {
            "id": 7,
            "type": "cc",
            "last_four": "4003",
            "expiration": "09/2029",
            "zip": "",
            "name_on_card": "Geo Perez"
        },
        "shipping_address": {
            "addr1": null,
            "addr2": null,
            "city": null,
            "state": null,
            "zip": null
        }
    }
}
{
    "errors": {
        "data.pause_until_date": [
            "Invalid date format."
        ]
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "Unauthorized"
    }
}
{
    "data": {
        "message": "Not associated with affiliate"
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "No recurring payment found"
    }
}

Cancel Recurring Payment

PATCH
https://app.dimepayments.com
/api/recurring-payment/cancel
requires authentication

Cancels a scheduled recurring payment.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request PATCH \
    "https://app.dimepayments.com/api/recurring-payment/cancel" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": \"12345\",
        \"recurring_payment_id\": 12345
    }
}"
Example response:
{
    "data": {
        "id": 1,
        "name": "Car Was Solutions ",
        "amount": "4,574.99",
        "start_date": "2024-11-07T05:00:00.000000Z",
        "end_date": "2026-12-31T05:00:00.000000Z",
        "recurrence_schedule": "Monthly",
        "last_run_date": "2025-12-15T05:00:00.000000Z",
        "last_run_status": "Failed",
        "last_run_failed_count": 3,
        "next_run_date": null,
        "status": "Cancelled",
        "paused_until_date": null,
        "customer_uuid": "9a242468-6b4e-4382-a61b-a728fbc8edae",
        "cancelled_at": "2026-06-29T04:00:00.000000Z",
        "error": "DECLINE",
        "payment_method": {
            "id": 7,
            "type": "cc",
            "last_four": "4003",
            "expiration": "09/2029",
            "zip": "",
            "name_on_card": "Geo Perez"
        },
        "shipping_address": {
            "addr1": null,
            "addr2": null,
            "city": null,
            "state": null,
            "zip": null
        }
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "Unauthorized"
    }
}
{
    "data": {
        "message": "Not associated with affiliate"
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "No recurring payment found"
    }
}

Activate Recurring Payment

PATCH
https://app.dimepayments.com
/api/recurring-payment/activate
requires authentication

Activates a scheduled recurring payment. Set to status of Active and calculates next run date.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request PATCH \
    "https://app.dimepayments.com/api/recurring-payment/activate" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": \"12345\",
        \"recurring_payment_id\": 12345
    }
}"
Example response:
{
    "data": {
        "id": 1,
        "name": "Car Was Solutions ",
        "amount": "4,574.99",
        "start_date": "2024-11-07T05:00:00.000000Z",
        "end_date": "2026-12-31T05:00:00.000000Z",
        "recurrence_schedule": "Monthly",
        "last_run_date": "2025-12-15T05:00:00.000000Z",
        "last_run_status": "Failed",
        "last_run_failed_count": 3,
        "next_run_date": null,
        "status": "Cancelled",
        "paused_until_date": null,
        "customer_uuid": "9a242468-6b4e-4382-a61b-a728fbc8edae",
        "cancelled_at": "2026-06-29T04:00:00.000000Z",
        "error": "DECLINE",
        "payment_method": {
            "id": 7,
            "type": "cc",
            "last_four": "4003",
            "expiration": "09/2029",
            "zip": "",
            "name_on_card": "Geo Perez"
        },
        "shipping_address": {
            "addr1": null,
            "addr2": null,
            "city": null,
            "state": null,
            "zip": null
        }
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "Unauthorized"
    }
}
{
    "data": {
        "message": "Not associated with affiliate"
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "No recurring payment found"
    }
}

Edit Recurring Payment

PATCH
https://app.dimepayments.com
/api/recurring-payment/edit
requires authentication

Edits an existing recurring payment. All fields other than sid and recurring_payment_id are optional; only the fields you pass will be updated. The customer cannot be changed, and a new payment method must belong to the recurring payment's existing customer. When recurrence_schedule or start_date change on an Active payment, the next run date is recalculated automatically.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request PATCH \
    "https://app.dimepayments.com/api/recurring-payment/edit" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": \"12345\",
        \"recurring_payment_id\": 12345,
        \"name\": \"Rent\",
        \"amount\": 1101.69,
        \"start_date\": \"2025-06-12 13:26:00\",
        \"end_date\": \"2026-06-12 13:26:00\",
        \"recurrence_schedule\": \"Monthly\",
        \"payment_method\": 69585,
        \"shipping_address\": {
            \"addr1\": \"123 Main St.\",
            \"addr2\": \"apt 1\",
            \"city\": \"Alpharetta.\",
            \"state\": \"GA.\",
            \"zip\": \"12345.\"
        }
    }
}"
Example response:
{
    "data": {
        "id": 1,
        "name": "Car Was Solutions ",
        "amount": "4,574.99",
        "start_date": "2024-11-07T05:00:00.000000Z",
        "end_date": "2026-12-31T05:00:00.000000Z",
        "recurrence_schedule": "Monthly",
        "last_run_date": "2025-12-15T05:00:00.000000Z",
        "last_run_status": "Failed",
        "last_run_failed_count": 3,
        "next_run_date": null,
        "status": "Cancelled",
        "paused_until_date": null,
        "customer_uuid": "9a242468-6b4e-4382-a61b-a728fbc8edae",
        "cancelled_at": "2026-06-29T04:00:00.000000Z",
        "error": "DECLINE",
        "payment_method": {
            "id": 7,
            "type": "cc",
            "last_four": "4003",
            "expiration": "09/2029",
            "zip": "",
            "name_on_card": "Geo Perez"
        },
        "shipping_address": {
            "addr1": null,
            "addr2": null,
            "city": null,
            "state": null,
            "zip": null
        }
    }
}
{
    "errors": {
        "data.amount": [
            "The data.amount field must be greater than 0."
        ]
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "Unauthorized"
    }
}
{
    "data": {
        "message": "Not associated with affiliate"
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "No such Payment Method"
    }
}
{
    "data": {
        "message": "Payment Method does not belong to Customer"
    }
}
{
    "data": {
        "message": "No recurring payment found"
    }
}

Create Recurring Payment

POST
https://app.dimepayments.com
/api/recurring-payment/create
requires authentication

Creates a scheduled recurring payment. The payment will run on the next date based on schedule and start date. So if you create one that starts on 2025-01-01 00:00:00 with Monthly, then the payment method will be charged on 2025-02-01 Recurring Payments run around 0500 EST.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/recurring-payment/create" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": \"12345\",
        \"name\": \"Rent\",
        \"amount\": 1101.69,
        \"start_date\": \"2025-06-12 13:26:00\",
        \"end_date\": \"2026-06-12 13:26:00\",
        \"recurrence_schedule\": \"Monthly\",
        \"payment_method\": 69585,
        \"customer_uuid\": \"12312312-12312321-12312312-12312312\",
        \"shipping_address\": {
            \"addr1\": \"123 Main St.\",
            \"addr2\": \"apt 1\",
            \"city\": \"Alpharetta.\",
            \"state\": \"GA.\",
            \"zip\": \"12345.\"
        }
    }
}"
Example response:
{
    "data": {
        "id": 1,
        "name": "Car Was Solutions ",
        "amount": "4,574.99",
        "start_date": "2024-11-07T05:00:00.000000Z",
        "end_date": "2026-12-31T05:00:00.000000Z",
        "recurrence_schedule": "Monthly",
        "last_run_date": "2025-12-15T05:00:00.000000Z",
        "last_run_status": "Failed",
        "last_run_failed_count": 3,
        "next_run_date": null,
        "status": "Cancelled",
        "paused_until_date": null,
        "customer_uuid": "9a242468-6b4e-4382-a61b-a728fbc8edae",
        "cancelled_at": "2026-06-29T04:00:00.000000Z",
        "error": "DECLINE",
        "payment_method": {
            "id": 7,
            "type": "cc",
            "last_four": "4003",
            "expiration": "09/2029",
            "zip": "",
            "name_on_card": "Geo Perez"
        },
        "shipping_address": {
            "addr1": null,
            "addr2": null,
            "city": null,
            "state": null,
            "zip": null
        }
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "Unauthorized"
    }
}
{
    "data": {
        "message": "Not associated with affiliate"
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}

Show Recurring Payment

GET
https://app.dimepayments.com
/api/recurring-payment/show
requires authentication

Show details of a scheduled recurring payment.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/recurring-payment/show" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": \"12345\",
        \"recurring_payment_id\": 12345
    }
}"
Example response:
{
    "data": {
        "id": 1,
        "name": "Car Was Solutions ",
        "amount": "4,574.99",
        "start_date": "2024-11-07T05:00:00.000000Z",
        "end_date": "2026-12-31T05:00:00.000000Z",
        "recurrence_schedule": "Monthly",
        "last_run_date": "2025-12-15T05:00:00.000000Z",
        "last_run_status": "Failed",
        "last_run_failed_count": 3,
        "next_run_date": null,
        "status": "Cancelled",
        "paused_until_date": null,
        "customer_uuid": "9a242468-6b4e-4382-a61b-a728fbc8edae",
        "cancelled_at": "2026-06-29T04:00:00.000000Z",
        "error": "DECLINE",
        "payment_method": {
            "id": 7,
            "type": "cc",
            "last_four": "4003",
            "expiration": "09/2029",
            "zip": "",
            "name_on_card": "Geo Perez"
        },
        "shipping_address": {
            "addr1": null,
            "addr2": null,
            "city": null,
            "state": null,
            "zip": null
        }
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "Unauthorized"
    }
}
{
    "data": {
        "message": "Not associated with affiliate"
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "No recurring payment found"
    }
}

Delete Recurring Payment

POST
https://app.dimepayments.com
/api/recurring-payment/delete
requires authentication

Delete a recurring payment.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/recurring-payment/delete" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": \"12345\",
        \"recurring_payment_id\": 12345
    }
}"
Example response:
{
    "data": {
        "message": "Recurring payment successfully deleted."
    }
}
{
    "data": {
        "message": "Permission Denied."
    }
}
{
    "data": {
        "message": "Unauthorized"
    }
}
{
    "data": {
        "message": "Not associated with affiliate"
    }
}
{
    "data": {
        "message": "No such Merchant"
    }
}
{
    "data": {
        "message": "No recurring payment found"
    }
}

Subscription Plans management

Merchant-facing API for subscription plans (recurring offerings customers subscribe to). The merchant is identified by data.sid; the token must carry the matching subscription-plan:* ability. Mirrors the recurring-payment and invoice API controllers.

List subscription plans

GET
https://app.dimepayments.com
/api/subscription-plan/list
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/subscription-plan/list" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": [
        {
            "id": null,
            "name": "Annual Support 20263",
            "description": "Sint vel quasi aliquid ipsam incidunt eligendi et.",
            "recurrence_schedule": "Monthly",
            "status": "active",
            "subtotal": 0,
            "total": 0,
            "token": "60wtj2NRTrNgTcgtHoFjR4QyOkzY0DX0F8QEGGf9",
            "public_url": "http://app.dimepayments.com/subscribe/60wtj2NRTrNgTcgtHoFjR4QyOkzY0DX0F8QEGGf9",
            "allow_public": true,
            "created_at": null,
            "items": []
        },
        {
            "id": null,
            "name": "Annual Support 65890",
            "description": "Minima velit voluptatem qui accusantium.",
            "recurrence_schedule": "Monthly",
            "status": "active",
            "subtotal": 0,
            "total": 0,
            "token": "c4DCXcw9Mkyg8iuT8xVRayrKXtQHbKVqlqBlHlSw",
            "public_url": "http://app.dimepayments.com/subscribe/c4DCXcw9Mkyg8iuT8xVRayrKXtQHbKVqlqBlHlSw",
            "allow_public": true,
            "created_at": null,
            "items": []
        }
    ],
    "links": {
        "prev": null,
        "next": null
    },
    "meta": {
        "path": "/",
        "per_page": 500,
        "next_cursor": null,
        "prev_cursor": null
    }
}

Show a subscription plan

GET
https://app.dimepayments.com
/api/subscription-plan/show
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/subscription-plan/show" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "name": "Monthly Membership 54634",
        "description": "Qui commodi incidunt iure odit.",
        "recurrence_schedule": "Monthly",
        "status": "active",
        "subtotal": 0,
        "total": 0,
        "token": "vIDIRwkNB27CwsENiKr38AYdPeZytOJa8XoDhqrm",
        "public_url": "http://app.dimepayments.com/subscribe/vIDIRwkNB27CwsENiKr38AYdPeZytOJa8XoDhqrm",
        "allow_public": true,
        "created_at": null,
        "items": []
    }
}

Create a subscription plan

POST
https://app.dimepayments.com
/api/subscription-plan/create
requires authentication

The plan is created as a draft. Publish it (or use the merchant UI) before customers can subscribe.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/subscription-plan/create" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"lines\": [
            {
                \"item_id\": 5,
                \"name\": \"Base membership\",
                \"quantity\": 1,
                \"unit_price\": 25
            }
        ]
    }
}"
Example response:
{
    "data": {
        "id": null,
        "name": "Community Circle 70546",
        "description": "Quos velit et fugiat sunt nihil accusantium harum.",
        "recurrence_schedule": "Monthly",
        "status": "active",
        "subtotal": 0,
        "total": 0,
        "token": "4jkvh5IzZIKDZrX4rrLl4wXo9qy2pe5mrUjsG8Y1",
        "public_url": "http://app.dimepayments.com/subscribe/4jkvh5IzZIKDZrX4rrLl4wXo9qy2pe5mrUjsG8Y1",
        "allow_public": true,
        "created_at": null,
        "items": []
    }
}

Update a subscription plan

PATCH
https://app.dimepayments.com
/api/subscription-plan/edit
requires authentication

Replaces the plan's fields and line items wholesale. Existing subscribers keep their own snapshot and are unaffected.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request PATCH \
    "https://app.dimepayments.com/api/subscription-plan/edit" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "name": "Community Circle 63526",
        "description": null,
        "recurrence_schedule": "Monthly",
        "status": "active",
        "subtotal": 0,
        "total": 0,
        "token": "66wzWht5SMJNL6taEuGiwf18bA5gSvfrIpYilBV4",
        "public_url": "http://app.dimepayments.com/subscribe/66wzWht5SMJNL6taEuGiwf18bA5gSvfrIpYilBV4",
        "allow_public": true,
        "created_at": null,
        "items": []
    }
}

Delete a subscription plan

POST
https://app.dimepayments.com
/api/subscription-plan/delete
requires authentication

Only plans with no subscribers can be deleted; otherwise archive it.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/subscription-plan/delete" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "message": "Subscription plan deleted"
    }
}
{
    "data": {
        "message": "Cannot delete a plan with subscribers. Archive it instead."
    }
}

Publish a subscription plan

PATCH
https://app.dimepayments.com
/api/subscription-plan/publish
requires authentication

Moves a draft plan to active so customers can subscribe. The plan must be a draft and carry at least one line item.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request PATCH \
    "https://app.dimepayments.com/api/subscription-plan/publish" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "name": "Monthly Membership 80304",
        "description": "Commodi incidunt iure odit.",
        "recurrence_schedule": "Monthly",
        "status": "active",
        "subtotal": 0,
        "total": 0,
        "token": "5DNHPKykkk7DTbyFSMxAuxoP3LmotnlkifsgA1V8",
        "public_url": "http://app.dimepayments.com/subscribe/5DNHPKykkk7DTbyFSMxAuxoP3LmotnlkifsgA1V8",
        "allow_public": true,
        "created_at": null,
        "items": []
    }
}

Archive a subscription plan

PATCH
https://app.dimepayments.com
/api/subscription-plan/archive
requires authentication

Stops new subscriptions and hides it from the catalog. Existing subscribers keep their subscription.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request PATCH \
    "https://app.dimepayments.com/api/subscription-plan/archive" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "name": "Monthly Membership 14650",
        "description": null,
        "recurrence_schedule": "Monthly",
        "status": "active",
        "subtotal": 0,
        "total": 0,
        "token": "5v56HE0hPxQDoryDxFRsf5A5crj0wgbh4zz5ImIZ",
        "public_url": "http://app.dimepayments.com/subscribe/5v56HE0hPxQDoryDxFRsf5A5crj0wgbh4zz5ImIZ",
        "allow_public": true,
        "created_at": null,
        "items": []
    }
}

Reactivate a subscription plan

PATCH
https://app.dimepayments.com
/api/subscription-plan/unarchive
requires authentication

Moves an archived plan back to draft so it can be reviewed and re-published. allow_public stays off until the merchant opts back into the catalog.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request PATCH \
    "https://app.dimepayments.com/api/subscription-plan/unarchive" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "name": "Monthly Membership 62492",
        "description": "Iure odit et et modi ipsum nostrum omnis.",
        "recurrence_schedule": "Monthly",
        "status": "active",
        "subtotal": 0,
        "total": 0,
        "token": "yAYxy8w229nZVwlZZgyCCry9ybRuhSxnzFroKM7I",
        "public_url": "http://app.dimepayments.com/subscribe/yAYxy8w229nZVwlZZgyCCry9ybRuhSxnzFroKM7I",
        "allow_public": true,
        "created_at": null,
        "items": []
    }
}

Subscribe a customer to a plan

POST
https://app.dimepayments.com
/api/subscription-plan/subscribe
requires authentication

Charges the first payment against the customer's saved payment method and enrolls them in the plan. The plan must be active. Fires SUBSCRIPTION_CREATED.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.dimepayments.com/api/subscription-plan/subscribe" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "subscription_id": 10,
        "status": "Active",
        "next_run_date": "2026-08-21",
        "transaction_number": "TXN-123",
        "amount": 25
    }
}
{
    "data": {
        "message": "Card declined",
        "transaction_number": null
    }
}

Subscriptions management

Merchant-facing API for individual customer subscriptions (enrollments in a plan). The merchant is identified by data.sid; the token must carry the matching subscription:* ability. Lifecycle transitions delegate to the {@see \App\Actions\Subscription} action classes so the matching SUBSCRIPTION_* webhook always fires. Mirrors the recurring-payment and subscription-plan API controllers.

List subscriptions

GET
https://app.dimepayments.com
/api/subscription/list
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/subscription/list" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": {
        \"sid\": 12345
    },
    \"filters\": {
        \"status\": \"Active\",
        \"customer_uuid\": \"9c1e6a7e-1f2b-4c3d-8e9f-0a1b2c3d4e5f\"
    }
}"
Example response:
{
    "data": [
        {
            "id": null,
            "subscription_plan_id": 55,
            "plan_name": "Premium Plan 24492",
            "amount": "0.00",
            "recurrence_schedule": "Monthly",
            "start_date": "2026-07-05T04:00:00.000000Z",
            "end_date": null,
            "last_run_date": null,
            "last_run_status": null,
            "last_run_failed_count": 0,
            "next_run_date": "2026-09-05T04:00:00.000000Z",
            "status": "Active",
            "paused_until_date": null,
            "cancelled_at": null,
            "cancelled_by": null,
            "customer_uuid": "a693e8c5-c580-41c3-83e9-8e70b96e06af",
            "error": null,
            "payment_method": {
                "id": 5912,
                "type": "cc",
                "last_four": "3642",
                "expiration": "08/2030"
            }
        },
        {
            "id": null,
            "subscription_plan_id": 56,
            "plan_name": "Monthly Membership 88481",
            "amount": "0.00",
            "recurrence_schedule": "Monthly",
            "start_date": "2026-07-05T04:00:00.000000Z",
            "end_date": null,
            "last_run_date": null,
            "last_run_status": null,
            "last_run_failed_count": 0,
            "next_run_date": "2026-09-05T04:00:00.000000Z",
            "status": "Active",
            "paused_until_date": null,
            "cancelled_at": null,
            "cancelled_by": null,
            "customer_uuid": "cb39ad44-9076-424f-8aeb-732995416827",
            "error": null,
            "payment_method": {
                "id": 5913,
                "type": "cc",
                "last_four": "5053",
                "expiration": "08/2030"
            }
        }
    ],
    "links": {
        "prev": null,
        "next": null
    },
    "meta": {
        "path": "/",
        "per_page": 500,
        "next_cursor": null,
        "prev_cursor": null
    }
}

Show a subscription

GET
https://app.dimepayments.com
/api/subscription/show
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/subscription/show" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "subscription_plan_id": 57,
        "plan_name": "Monthly Membership 45193",
        "amount": "0.00",
        "recurrence_schedule": "Monthly",
        "start_date": "2026-07-05T04:00:00.000000Z",
        "end_date": null,
        "last_run_date": null,
        "last_run_status": null,
        "last_run_failed_count": 0,
        "next_run_date": "2026-09-05T04:00:00.000000Z",
        "status": "Active",
        "paused_until_date": null,
        "cancelled_at": null,
        "cancelled_by": null,
        "customer_uuid": "824dfac0-b2b5-4725-a885-7369fcf2c1ae",
        "error": null,
        "payment_method": {
            "id": 5914,
            "type": "cc",
            "last_four": "8330",
            "expiration": "08/2030"
        }
    }
}

Pause a subscription

PATCH
https://app.dimepayments.com
/api/subscription/pause
requires authentication

Pauses an active subscription until the given date. If data.pause_until_date is omitted it pauses indefinitely. Fires the SUBSCRIPTION_PAUSED webhook.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request PATCH \
    "https://app.dimepayments.com/api/subscription/pause" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "subscription_plan_id": 58,
        "plan_name": "Monthly Membership 30805",
        "amount": "0.00",
        "recurrence_schedule": "Monthly",
        "start_date": "2026-07-05T04:00:00.000000Z",
        "end_date": null,
        "last_run_date": null,
        "last_run_status": null,
        "last_run_failed_count": 0,
        "next_run_date": "2026-09-05T04:00:00.000000Z",
        "status": "Active",
        "paused_until_date": null,
        "cancelled_at": null,
        "cancelled_by": null,
        "customer_uuid": "9f733ba6-14d5-43be-bd56-34f5c76f730d",
        "error": null,
        "payment_method": {
            "id": 5915,
            "type": "cc",
            "last_four": "1161",
            "expiration": "08/2030"
        }
    }
}

Resume a subscription

PATCH
https://app.dimepayments.com
/api/subscription/resume
requires authentication

Reactivates a paused subscription and recomputes its next charge date. Fires the SUBSCRIPTION_RESUMED webhook.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request PATCH \
    "https://app.dimepayments.com/api/subscription/resume" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "subscription_plan_id": 59,
        "plan_name": "Monthly Membership 93082",
        "amount": "0.00",
        "recurrence_schedule": "Monthly",
        "start_date": "2026-07-05T04:00:00.000000Z",
        "end_date": null,
        "last_run_date": null,
        "last_run_status": null,
        "last_run_failed_count": 0,
        "next_run_date": "2026-09-05T04:00:00.000000Z",
        "status": "Active",
        "paused_until_date": null,
        "cancelled_at": null,
        "cancelled_by": null,
        "customer_uuid": "578c4533-34cd-4683-b8ae-37162027228f",
        "error": null,
        "payment_method": {
            "id": 5916,
            "type": "cc",
            "last_four": "7849",
            "expiration": "08/2030"
        }
    }
}

Cancel a subscription

PATCH
https://app.dimepayments.com
/api/subscription/cancel
requires authentication

Permanently cancels a subscription — no further charges are made. Fires the SUBSCRIPTION_CANCELLED webhook.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request PATCH \
    "https://app.dimepayments.com/api/subscription/cancel" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "data": {
        "id": null,
        "subscription_plan_id": 60,
        "plan_name": "Monthly Membership 43383",
        "amount": "0.00",
        "recurrence_schedule": "Monthly",
        "start_date": "2026-07-05T04:00:00.000000Z",
        "end_date": null,
        "last_run_date": null,
        "last_run_status": null,
        "last_run_failed_count": 0,
        "next_run_date": "2026-09-05T04:00:00.000000Z",
        "status": "Active",
        "paused_until_date": null,
        "cancelled_at": null,
        "cancelled_by": null,
        "customer_uuid": "c67ad5df-c161-447c-856a-1f967b2f15d1",
        "error": null,
        "payment_method": {
            "id": 5917,
            "type": "cc",
            "last_four": "2895",
            "expiration": "08/2030"
        }
    }
}

Zapier

APIs for use through Zapier. Depending on API KEY permissions, one should be able to see customers and transactions data.

Get New Customers

GET
https://app.dimepayments.com
/api/zapier/new-customers
requires authentication

Get a list of all new customers since the last time it was checked.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/zapier/new-customers" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "id": 1,
            "first_name": "John",
            "last_name": "Doe",
            "phone": "1234567890",
            "email": "[email protected]",
            "addr1": "123 Main St",
            "addr2": "",
            "addr3": "",
            "city": "Anytown",
            "state": "CA",
            "zip": "12345",
            "country": "US"
        }
    ]
}
{
    "message": "Unauthorized"
}
{
    "message": "Merchant not found"
}
{
    "message": "No transactions found"
}

Get Transactions

GET
https://app.dimepayments.com
/api/zapier/transactions
requires authentication

Get a list of all transactions for a Merchant

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/zapier/transactions" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[
    {
        "amount": "100.00",
        "business": "Acme Inc",
        "transaction_date": "2020-10-15 12:00:00",
        "customer_uuid": "1234567890",
        "first_name": "John",
        "last_name": "Doe",
        "customer_phone": "1234567890",
        "customer_email": "[email protected]"
    },
    {
        "amount": "100.00",
        "business": "Acme Inc",
        "transaction_date": "2020-10-15 12:00:00",
        "customer_uuid": "1234567890",
        "first_name": "John",
        "last_name": "Doe",
        "customer_phone": "1234567890",
        "customer_email": "[email protected]"
    }
]
{
    "message": "Permission denied"
}
{
    "message": "Merchant not found"
}
[]

Get Transactions by Customer

GET
https://app.dimepayments.com
/api/zapier/transactions/{phone}
requires authentication

Get a list of all transactions for a given customer using their phone number

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

phone
integer
required
Example:
1

Body Parameters

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/zapier/transactions/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_date\": \"2020-10-15\",
    \"end_date\": \"2020-10-15\",
    \"last_days\": 90
}"
Example response:
[
    {
        "amount": "100.00",
        "transaction_date": "2020-10-15 12:00:00",
        "invoice_number": "1234567890",
        "first_name": "John",
        "last_name": "Doe",
        "phone": "1234567890",
        "email": "[email protected]"
    }
]
{
    "data.message": "Can only contain last days or start and end date"
}
{
    "message": "Permission denied."
}
{
    "message": "Merchant not found"
}
[]

Get Most Recent Transaction

GET
https://app.dimepayments.com
/api/zapier/new-transactions
requires authentication

Get the most recent transactions details

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Response Fields

Example request:
curl --request GET \
    --get "https://app.dimepayments.com/api/zapier/new-transactions" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[
    {
        "id": 1,
        "invoice_number": "1234567890",
        "amount": "100.00",
        "transaction_date": "2020-10-15 12:00:00",
        "first_name": "John",
        "last_name": "Doe",
        "phone": "1234567890",
        "email": "[email protected]"
    }
]
{
    "message": "Permission denied"
}
{
    "message": "Merchant not found"
}
[]