Dubsado automation · runs weekly
Log check and cash payments on Dubsado invoices
Some clients pay by check, cash or bank transfer instead of the invoice link. Until you log each one in Dubsado, the invoice shows a balance, the payment reminder still goes out, and your Amount remaining is wrong.
Cotlet does it in your own Dubsado account with list_clients, list_invoices and record_manual_payment, called by your AI agent, an n8n workflow or a script.
Hosted · nothing to install or maintain
Official options
Can Dubsado do this on its own?
Dubsado has no API to log payments (checked 12 Oct 2026), and its Zapier New Payment Received trigger fires only for processor payments, never for manually logged ones. Payments through Dubsado Payments, Square or PayPal are recorded automatically; everything paid outside Dubsado has to be logged by hand on each invoice's Transactions tab.
By hand
How you do it in Dubsado today
- Find the invoice: open the Invoicing page, use the Invoices widget on Home, or click Amount remaining under Insights > Finance reports to see every open invoice.
- Open the invoice and click the Transactions tab in the details column, then Payment (or + Log a payment when the invoice has no transactions yet).
- In the Log payment dialog, set the Date the payment was received, choose the Payment method (Cash, Check, Credit, E-transfer and others) and enter the Amount; Add max amount fills in the whole balance.
- Add a Description such as the check number and click Log Payment, or Mark invoice as paid when it covers the balance.
- Repeat for every check and transfer. Matching a deposit to the right invoice and installment is the slow part, and a payment logged twice or on the wrong project is easy to miss.
With an agent
How to log check and cash payments on Dubsado invoices
Prompt
Here are this week's checks and e-transfers. Match each one to the open Dubsado invoice it pays, log it as a manual payment, and list who still owes me. - 01
Match each payment to one invoice
For each line you give (payer, amount, date, check number), the agent finds the client with list_clients and their open invoices with list_invoices. An amount that equals a balance or the next installment is a match; two invoices that fit equally go back to you.
- 02
Stop on amounts that do not fit
Dubsado refuses a payment larger than the remaining balance, so an overpayment is reported instead of split across invoices. A payment that fits no open invoice, or comes from someone who is not a client, is listed as unmatched.
- 03
Guard against double logging
When the balance is already lower by that exact amount, or the invoice is paid, the agent assumes it was logged before and skips it. The check number goes into the description so the next run and your bookkeeping can tell payments apart.
- 04
Log with your OK
record_manual_payment uses the method the client actually used and the date the money arrived, not today's date. You approve each payment, or the whole batch after reading the match list.
- 05
Report what is still owed
The run ends with list_invoices for every unpaid invoice: client, balance and the next due date, overdue ones first, so the Monday "who owes me" list comes out of the same run.
What you get back
Example data
Logged after your OK (3):
Check #1042, $800.00 from Acme Co: invoice 0042 "Acme rebrand", balance now $0.00, marked Paid.
E-transfer $400.00 from Maya Chen: invoice 0051 "Spring brand shoot", installment 1 of 3, balance $800.00.
Cash $150.00 from Leo Grant: invoice 0049, balance now $0.00.
Not logged: $1,250.00 from R. Patel is more than the $1,000.00 balance on invoice 0047; check the amount.
Still owed: 4 invoices, $3,150.00. Overdue: 0038 "Kim family session", $450.00 due 1 Oct. Other ways to ask
- Every Monday, list unpaid Dubsado invoices with what each client still owes, overdue first, without logging anything.
- Log check #2210 for $500 from the Lopez wedding against the second installment and tell me what is left.
- Go through my bank export for September, match the e-transfers to Dubsado invoices and show me the matches before logging any.
Before you automate it
What Dubsado allows, and what to know first
- Dubsado does not let a manual payment exceed the invoice's remaining balance, and a payment that clears the balance moves the invoice to Paid.
- Only manually logged Dubsado payments can be edited or deleted; payments through Dubsado Payments are locked and can only be refunded.
- Logging a manual payment in Dubsado sends the client no receipt; the invoice itself lists the payment, and you share it as a PDF or link when the client wants proof.
- Dubsado payment reminders for an installment stop once that installment is paid in full, while logging or editing a manual payment does not cancel the client's autopay enrollment.
- Dubsado invoices with any transaction cannot be deleted; to stop collecting, you close the invoice, which marks the rest as uncollectible and cancels the remaining reminders.
record_manual_payment asks for your OK by default. To run it weekly without you, switch confirmation off for that tool in your dashboard.
Sources: Dubsado Help: Managing manual payments · Dubsado Help: Send transaction receipts to clients · Dubsado Help: Automated payment reminders · Dubsado Help: Finance reports
REST
Call record_manual_payment from a script
curl
curl https://cotlet.dev/api/v1/dubsado/record_manual_payment \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"invoice_id":"inv_20417","amount":"400.00","paid_on":"2026-10-09","method":"e_transfer","description":"E-transfer ref 7731"}' Example response
{
"invoice_id": "inv_20417",
"amount": "400.00",
"method": "check",
"paid_on": "2026-10-12",
"balance": "800.00",
"invoice_status": "unpaid"
} MCP: add https://cotlet.dev/mcp/v1 with the same key; the tool is dubsado_record_manual_payment. Example data.
Schedule it in n8n, Make, Zapier or cronTools
Dubsado tools this automation uses
| Tool | Parameters |
|---|---|
| list_clients | query, limit, cursor |
| list_invoices | status, project_id, due_before, limit, cursor |
| record_manual_payment | invoice_id, amount, paid_on, method, description |
Give your agent access to Dubsado.
Free 7-day trial with 5,000 credits, no card needed. Cotlet is independent and not affiliated with Dubsado.