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>
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.
Get a list of all merchants and their fields
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\"
}
}"
{
"data": [
{
"name": "Dime Payments",
"dba": "",
"sid": "00001",
"ein": "",
"mcc": "8999",
"slug": "pay",
"pub_api_key": "pkapi_prod_B5n2hQhy6uAp1rLjqs",
"processor_mid": "650000012366624",
"active": true,
"pipeline_stage": null,
"pipeline_lost_at": null,
"active_at": null,
"manual_only_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": "",
"sid": "00001",
"ein": "",
"mcc": "8999",
"slug": "pay",
"pub_api_key": "pkapi_prod_B5n2hQhy6uAp1rLjqs",
"processor_mid": "650000012366624",
"active": true,
"pipeline_stage": null,
"pipeline_lost_at": null,
"active_at": null,
"manual_only_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"
}
]
}
List all non-protected fields for a merchant. Other fields are available using their specific requests.
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
}
}"
{
"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"
}
}
Create a merchant record which can be used for generating an application.
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\",
\"acknowledge_duplicate\": false
}
}"
{
"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"
}
}
Update a Merchant's details.
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\"
}
}"
{
"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"
}
}
Passed a merchant's ID, returns a full URL to the application for processor approval. This link expires in 30 days (App\Models\Company::APPLICATION_LINK_DAYS).
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
}
}"
{
"data": {
"link": "https://app.dimepayments.com/some/link"
}
}
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.
Retrieves a list of transactions for a given Merchant, filtered by various parameters.
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\"
}
}"
{
"data": [
{
"transaction_type": "CC",
"transaction_status": "CC_CREDIT",
"transaction_status_description": "Successful credit/debit card transaction that brings funds into the merchant 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 merchant 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
}
}
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.
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\": 12345
},
\"uuid\": \"60dac128-28da-41ae-8632-aee299de13fd\"
}
}"
{
"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"
}
}
}
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
}
}
}"
{
"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"
}
}
}
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.
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
}
}
}"
{
"data": {
"token": "abcd1234"
}
}
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
}
}"
{
"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"
}
}
}
Places a hold on a credit card without moving any money. The authorized amount is reserved against the cardholder's available credit, and no funds reach the merchant until the authorization is captured via the capture endpoint.
Use this when the final amount is not yet known or goods have not shipped. Capture the authorization once you are ready to collect. An authorization that is never captured is released by the card issuer on its own schedule, so capture promptly — typically within 24 hours — to avoid the hold expiring.
The transaction_number in the response is your handle on the authorization: pass it as
data.transaction_id to the capture endpoint to collect, or to the void endpoint to release.
Releasing the hold. If the sale falls through, release the held funds instead of
capturing by calling the void endpoint — PATCH /api/transaction/void:
{ "data": { "sid": 1234567, "transaction_type": "CC", "transaction_id": "1234567890" } }
data.transaction_type must be CC. Voiding is gated by its own separate API key
permission, not by this one, so make sure your key carries it if you need to release holds.
Two ways to supply the card, pick one. Either send a token from the tokenize-card
endpoint, or send the raw card fields — card_number, expiration_date, cardholder_name and
billing_address.zip, all four of which are required only when no token is present, and
ignored when one is. Sending raw card data requires PCI compliance (an AoC on file with Dime
Payments); a token does not, because no card number is transmitted.
curl --request POST \
"https://app.dimepayments.com/api/transaction/authorize" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"data\": {
\"amount\": 100.5,
\"sid\": 1234567,
\"phone\": \"+17701234567\",
\"customer_uuid\": \"60dac128-28da-41ae-8632-aee299de13fd\",
\"email\": \"[email protected]\",
\"memo\": \"order 1234\",
\"token\": \"abc123def456\",
\"cardholder_name\": \"John Doe\",
\"card_number\": 1231231231231231,
\"expiration_date\": \"01\\/2030\",
\"cvv\": 123,
\"billing_address\": {
\"first_name\": \"John\",
\"last_name\": \"Doe\",
\"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\": 12345
}
}
}"
Captures funds from a credit card authorization created by the authorize endpoint. This is the point at which money actually moves: the authorization only reserved the funds.
Pass the transaction_number returned by the authorize endpoint as data.transaction_id.
Omit data.amount to capture the full authorized amount, or pass a smaller amount to capture
part of it — useful when the final total came in below the original estimate. The capture
amount may not exceed the authorized amount.
An authorization can only be captured once, and a partial capture closes it. Capturing $50 of a $100 hold settles $50 and releases the remaining $50 back to the cardholder — a second call for the balance is refused with "Transaction is not an open authorization." If you need to collect in more than one instalment (a split shipment, say), authorize each instalment separately. Capture the true final amount in one call wherever you can.
Capture promptly, typically within 24 hours of authorizing: an uncaptured authorization is released by the card issuer on its own schedule and can no longer be captured once it expires.
A captured transaction becomes an ordinary card payment and can be refunded or voided through
the refund and void endpoints. Note that the refund endpoint voids rather than refunds until
the transaction has settled, and reports "message": "void" when it does — that is the
correct handling for money that has not left the cardholder's account yet, and it emits a
Credit Card Void event rather than a Credit Card Refund one.
To release a hold without taking any money, do not call this endpoint — call
PATCH /api/transaction/void with data.transaction_type of CC and the authorization's
transaction_number as data.transaction_id. The refund and void endpoints are gated by
their own separate API key permission, not by this one.
curl --request POST \
"https://app.dimepayments.com/api/transaction/capture" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"data\": {
\"sid\": 1234567,
\"transaction_id\": 1234567890,
\"amount\": 100.5
}
}"
{
"data": {
"message": "Transaction captured successfully."
}
}
Processes a refund for a transaction based on the provided data.
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,
\"override_ach_settlement_wait\": true
}
}"
{
"data": {
"message": "refund"
}
}
Void a transaction
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
}
}"
{
"data": {
"message": "Transaction voided successfully"
}
}
Get the chargebacks raised against a merchant.
Chargeback data reaches us through a once-daily file from the processor,
so this reflects the most recent daily import rather than live dispute
activity. Pair it with the chargeback_opened / chargeback_updated /
chargeback_resolved webhooks: the webhooks tell you when something
changed, this endpoint is how you reconcile or backfill after an outage,
since webhook deliveries are not replayable.
curl --request GET \
--get "https://app.dimepayments.com/api/chargeback/list" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"data\": {
\"sid\": \"91828382\"
},
\"filters\": {
\"start_date\": \"\\\"2026-04-01 00:00:00\\\"\",
\"end_date\": \"\\\"2026-04-30 23:59:59\\\"\",
\"representment_status\": \"\\\"New\\\"\"
}
}"
{
"data": [
{
"transaction_info_id": "1134722723",
"parent_transaction_info_id": "1132652128",
"gateway_transaction_id": null,
"transaction_number": "1566",
"invoice_number": null,
"chargeback_date": "2025-05-04T17:45:05-04:00",
"merchant_chargeback_date": "2025-05-04T19:45:05-04:00",
"transaction_amount": 391.48,
"chargeback_amount": 391.48,
"card_brand": "V",
"cc_last_four": "2510",
"payee_name": null,
"days_to_represent": 0,
"representment_date": "2025-05-12T06:26:00-04:00",
"merchant_representment_date": "2025-05-05T07:32:01-04:00",
"representment_status": "accepting chargeback",
"result": "Accepting",
"chargeback_code": "4",
"chargeback_response_code": "Other fraud - Card Absent Environment",
"resolved": false
},
{
"transaction_info_id": "1134722723",
"parent_transaction_info_id": "1132652128",
"gateway_transaction_id": null,
"transaction_number": "1566",
"invoice_number": null,
"chargeback_date": "2025-05-04T17:45:05-04:00",
"merchant_chargeback_date": "2025-05-04T19:45:05-04:00",
"transaction_amount": 391.48,
"chargeback_amount": 391.48,
"card_brand": "V",
"cc_last_four": "2510",
"payee_name": null,
"days_to_represent": 0,
"representment_date": "2025-05-12T06:26:00-04:00",
"merchant_representment_date": "2025-05-05T07:32:01-04:00",
"representment_status": "accepting chargeback",
"result": "Accepting",
"chargeback_code": "4",
"chargeback_response_code": "Other fraud - Card Absent Environment",
"resolved": false
}
],
"links": {
"prev": null,
"next": null
},
"meta": {
"path": "/",
"per_page": 500,
"next_cursor": null,
"prev_cursor": null
}
}
Get a single chargeback by its processor identifier.
curl --request GET \
--get "https://app.dimepayments.com/api/chargeback/show" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"data\": {
\"sid\": \"91828382\",
\"transaction_info_id\": \"\\\"8675309\\\"\"
}
}"
{
"data": {
"transaction_info_id": "1134722723",
"parent_transaction_info_id": "1132652128",
"gateway_transaction_id": null,
"transaction_number": "1566",
"invoice_number": null,
"chargeback_date": "2025-05-04T17:45:05-04:00",
"merchant_chargeback_date": "2025-05-04T19:45:05-04:00",
"transaction_amount": 391.48,
"chargeback_amount": 391.48,
"card_brand": "V",
"cc_last_four": "2510",
"payee_name": null,
"days_to_represent": 0,
"representment_date": "2025-05-12T06:26:00-04:00",
"merchant_representment_date": "2025-05-05T07:32:01-04:00",
"representment_status": "accepting chargeback",
"result": "Accepting",
"chargeback_code": "4",
"chargeback_response_code": "Other fraud - Card Absent Environment",
"resolved": false
}
}
Send us one or more documents for a merchant, stating what they are for.
This endpoint is general purpose — underwriting paperwork, identity
verification, and evidence contesting a chargeback all come through here,
distinguished by data.doc_type. To attach evidence to a specific
dispute, pass data.chargeback_transaction_info_id as well; the value is
the transaction_info_id from the chargeback endpoints or the chargeback
webhooks.
This request is multipart/form-data, not JSON — it is the only
endpoint on this API that is. Send the body fields as form fields named
data[sid], data[doc_type] and so on, and the files as files[].
Note the bracket notation: multipart has no JSON parsing, so a single
field named data containing {"sid": "..."} is read as a plain string
and the merchant is never identified. That fails as
403 You do not have access to this company., which looks like a
credentials problem but is not — check your field names first. Likewise
the files field is files[], not files.
Files are stored independently. If one fails, the rest are still kept and
the response lists what did not store under failed, so you can re-send
only those rather than the whole batch.
Uploading does not send the document to the processor. It lands in the merchant's document list and notifies our team, who review it and forward it. There is no programmatic way to file a representment with the processor on your behalf.
curl --request POST \
"https://app.dimepayments.com/api/document/upload" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "data[sid]=91828382"\
--form "data[doc_type]=RetrievalRequest"\
--form "data[chargeback_transaction_info_id]="8675309""\
--form "files[]=@/tmp/phph39ehabpdvpl49y4j0Q" {
"data": {
"message": "2 documents uploaded.",
"documents": [
{
"uuid": "9b1c...",
"file_name": "receipt.pdf",
"doc_type": "RetrievalRequest",
"size": 20841
}
]
}
}
The documents held for a merchant, so you can confirm what we have received. Covers documents uploaded through this API and those added by our team or through the merchant application.
curl --request GET \
--get "https://app.dimepayments.com/api/document/list" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"data\": {
\"sid\": \"91828382\"
},
\"filters\": {
\"doc_type\": \"RetrievalRequest\",
\"chargeback_transaction_info_id\": \"\\\"8675309\\\"\"
}
}"
{
"data": [
{
"uuid": "9b1c...",
"file_name": "receipt.pdf",
"doc_type": "RetrievalRequest",
"chargeback_transaction_info_id": "8675309",
"size": 20841,
"uploaded_at": "2026-09-18T11:35:01+00:00",
"uploaded_via": "api",
"sent_to_processor": null
}
]
}
APIs for managing customer addresses
List all addresses for a specific customer.
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\"
}
}"
{
"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": ""
}
]
]
}
Show details of a specific address.
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
}
}"
{
"data": {
"address_id": 1,
"recipient": null,
"line_one": "",
"line_two": null,
"line_three": null,
"city": "",
"state": "",
"zip": ""
}
}
Create a new address for a customer.
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\"
}
}"
{
"data": {
"address_id": 1,
"recipient": null,
"line_one": "",
"line_two": null,
"line_three": null,
"city": "",
"state": "",
"zip": ""
}
}
Update an existing address.
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\"
}
}"
{
"data": {
"address_id": 1,
"recipient": null,
"line_one": "",
"line_two": null,
"line_three": null,
"city": "",
"state": "",
"zip": ""
}
}
Remove an address from a customer.
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
}
}"
{
"data": {
"message": "Address deleted successfully"
}
}
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.
Retrieves a list of customers for a given company, filtered by various parameters.
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]\"
}
}"
{
"data": [
[
{
"id": 6,
"uuid": "66f1c230-68cf-4d58-b47c-1bcb83adfddd",
"first_name": "Ryan",
"last_name": "Taylor",
"company_name": "",
"phone": "+17707892072",
"phone_verified_at": "2026-09-04T20:40:06.000000Z",
"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-09-04T20:40:06.000000Z",
"last_login_ip": "72.255.199.38"
},
{
"id": 6,
"uuid": "66f1c230-68cf-4d58-b47c-1bcb83adfddd",
"first_name": "Ryan",
"last_name": "Taylor",
"company_name": "",
"phone": "+17707892072",
"phone_verified_at": "2026-09-04T20:40:06.000000Z",
"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-09-04T20:40:06.000000Z",
"last_login_ip": "72.255.199.38"
}
]
]
}
Show a specific customer's details
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\"
}
}"
{
"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"
}
}
Create a customer record linked to your Company/Merchant.
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\"
}
}"
{
"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"
}
}
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.
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\"
}
}"
{
"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"
}
}
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.
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
}
}"
{
"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"
}
}
Get Deposits from Merchant Account with supporting transactions
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\\\"\"
}
}"
{
"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
}
}
Get Deposits from Merchant Account with supporting transactions. Could result in large datasets if range is too large.
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\"
}
}"
{
"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 merchant 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 merchant 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
}
}
]
}
}
}
}
Show a Deposit from Merchant Account with supporting transactions
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\\\"\"
}
}"
{
"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 merchant 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 merchant 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
}
}
]
}
}
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.
Retrieves a paginated (cursor) list of invoices for a Merchant, optionally filtered by status.
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\"
}
}"
{
"data": [
{
"id": 1,
"invoice_number": "INV-0001",
"status": "paid",
"customer_name": "Scott Porter",
"customer_email": "[email protected]",
"total": 2000,
"amount_paid": 2000,
"balance": 0,
"cover_fee_required": true,
"issue_date": "2026-09-03",
"due_date": "2026-09-18",
"is_overdue": false,
"public_url": "http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK"
},
{
"id": 1,
"invoice_number": "INV-0001",
"status": "paid",
"customer_name": "Scott Porter",
"customer_email": "[email protected]",
"total": 2000,
"amount_paid": 2000,
"balance": 0,
"cover_fee_required": true,
"issue_date": "2026-09-03",
"due_date": "2026-09-18",
"is_overdue": false,
"public_url": "http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK"
}
],
"links": {
"prev": null,
"next": null
},
"meta": {
"path": "/",
"per_page": 500,
"next_cursor": null,
"prev_cursor": null
}
}
Retrieves a single invoice with its line items, payments, and event history.
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" \
{
"data": {
"id": 1,
"token": "cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"invoice_number": "INV-0001",
"status": "paid",
"payment_terms": "net_15",
"issue_date": "2026-09-03",
"due_date": "2026-09-18",
"is_overdue": false,
"subtotal": 2000,
"total": 2000,
"amount_paid": 2000,
"balance": 0,
"allow_partial_payment": false,
"cover_fee_required": true,
"cover_fee_quote": {
"basis": "balance",
"base": 0,
"cc": {
"fee": 0,
"total": 0
},
"ach": {
"fee": 0,
"total": 0
}
},
"thank_you_note": null,
"public_url": "http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"customer": {
"id": 16032,
"name": "Scott Porter",
"email": "[email protected]"
},
"items": [
{
"id": 1,
"item_id": 1365,
"name": "Implementation Fee",
"description": null,
"quantity": 1,
"unit_price": 2000,
"amount": 2000
}
],
"payments": [
{
"amount": 2000,
"cover_fee": 56.81,
"paid_at": "2026-09-03T11:21:27-04:00",
"method": "+CC",
"transaction_id": 107272
}
],
"events": [
{
"type": "payment_received",
"label": "Payment received",
"description": "Payment of $2,000.00 received",
"created_at": "2026-09-03T11:21:27-04:00"
},
{
"type": "viewed",
"label": "Invoice viewed",
"description": "Opened by [email protected]",
"created_at": "2026-09-03T11:18:10-04:00"
},
{
"type": "created",
"label": "Invoice created",
"description": "Invoice created via API",
"created_at": "2026-09-03T11:17:43-04:00"
},
{
"type": "sent",
"label": "Invoice sent",
"description": "Marked as sent via API — shared manually (no email)",
"created_at": "2026-09-03T11:17:43-04:00"
}
]
}
}
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.
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
}
]
}
}"
{
"data": {
"id": 1,
"token": "cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"invoice_number": "INV-0001",
"status": "paid",
"payment_terms": "net_15",
"issue_date": "2026-09-03",
"due_date": "2026-09-18",
"is_overdue": false,
"subtotal": 2000,
"total": 2000,
"amount_paid": 2000,
"balance": 0,
"allow_partial_payment": false,
"cover_fee_required": true,
"cover_fee_quote": {
"basis": "balance",
"base": 0,
"cc": {
"fee": 0,
"total": 0
},
"ach": {
"fee": 0,
"total": 0
}
},
"thank_you_note": null,
"public_url": "http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"customer": {
"id": 16032,
"name": "Scott Porter",
"email": "[email protected]"
},
"items": [
{
"id": 1,
"item_id": 1365,
"name": "Implementation Fee",
"description": null,
"quantity": 1,
"unit_price": 2000,
"amount": 2000
}
],
"payments": [
{
"amount": 2000,
"cover_fee": 56.81,
"paid_at": "2026-09-03T11:21:27-04:00",
"method": "+CC",
"transaction_id": 107272
}
],
"events": [
{
"type": "payment_received",
"label": "Payment received",
"description": "Payment of $2,000.00 received",
"created_at": "2026-09-03T11:21:27-04:00"
},
{
"type": "viewed",
"label": "Invoice viewed",
"description": "Opened by [email protected]",
"created_at": "2026-09-03T11:18:10-04:00"
},
{
"type": "created",
"label": "Invoice created",
"description": "Invoice created via API",
"created_at": "2026-09-03T11:17:43-04:00"
},
{
"type": "sent",
"label": "Invoice sent",
"description": "Marked as sent via API — shared manually (no email)",
"created_at": "2026-09-03T11:17:43-04:00"
}
]
}
}
Updates a draft invoice. Only draft invoices can be edited — once sent, an
invoice is locked. Passing data.lines replaces the existing line items.
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
}
]
}
}"
{
"data": {
"id": 1,
"token": "cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"invoice_number": "INV-0001",
"status": "paid",
"payment_terms": "net_15",
"issue_date": "2026-09-03",
"due_date": "2026-09-18",
"is_overdue": false,
"subtotal": 2000,
"total": 2000,
"amount_paid": 2000,
"balance": 0,
"allow_partial_payment": false,
"cover_fee_required": true,
"cover_fee_quote": {
"basis": "balance",
"base": 0,
"cc": {
"fee": 0,
"total": 0
},
"ach": {
"fee": 0,
"total": 0
}
},
"thank_you_note": null,
"public_url": "http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"customer": {
"id": 16032,
"name": "Scott Porter",
"email": "[email protected]"
},
"items": [
{
"id": 1,
"item_id": 1365,
"name": "Implementation Fee",
"description": null,
"quantity": 1,
"unit_price": 2000,
"amount": 2000
}
],
"payments": [
{
"amount": 2000,
"cover_fee": 56.81,
"paid_at": "2026-09-03T11:21:27-04:00",
"method": "+CC",
"transaction_id": 107272
}
],
"events": [
{
"type": "payment_received",
"label": "Payment received",
"description": "Payment of $2,000.00 received",
"created_at": "2026-09-03T11:21:27-04:00"
},
{
"type": "viewed",
"label": "Invoice viewed",
"description": "Opened by [email protected]",
"created_at": "2026-09-03T11:18:10-04:00"
},
{
"type": "created",
"label": "Invoice created",
"description": "Invoice created via API",
"created_at": "2026-09-03T11:17:43-04:00"
},
{
"type": "sent",
"label": "Invoice sent",
"description": "Marked as sent via API — shared manually (no email)",
"created_at": "2026-09-03T11:17:43-04:00"
}
]
}
}
Soft-deletes a draft invoice. Only draft invoices can be deleted.
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" \
{
"data": {
"message": "Draft invoice deleted."
}
}
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.
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" \
{
"data": {
"id": 1,
"token": "cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"invoice_number": "INV-0001",
"status": "paid",
"payment_terms": "net_15",
"issue_date": "2026-09-03",
"due_date": "2026-09-18",
"is_overdue": false,
"subtotal": 2000,
"total": 2000,
"amount_paid": 2000,
"balance": 0,
"allow_partial_payment": false,
"cover_fee_required": true,
"cover_fee_quote": {
"basis": "balance",
"base": 0,
"cc": {
"fee": 0,
"total": 0
},
"ach": {
"fee": 0,
"total": 0
}
},
"thank_you_note": null,
"public_url": "http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"customer": {
"id": 16032,
"name": "Scott Porter",
"email": "[email protected]"
},
"items": [
{
"id": 1,
"item_id": 1365,
"name": "Implementation Fee",
"description": null,
"quantity": 1,
"unit_price": 2000,
"amount": 2000
}
],
"payments": [
{
"amount": 2000,
"cover_fee": 56.81,
"paid_at": "2026-09-03T11:21:27-04:00",
"method": "+CC",
"transaction_id": 107272
}
],
"events": [
{
"type": "payment_received",
"label": "Payment received",
"description": "Payment of $2,000.00 received",
"created_at": "2026-09-03T11:21:27-04:00"
},
{
"type": "viewed",
"label": "Invoice viewed",
"description": "Opened by [email protected]",
"created_at": "2026-09-03T11:18:10-04:00"
},
{
"type": "created",
"label": "Invoice created",
"description": "Invoice created via API",
"created_at": "2026-09-03T11:17:43-04:00"
},
{
"type": "sent",
"label": "Invoice sent",
"description": "Marked as sent via API — shared manually (no email)",
"created_at": "2026-09-03T11:17:43-04:00"
}
]
}
}
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.
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" \
{
"data": {
"id": 1,
"token": "cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"invoice_number": "INV-0001",
"status": "paid",
"payment_terms": "net_15",
"issue_date": "2026-09-03",
"due_date": "2026-09-18",
"is_overdue": false,
"subtotal": 2000,
"total": 2000,
"amount_paid": 2000,
"balance": 0,
"allow_partial_payment": false,
"cover_fee_required": true,
"cover_fee_quote": {
"basis": "balance",
"base": 0,
"cc": {
"fee": 0,
"total": 0
},
"ach": {
"fee": 0,
"total": 0
}
},
"thank_you_note": null,
"public_url": "http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"customer": {
"id": 16032,
"name": "Scott Porter",
"email": "[email protected]"
},
"items": [
{
"id": 1,
"item_id": 1365,
"name": "Implementation Fee",
"description": null,
"quantity": 1,
"unit_price": 2000,
"amount": 2000
}
],
"payments": [
{
"amount": 2000,
"cover_fee": 56.81,
"paid_at": "2026-09-03T11:21:27-04:00",
"method": "+CC",
"transaction_id": 107272
}
],
"events": [
{
"type": "payment_received",
"label": "Payment received",
"description": "Payment of $2,000.00 received",
"created_at": "2026-09-03T11:21:27-04:00"
},
{
"type": "viewed",
"label": "Invoice viewed",
"description": "Opened by [email protected]",
"created_at": "2026-09-03T11:18:10-04:00"
},
{
"type": "created",
"label": "Invoice created",
"description": "Invoice created via API",
"created_at": "2026-09-03T11:17:43-04:00"
},
{
"type": "sent",
"label": "Invoice sent",
"description": "Marked as sent via API — shared manually (no email)",
"created_at": "2026-09-03T11:17:43-04:00"
}
]
}
}
Voids an invoice. Voiding is terminal — the invoice can no longer be paid. An already void or refunded invoice cannot be voided again.
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" \
{
"data": {
"id": 1,
"token": "cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"invoice_number": "INV-0001",
"status": "paid",
"payment_terms": "net_15",
"issue_date": "2026-09-03",
"due_date": "2026-09-18",
"is_overdue": false,
"subtotal": 2000,
"total": 2000,
"amount_paid": 2000,
"balance": 0,
"allow_partial_payment": false,
"cover_fee_required": true,
"cover_fee_quote": {
"basis": "balance",
"base": 0,
"cc": {
"fee": 0,
"total": 0
},
"ach": {
"fee": 0,
"total": 0
}
},
"thank_you_note": null,
"public_url": "http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"customer": {
"id": 16032,
"name": "Scott Porter",
"email": "[email protected]"
},
"items": [
{
"id": 1,
"item_id": 1365,
"name": "Implementation Fee",
"description": null,
"quantity": 1,
"unit_price": 2000,
"amount": 2000
}
],
"payments": [
{
"amount": 2000,
"cover_fee": 56.81,
"paid_at": "2026-09-03T11:21:27-04:00",
"method": "+CC",
"transaction_id": 107272
}
],
"events": [
{
"type": "payment_received",
"label": "Payment received",
"description": "Payment of $2,000.00 received",
"created_at": "2026-09-03T11:21:27-04:00"
},
{
"type": "viewed",
"label": "Invoice viewed",
"description": "Opened by [email protected]",
"created_at": "2026-09-03T11:18:10-04:00"
},
{
"type": "created",
"label": "Invoice created",
"description": "Invoice created via API",
"created_at": "2026-09-03T11:17:43-04:00"
},
{
"type": "sent",
"label": "Invoice sent",
"description": "Marked as sent via API — shared manually (no email)",
"created_at": "2026-09-03T11:17:43-04:00"
}
]
}
}
Clones any invoice into a new draft (copying its line items) with a freshly allocated invoice number.
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" \
{
"data": {
"id": 1,
"token": "cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"invoice_number": "INV-0001",
"status": "paid",
"payment_terms": "net_15",
"issue_date": "2026-09-03",
"due_date": "2026-09-18",
"is_overdue": false,
"subtotal": 2000,
"total": 2000,
"amount_paid": 2000,
"balance": 0,
"allow_partial_payment": false,
"cover_fee_required": true,
"cover_fee_quote": {
"basis": "balance",
"base": 0,
"cc": {
"fee": 0,
"total": 0
},
"ach": {
"fee": 0,
"total": 0
}
},
"thank_you_note": null,
"public_url": "http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"customer": {
"id": 16032,
"name": "Scott Porter",
"email": "[email protected]"
},
"items": [
{
"id": 1,
"item_id": 1365,
"name": "Implementation Fee",
"description": null,
"quantity": 1,
"unit_price": 2000,
"amount": 2000
}
],
"payments": [
{
"amount": 2000,
"cover_fee": 56.81,
"paid_at": "2026-09-03T11:21:27-04:00",
"method": "+CC",
"transaction_id": 107272
}
],
"events": [
{
"type": "payment_received",
"label": "Payment received",
"description": "Payment of $2,000.00 received",
"created_at": "2026-09-03T11:21:27-04:00"
},
{
"type": "viewed",
"label": "Invoice viewed",
"description": "Opened by [email protected]",
"created_at": "2026-09-03T11:18:10-04:00"
},
{
"type": "created",
"label": "Invoice created",
"description": "Invoice created via API",
"created_at": "2026-09-03T11:17:43-04:00"
},
{
"type": "sent",
"label": "Invoice sent",
"description": "Marked as sent via API — shared manually (no email)",
"created_at": "2026-09-03T11:17:43-04:00"
}
]
}
}
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 the processor. 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), and on approval the invoice status/payment history/per-line classification are updated exactly as a customer payment.
When the invoice has cover_fee_required, the processing fee for the method
being charged is added on top of data.amount — so the card or bank account
is charged more than the amount credited to the invoice. The invoice is
credited data.amount; the fee appears as cover_fee on the resulting entry
in the response's payments array. Card and ACH rates differ, so the same
data.amount produces a different charge per data.payment_type. Read
cover_fee_quote from the invoice beforehand to know the totals in advance.
The invoice must be open (Sent/Viewed/Partially Paid) with a balance due on an active card-processing merchant. A declined card is NOT recorded as a payment.
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" \
{
"data": {
"id": 1,
"token": "cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"invoice_number": "INV-0001",
"status": "paid",
"payment_terms": "net_15",
"issue_date": "2026-09-03",
"due_date": "2026-09-18",
"is_overdue": false,
"subtotal": 2000,
"total": 2000,
"amount_paid": 2000,
"balance": 0,
"allow_partial_payment": false,
"cover_fee_required": true,
"cover_fee_quote": {
"basis": "balance",
"base": 0,
"cc": {
"fee": 0,
"total": 0
},
"ach": {
"fee": 0,
"total": 0
}
},
"thank_you_note": null,
"public_url": "http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"customer": {
"id": 16032,
"name": "Scott Porter",
"email": "[email protected]"
},
"items": [
{
"id": 1,
"item_id": 1365,
"name": "Implementation Fee",
"description": null,
"quantity": 1,
"unit_price": 2000,
"amount": 2000
}
],
"payments": [
{
"amount": 2000,
"cover_fee": 56.81,
"paid_at": "2026-09-03T11:21:27-04:00",
"method": "+CC",
"transaction_id": 107272
}
],
"events": [
{
"type": "payment_received",
"label": "Payment received",
"description": "Payment of $2,000.00 received",
"created_at": "2026-09-03T11:21:27-04:00"
},
{
"type": "viewed",
"label": "Invoice viewed",
"description": "Opened by [email protected]",
"created_at": "2026-09-03T11:18:10-04:00"
},
{
"type": "created",
"label": "Invoice created",
"description": "Invoice created via API",
"created_at": "2026-09-03T11:17:43-04:00"
},
{
"type": "sent",
"label": "Invoice sent",
"description": "Marked as sent via API — shared manually (no email)",
"created_at": "2026-09-03T11:17:43-04:00"
}
]
}
}
Returns the public pay link (and token) for an invoice.
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" \
{
"data": {
"public_url": "https://example.test/invoice/abcd",
"token": "abcd"
}
}
Appends a single line item to a draft invoice and recalculates totals.
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" \
{
"data": {
"id": 1,
"token": "cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"invoice_number": "INV-0001",
"status": "paid",
"payment_terms": "net_15",
"issue_date": "2026-09-03",
"due_date": "2026-09-18",
"is_overdue": false,
"subtotal": 2000,
"total": 2000,
"amount_paid": 2000,
"balance": 0,
"allow_partial_payment": false,
"cover_fee_required": true,
"cover_fee_quote": {
"basis": "balance",
"base": 0,
"cc": {
"fee": 0,
"total": 0
},
"ach": {
"fee": 0,
"total": 0
}
},
"thank_you_note": null,
"public_url": "http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"customer": {
"id": 16032,
"name": "Scott Porter",
"email": "[email protected]"
},
"items": [
{
"id": 1,
"item_id": 1365,
"name": "Implementation Fee",
"description": null,
"quantity": 1,
"unit_price": 2000,
"amount": 2000
}
],
"payments": [
{
"amount": 2000,
"cover_fee": 56.81,
"paid_at": "2026-09-03T11:21:27-04:00",
"method": "+CC",
"transaction_id": 107272
}
],
"events": [
{
"type": "payment_received",
"label": "Payment received",
"description": "Payment of $2,000.00 received",
"created_at": "2026-09-03T11:21:27-04:00"
},
{
"type": "viewed",
"label": "Invoice viewed",
"description": "Opened by [email protected]",
"created_at": "2026-09-03T11:18:10-04:00"
},
{
"type": "created",
"label": "Invoice created",
"description": "Invoice created via API",
"created_at": "2026-09-03T11:17:43-04:00"
},
{
"type": "sent",
"label": "Invoice sent",
"description": "Marked as sent via API — shared manually (no email)",
"created_at": "2026-09-03T11:17:43-04:00"
}
]
}
}
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.
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" \
{
"data": {
"id": 1,
"token": "cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"invoice_number": "INV-0001",
"status": "paid",
"payment_terms": "net_15",
"issue_date": "2026-09-03",
"due_date": "2026-09-18",
"is_overdue": false,
"subtotal": 2000,
"total": 2000,
"amount_paid": 2000,
"balance": 0,
"allow_partial_payment": false,
"cover_fee_required": true,
"cover_fee_quote": {
"basis": "balance",
"base": 0,
"cc": {
"fee": 0,
"total": 0
},
"ach": {
"fee": 0,
"total": 0
}
},
"thank_you_note": null,
"public_url": "http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"customer": {
"id": 16032,
"name": "Scott Porter",
"email": "[email protected]"
},
"items": [
{
"id": 1,
"item_id": 1365,
"name": "Implementation Fee",
"description": null,
"quantity": 1,
"unit_price": 2000,
"amount": 2000
}
],
"payments": [
{
"amount": 2000,
"cover_fee": 56.81,
"paid_at": "2026-09-03T11:21:27-04:00",
"method": "+CC",
"transaction_id": 107272
}
],
"events": [
{
"type": "payment_received",
"label": "Payment received",
"description": "Payment of $2,000.00 received",
"created_at": "2026-09-03T11:21:27-04:00"
},
{
"type": "viewed",
"label": "Invoice viewed",
"description": "Opened by [email protected]",
"created_at": "2026-09-03T11:18:10-04:00"
},
{
"type": "created",
"label": "Invoice created",
"description": "Invoice created via API",
"created_at": "2026-09-03T11:17:43-04:00"
},
{
"type": "sent",
"label": "Invoice sent",
"description": "Marked as sent via API — shared manually (no email)",
"created_at": "2026-09-03T11:17:43-04:00"
}
]
}
}
Removes a single line item from a draft invoice and recalculates totals.
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" \
{
"data": {
"id": 1,
"token": "cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"invoice_number": "INV-0001",
"status": "paid",
"payment_terms": "net_15",
"issue_date": "2026-09-03",
"due_date": "2026-09-18",
"is_overdue": false,
"subtotal": 2000,
"total": 2000,
"amount_paid": 2000,
"balance": 0,
"allow_partial_payment": false,
"cover_fee_required": true,
"cover_fee_quote": {
"basis": "balance",
"base": 0,
"cc": {
"fee": 0,
"total": 0
},
"ach": {
"fee": 0,
"total": 0
}
},
"thank_you_note": null,
"public_url": "http://app.dimepayments.com/invoice/cNSdqmHw52vavVVFYchTd609JEIVJWs64HBw9QeK",
"customer": {
"id": 16032,
"name": "Scott Porter",
"email": "[email protected]"
},
"items": [
{
"id": 1,
"item_id": 1365,
"name": "Implementation Fee",
"description": null,
"quantity": 1,
"unit_price": 2000,
"amount": 2000
}
],
"payments": [
{
"amount": 2000,
"cover_fee": 56.81,
"paid_at": "2026-09-03T11:21:27-04:00",
"method": "+CC",
"transaction_id": 107272
}
],
"events": [
{
"type": "payment_received",
"label": "Payment received",
"description": "Payment of $2,000.00 received",
"created_at": "2026-09-03T11:21:27-04:00"
},
{
"type": "viewed",
"label": "Invoice viewed",
"description": "Opened by [email protected]",
"created_at": "2026-09-03T11:18:10-04:00"
},
{
"type": "created",
"label": "Invoice created",
"description": "Invoice created via API",
"created_at": "2026-09-03T11:17:43-04:00"
},
{
"type": "sent",
"label": "Invoice sent",
"description": "Marked as sent via API — shared manually (no email)",
"created_at": "2026-09-03T11:17:43-04:00"
}
]
}
}
Lists the Merchant's items (funds/designations) available to use as invoice line items, ordered alphabetically.
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
}
}"
{
"data": [
{
"id": 5,
"name": "Consulting",
"description": null,
"price": 125
}
]
}
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.
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
}
}"
{
"data": {
"id": 5,
"name": "Consulting",
"description": null,
"price": 125,
"tax_deductible": false
}
}
Retrieves a paginated (cursor) list of recurring-invoice templates for a Merchant, optionally filtered by status.
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\"
}
}"
{
"data": [
{
"id": null,
"status": "Active",
"recurrence_schedule": "Monthly",
"payment_terms": "net_15",
"cover_fee_required": false,
"start_date": "2026-09-22",
"end_date": null,
"next_run_date": "2026-10-22",
"last_run_date": null,
"customer_name": "Lafayette Considine"
},
{
"id": null,
"status": "Active",
"recurrence_schedule": "Monthly",
"payment_terms": "net_15",
"cover_fee_required": false,
"start_date": "2026-09-22",
"end_date": null,
"next_run_date": "2026-10-22",
"last_run_date": null,
"customer_name": "Margaretta Thiel"
}
],
"links": {
"prev": null,
"next": null
},
"meta": {
"path": "/",
"per_page": 500,
"next_cursor": null,
"prev_cursor": null
}
}
Retrieves a single recurring-invoice template with its line items, the invoices it has generated (the 50 most recent), and the upcoming run dates.
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" \
{
"data": {
"id": null,
"status": "Active",
"recurrence_schedule": "Monthly",
"payment_terms": "net_15",
"cover_fee_required": false,
"start_date": "2026-09-22",
"end_date": null,
"next_run_date": "2026-10-22",
"last_run_date": null,
"thank_you_note": null,
"customer": {
"id": 16371,
"name": "Marcelo Predovic",
"email": "[email protected]"
},
"items": [],
"upcoming_run_dates": [
"2026-10-22",
"2026-11-22",
"2026-12-22"
],
"invoices": []
}
}
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.
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
}
]
}
}"
{
"data": {
"id": null,
"status": "Active",
"recurrence_schedule": "Monthly",
"payment_terms": "net_15",
"cover_fee_required": false,
"start_date": "2026-09-22",
"end_date": null,
"next_run_date": "2026-10-22",
"last_run_date": null,
"thank_you_note": null,
"customer": {
"id": 16372,
"name": "Pauline Runte",
"email": "[email protected]"
},
"items": [],
"upcoming_run_dates": [
"2026-10-22",
"2026-11-22",
"2026-12-22"
],
"invoices": []
}
}
Cancels an active recurring-invoice template. No further invoices are generated. Only active templates can be cancelled.
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" \
{
"data": {
"id": null,
"status": "Active",
"recurrence_schedule": "Monthly",
"payment_terms": "net_15",
"cover_fee_required": false,
"start_date": "2026-09-22",
"end_date": null,
"next_run_date": "2026-10-22",
"last_run_date": null,
"thank_you_note": null,
"customer": {
"id": 16373,
"name": "Marcelo Predovic",
"email": "[email protected]"
},
"items": [],
"upcoming_run_dates": [
"2026-10-22",
"2026-11-22",
"2026-12-22"
],
"invoices": []
}
}
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.
This endpoint shows all payment methods for a customer. Must pass at least one filter to select a specific customer
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]\"
}
}"
{
"data": [
{
"id": 2,
"type": "cc",
"token": "qYV343433d9BEu75dqES1005",
"first_name": "Ben",
"last_name": "Habeck",
"cc_name_on_card": "Ben Habeck",
"cc_last_four": "1005",
"cc_expiration_date": "05/2029",
"cc_brand": "Amex",
"status": "Default",
"status_date": "2025-05-20 14:04:55",
"enabled": true,
"default": true,
"addr1": "53 S. Main Street",
"addr2": "",
"addr3": null,
"city": "Alpharetta",
"state": "GA",
"zip": "30009"
},
{
"id": 2,
"type": "cc",
"token": "qYV343433d9BEu75dqES1005",
"first_name": "Ben",
"last_name": "Habeck",
"cc_name_on_card": "Ben Habeck",
"cc_last_four": "1005",
"cc_expiration_date": "05/2029",
"cc_brand": "Amex",
"status": "Default",
"status_date": "2025-05-20 14:04:55",
"enabled": true,
"default": true,
"addr1": "53 S. Main Street",
"addr2": "",
"addr3": null,
"city": "Alpharetta",
"state": "GA",
"zip": "30009"
}
],
"links": {
"prev": null,
"next": null
},
"meta": {
"path": "/",
"per_page": 15,
"next_cursor": null,
"prev_cursor": null
}
}
This endpoint shows a specific payment method for a customer. Must pass at least one filter to select a specific customer
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]\"
}
}"
{
"data": {
"id": 2,
"type": "cc",
"token": "qYV343433d9BEu75dqES1005",
"first_name": "Ben",
"last_name": "Habeck",
"cc_name_on_card": "Ben Habeck",
"cc_last_four": "1005",
"cc_expiration_date": "05/2029",
"cc_brand": "Amex",
"status": "Default",
"status_date": "2025-05-20 14:04:55",
"enabled": true,
"default": true,
"addr1": "53 S. Main Street",
"addr2": "",
"addr3": null,
"city": "Alpharetta",
"state": "GA",
"zip": "30009"
}
}
This endpoint creates a new payment method for a customer. Must pass at least one filter to select a specific customer
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\"
}
}"
{
"data": {
"id": 2,
"type": "cc",
"token": "qYV343433d9BEu75dqES1005",
"first_name": "Ben",
"last_name": "Habeck",
"cc_name_on_card": "Ben Habeck",
"cc_last_four": "1005",
"cc_expiration_date": "05/2029",
"cc_brand": "Amex",
"status": "Default",
"status_date": "2025-05-20 14:04:55",
"enabled": true,
"default": true,
"addr1": "53 S. Main Street",
"addr2": "",
"addr3": null,
"city": "Alpharetta",
"state": "GA",
"zip": "30009"
}
}
This endpoint updates a payment method for a customer. Must pass at least one filter to select a specific customer
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\"
}
}"
{
"data": {
"id": 2,
"type": "cc",
"token": "qYV343433d9BEu75dqES1005",
"first_name": "Ben",
"last_name": "Habeck",
"cc_name_on_card": "Ben Habeck",
"cc_last_four": "1005",
"cc_expiration_date": "05/2029",
"cc_brand": "Amex",
"status": "Default",
"status_date": "2025-05-20 14:04:55",
"enabled": true,
"default": true,
"addr1": "53 S. Main Street",
"addr2": "",
"addr3": null,
"city": "Alpharetta",
"state": "GA",
"zip": "30009"
}
}
This endpoint deletes a payment method for a customer. Must pass at least one filter to select a specific customer
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\"
}
}"
{
"data": {
"message": "Payment Method deleted successfully."
}
}
APIs for managing recurring payments. Depending on API KEY permissions, one should be able to create, edit, pause, cancel along with other functions.
Retrieves a list of recurring payments for a given Merchant, filtered by various parameters.
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\"
}
}"
{
"data": [
{
"id": 1,
"name": "Car Was Solutions ",
"amount": "4,574.99",
"cover_processing_amount": null,
"start_date": "2024-11-07T05:00:00.000000Z",
"end_date": "2026-12-31T05:00:00.000000Z",
"recurrence_schedule": "Monthly",
"last_run_date": "2025-12-15T05:00:00.000000Z",
"last_run_status": "Failed",
"last_run_failed_count": 3,
"next_run_date": null,
"status": "Cancelled",
"paused_until_date": null,
"customer_uuid": "9a242468-6b4e-4382-a61b-a728fbc8edae",
"cancelled_at": "2026-06-29T04:00:00.000000Z",
"error": "DECLINE",
"payment_method": {
"id": 7,
"type": "cc",
"last_four": "4003",
"expiration": "09/2029",
"zip": "",
"name_on_card": "Geo Perez"
},
"shipping_address": {
"addr1": null,
"addr2": null,
"city": null,
"state": null,
"zip": null
}
},
{
"id": 1,
"name": "Car Was Solutions ",
"amount": "4,574.99",
"cover_processing_amount": null,
"start_date": "2024-11-07T05:00:00.000000Z",
"end_date": "2026-12-31T05:00:00.000000Z",
"recurrence_schedule": "Monthly",
"last_run_date": "2025-12-15T05:00:00.000000Z",
"last_run_status": "Failed",
"last_run_failed_count": 3,
"next_run_date": null,
"status": "Cancelled",
"paused_until_date": null,
"customer_uuid": "9a242468-6b4e-4382-a61b-a728fbc8edae",
"cancelled_at": "2026-06-29T04:00:00.000000Z",
"error": "DECLINE",
"payment_method": {
"id": 7,
"type": "cc",
"last_four": "4003",
"expiration": "09/2029",
"zip": "",
"name_on_card": "Geo Perez"
},
"shipping_address": {
"addr1": null,
"addr2": null,
"city": null,
"state": null,
"zip": null
}
}
],
"links": {
"prev": null,
"next": null
},
"meta": {
"path": "/",
"per_page": 15,
"next_cursor": null,
"prev_cursor": null
}
}
Pauses a scheduled recurring payment. If pause_until_date is not passed, it will be set to 2099-12-31
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\"
}
}"
{
"data": {
"id": 1,
"name": "Car Was Solutions ",
"amount": "4,574.99",
"cover_processing_amount": null,
"start_date": "2024-11-07T05:00:00.000000Z",
"end_date": "2026-12-31T05:00:00.000000Z",
"recurrence_schedule": "Monthly",
"last_run_date": "2025-12-15T05:00:00.000000Z",
"last_run_status": "Failed",
"last_run_failed_count": 3,
"next_run_date": null,
"status": "Cancelled",
"paused_until_date": null,
"customer_uuid": "9a242468-6b4e-4382-a61b-a728fbc8edae",
"cancelled_at": "2026-06-29T04:00:00.000000Z",
"error": "DECLINE",
"payment_method": {
"id": 7,
"type": "cc",
"last_four": "4003",
"expiration": "09/2029",
"zip": "",
"name_on_card": "Geo Perez"
},
"shipping_address": {
"addr1": null,
"addr2": null,
"city": null,
"state": null,
"zip": null
}
}
}
Cancels a scheduled recurring payment.
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
}
}"
{
"data": {
"id": 1,
"name": "Car Was Solutions ",
"amount": "4,574.99",
"cover_processing_amount": null,
"start_date": "2024-11-07T05:00:00.000000Z",
"end_date": "2026-12-31T05:00:00.000000Z",
"recurrence_schedule": "Monthly",
"last_run_date": "2025-12-15T05:00:00.000000Z",
"last_run_status": "Failed",
"last_run_failed_count": 3,
"next_run_date": null,
"status": "Cancelled",
"paused_until_date": null,
"customer_uuid": "9a242468-6b4e-4382-a61b-a728fbc8edae",
"cancelled_at": "2026-06-29T04:00:00.000000Z",
"error": "DECLINE",
"payment_method": {
"id": 7,
"type": "cc",
"last_four": "4003",
"expiration": "09/2029",
"zip": "",
"name_on_card": "Geo Perez"
},
"shipping_address": {
"addr1": null,
"addr2": null,
"city": null,
"state": null,
"zip": null
}
}
}
Activates a scheduled recurring payment. Set to status of Active and calculates next run date.
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
}
}"
{
"data": {
"id": 1,
"name": "Car Was Solutions ",
"amount": "4,574.99",
"cover_processing_amount": null,
"start_date": "2024-11-07T05:00:00.000000Z",
"end_date": "2026-12-31T05:00:00.000000Z",
"recurrence_schedule": "Monthly",
"last_run_date": "2025-12-15T05:00:00.000000Z",
"last_run_status": "Failed",
"last_run_failed_count": 3,
"next_run_date": null,
"status": "Cancelled",
"paused_until_date": null,
"customer_uuid": "9a242468-6b4e-4382-a61b-a728fbc8edae",
"cancelled_at": "2026-06-29T04:00:00.000000Z",
"error": "DECLINE",
"payment_method": {
"id": 7,
"type": "cc",
"last_four": "4003",
"expiration": "09/2029",
"zip": "",
"name_on_card": "Geo Perez"
},
"shipping_address": {
"addr1": null,
"addr2": null,
"city": null,
"state": null,
"zip": null
}
}
}
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.
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,
\"customer_covers_fee\": true,
\"shipping_address\": {
\"addr1\": \"123 Main St.\",
\"addr2\": \"apt 1\",
\"city\": \"Alpharetta.\",
\"state\": \"GA.\",
\"zip\": \"12345.\"
}
}
}"
{
"data": {
"id": 1,
"name": "Car Was Solutions ",
"amount": "4,574.99",
"cover_processing_amount": null,
"start_date": "2024-11-07T05:00:00.000000Z",
"end_date": "2026-12-31T05:00:00.000000Z",
"recurrence_schedule": "Monthly",
"last_run_date": "2025-12-15T05:00:00.000000Z",
"last_run_status": "Failed",
"last_run_failed_count": 3,
"next_run_date": null,
"status": "Cancelled",
"paused_until_date": null,
"customer_uuid": "9a242468-6b4e-4382-a61b-a728fbc8edae",
"cancelled_at": "2026-06-29T04:00:00.000000Z",
"error": "DECLINE",
"payment_method": {
"id": 7,
"type": "cc",
"last_four": "4003",
"expiration": "09/2029",
"zip": "",
"name_on_card": "Geo Perez"
},
"shipping_address": {
"addr1": null,
"addr2": null,
"city": null,
"state": null,
"zip": null
}
}
}
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.
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\",
\"customer_covers_fee\": true,
\"shipping_address\": {
\"addr1\": \"123 Main St.\",
\"addr2\": \"apt 1\",
\"city\": \"Alpharetta.\",
\"state\": \"GA.\",
\"zip\": \"12345.\"
}
}
}"
{
"data": {
"id": 1,
"name": "Car Was Solutions ",
"amount": "4,574.99",
"cover_processing_amount": null,
"start_date": "2024-11-07T05:00:00.000000Z",
"end_date": "2026-12-31T05:00:00.000000Z",
"recurrence_schedule": "Monthly",
"last_run_date": "2025-12-15T05:00:00.000000Z",
"last_run_status": "Failed",
"last_run_failed_count": 3,
"next_run_date": null,
"status": "Cancelled",
"paused_until_date": null,
"customer_uuid": "9a242468-6b4e-4382-a61b-a728fbc8edae",
"cancelled_at": "2026-06-29T04:00:00.000000Z",
"error": "DECLINE",
"payment_method": {
"id": 7,
"type": "cc",
"last_four": "4003",
"expiration": "09/2029",
"zip": "",
"name_on_card": "Geo Perez"
},
"shipping_address": {
"addr1": null,
"addr2": null,
"city": null,
"state": null,
"zip": null
}
}
}
Show details of a scheduled recurring payment.
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
}
}"
{
"data": {
"id": 1,
"name": "Car Was Solutions ",
"amount": "4,574.99",
"cover_processing_amount": null,
"start_date": "2024-11-07T05:00:00.000000Z",
"end_date": "2026-12-31T05:00:00.000000Z",
"recurrence_schedule": "Monthly",
"last_run_date": "2025-12-15T05:00:00.000000Z",
"last_run_status": "Failed",
"last_run_failed_count": 3,
"next_run_date": null,
"status": "Cancelled",
"paused_until_date": null,
"customer_uuid": "9a242468-6b4e-4382-a61b-a728fbc8edae",
"cancelled_at": "2026-06-29T04:00:00.000000Z",
"error": "DECLINE",
"payment_method": {
"id": 7,
"type": "cc",
"last_four": "4003",
"expiration": "09/2029",
"zip": "",
"name_on_card": "Geo Perez"
},
"shipping_address": {
"addr1": null,
"addr2": null,
"city": null,
"state": null,
"zip": null
}
}
}
Delete a recurring payment.
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
}
}"
{
"data": {
"message": "Recurring payment successfully deleted."
}
}
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.
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" \
{
"data": [
{
"id": null,
"name": "Monthly Membership 54634",
"description": "Qui commodi incidunt iure odit.",
"recurrence_schedule": "Monthly",
"status": "active",
"subtotal": 0,
"total": 0,
"token": "3G7NdMXiBDJ6X7bosY061UoySQUxE7cTGnB2FHUp",
"public_url": "http://app.dimepayments.com/subscribe/3G7NdMXiBDJ6X7bosY061UoySQUxE7cTGnB2FHUp",
"allow_public": true,
"created_at": null,
"items": []
},
{
"id": null,
"name": "Monthly Membership 35354",
"description": "Ex voluptatem laboriosam praesentium quis adipisci.",
"recurrence_schedule": "Monthly",
"status": "active",
"subtotal": 0,
"total": 0,
"token": "nf9if1KTegZn15OII510i0s5Ibw93tgSuO7iRUzf",
"public_url": "http://app.dimepayments.com/subscribe/nf9if1KTegZn15OII510i0s5Ibw93tgSuO7iRUzf",
"allow_public": true,
"created_at": null,
"items": []
}
],
"links": {
"prev": null,
"next": null
},
"meta": {
"path": "/",
"per_page": 500,
"next_cursor": null,
"prev_cursor": null
}
}
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" \
{
"data": {
"id": null,
"name": "Monthly Membership 80304",
"description": "Commodi incidunt iure odit.",
"recurrence_schedule": "Monthly",
"status": "active",
"subtotal": 0,
"total": 0,
"token": "2GoGWosXssjWWWrrIBKSxGkPp4R2Xb8dCHI6heJw",
"public_url": "http://app.dimepayments.com/subscribe/2GoGWosXssjWWWrrIBKSxGkPp4R2Xb8dCHI6heJw",
"allow_public": true,
"created_at": null,
"items": []
}
}
The plan is created as a draft. Publish it (or use the merchant UI) before customers can subscribe.
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
}
]
}
}"
{
"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": "H8QrmUgkmlOQYH2NPLUcJvHIY2I27bOmNGn2iJ0q",
"public_url": "http://app.dimepayments.com/subscribe/H8QrmUgkmlOQYH2NPLUcJvHIY2I27bOmNGn2iJ0q",
"allow_public": true,
"created_at": null,
"items": []
}
}
Replaces the plan's fields and line items wholesale. Existing subscribers keep their own snapshot and are unaffected.
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" \
{
"data": {
"id": null,
"name": "Community Circle 63526",
"description": null,
"recurrence_schedule": "Monthly",
"status": "active",
"subtotal": 0,
"total": 0,
"token": "3icVdZHR02Sjogda0RPSgCirYn7XQZ0zln3x32Rk",
"public_url": "http://app.dimepayments.com/subscribe/3icVdZHR02Sjogda0RPSgCirYn7XQZ0zln3x32Rk",
"allow_public": true,
"created_at": null,
"items": []
}
}
Only plans with no subscribers can be deleted; otherwise archive it.
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" \
{
"data": {
"message": "Subscription plan deleted"
}
}
Moves a draft plan to active so customers can subscribe. The plan must be a draft and carry at least one line item.
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" \
{
"data": {
"id": null,
"name": "Monthly Membership 14650",
"description": null,
"recurrence_schedule": "Monthly",
"status": "active",
"subtotal": 0,
"total": 0,
"token": "NOIsACYHidsVtD35hmwriVpZQ604ExlWYRfJanwf",
"public_url": "http://app.dimepayments.com/subscribe/NOIsACYHidsVtD35hmwriVpZQ604ExlWYRfJanwf",
"allow_public": true,
"created_at": null,
"items": []
}
}
Stops new subscriptions and hides it from the catalog. Existing subscribers keep their subscription.
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" \
{
"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": "FGZR14ITUjzTgDRZjCUUycpqmuWLv2em01kZ9PPN",
"public_url": "http://app.dimepayments.com/subscribe/FGZR14ITUjzTgDRZjCUUycpqmuWLv2em01kZ9PPN",
"allow_public": true,
"created_at": null,
"items": []
}
}
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.
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" \
{
"data": {
"id": null,
"name": "Monthly Membership 45193",
"description": "Odit et et modi.",
"recurrence_schedule": "Monthly",
"status": "active",
"subtotal": 0,
"total": 0,
"token": "zOiiyTxB6dwjOTciRdSPMq28DUt79qERchbW7ooj",
"public_url": "http://app.dimepayments.com/subscribe/zOiiyTxB6dwjOTciRdSPMq28DUt79qERchbW7ooj",
"allow_public": true,
"created_at": null,
"items": []
}
}
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.
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" \
{
"data": {
"subscription_id": 10,
"status": "Active",
"next_run_date": "2026-08-21",
"transaction_number": "TXN-123",
"amount": 25
}
}
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.
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\"
}
}"
{
"data": [
{
"id": null,
"subscription_plan_id": 211,
"plan_name": "Premium Plan 24492",
"amount": "0.00",
"recurrence_schedule": "Monthly",
"start_date": "2026-08-22T04:00:00.000000Z",
"end_date": null,
"last_run_date": null,
"last_run_status": null,
"last_run_failed_count": 0,
"next_run_date": "2026-10-22T04:00:00.000000Z",
"status": "Active",
"paused_until_date": null,
"cancelled_at": null,
"cancelled_by": null,
"customer_uuid": "7528ef5b-50a4-4124-879d-321631ac5948",
"error": null,
"payment_method": {
"id": 6187,
"type": "cc",
"last_four": "3642",
"expiration": "08/2030"
}
},
{
"id": null,
"subscription_plan_id": 212,
"plan_name": "Monthly Membership 88481",
"amount": "0.00",
"recurrence_schedule": "Monthly",
"start_date": "2026-08-22T04:00:00.000000Z",
"end_date": null,
"last_run_date": null,
"last_run_status": null,
"last_run_failed_count": 0,
"next_run_date": "2026-10-22T04:00:00.000000Z",
"status": "Active",
"paused_until_date": null,
"cancelled_at": null,
"cancelled_by": null,
"customer_uuid": "f5af1bab-c5c7-4eed-85a1-b82e373c935f",
"error": null,
"payment_method": {
"id": 6188,
"type": "cc",
"last_four": "5053",
"expiration": "08/2030"
}
}
],
"links": {
"prev": null,
"next": null
},
"meta": {
"path": "/",
"per_page": 500,
"next_cursor": null,
"prev_cursor": null
}
}
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" \
{
"data": {
"id": null,
"subscription_plan_id": 213,
"plan_name": "Monthly Membership 30805",
"amount": "0.00",
"recurrence_schedule": "Monthly",
"start_date": "2026-08-22T04:00:00.000000Z",
"end_date": null,
"last_run_date": null,
"last_run_status": null,
"last_run_failed_count": 0,
"next_run_date": "2026-10-22T04:00:00.000000Z",
"status": "Active",
"paused_until_date": null,
"cancelled_at": null,
"cancelled_by": null,
"customer_uuid": "a35294f2-8012-40c8-a165-32d152edabc3",
"error": null,
"payment_method": {
"id": 6189,
"type": "cc",
"last_four": "1161",
"expiration": "08/2030"
}
}
}
Pauses an active subscription until the given date. If data.pause_until_date
is omitted it pauses indefinitely. Fires the SUBSCRIPTION_PAUSED webhook.
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" \
{
"data": {
"id": null,
"subscription_plan_id": 214,
"plan_name": "Monthly Membership 93082",
"amount": "0.00",
"recurrence_schedule": "Monthly",
"start_date": "2026-08-22T04:00:00.000000Z",
"end_date": null,
"last_run_date": null,
"last_run_status": null,
"last_run_failed_count": 0,
"next_run_date": "2026-10-22T04:00:00.000000Z",
"status": "Active",
"paused_until_date": null,
"cancelled_at": null,
"cancelled_by": null,
"customer_uuid": "97b27f0e-9073-4f5b-a3af-e47df7800514",
"error": null,
"payment_method": {
"id": 6190,
"type": "cc",
"last_four": "7849",
"expiration": "08/2030"
}
}
}
Reactivates a paused subscription and recomputes its next charge date. Fires
the SUBSCRIPTION_RESUMED webhook.
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" \
{
"data": {
"id": null,
"subscription_plan_id": 215,
"plan_name": "Monthly Membership 43383",
"amount": "0.00",
"recurrence_schedule": "Monthly",
"start_date": "2026-08-22T04:00:00.000000Z",
"end_date": null,
"last_run_date": null,
"last_run_status": null,
"last_run_failed_count": 0,
"next_run_date": "2026-10-22T04:00:00.000000Z",
"status": "Active",
"paused_until_date": null,
"cancelled_at": null,
"cancelled_by": null,
"customer_uuid": "d3fe0d42-d878-4b50-b28a-54bea540bcb1",
"error": null,
"payment_method": {
"id": 6191,
"type": "cc",
"last_four": "2895",
"expiration": "08/2030"
}
}
}
Permanently cancels a subscription — no further charges are made. Fires the
SUBSCRIPTION_CANCELLED webhook.
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" \
{
"data": {
"id": null,
"subscription_plan_id": 216,
"plan_name": "Monthly Membership 92439",
"amount": "0.00",
"recurrence_schedule": "Monthly",
"start_date": "2026-08-22T04:00:00.000000Z",
"end_date": null,
"last_run_date": null,
"last_run_status": null,
"last_run_failed_count": 0,
"next_run_date": "2026-10-22T04:00:00.000000Z",
"status": "Active",
"paused_until_date": null,
"cancelled_at": null,
"cancelled_by": null,
"customer_uuid": "d736d007-bca0-4347-a467-58408c36d132",
"error": null,
"payment_method": {
"id": 6192,
"type": "cc",
"last_four": "2074",
"expiration": "08/2030"
}
}
}
APIs for use through Zapier. Depending on API KEY permissions, one should be able to see customers and transactions data.
Get a list of all new customers since the last time it was checked.
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" {
"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"
}
]
}
Get a list of all transactions for a Merchant
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" [
{
"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]"
}
]
Get a list of all transactions for a given customer using their phone number
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
}"
[
{
"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]"
}
]
Get the most recent transactions details
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" [
{
"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]"
}
]