Record a manual payment
Records a payment received outside DCDial (cash, check, wire…) and applies it to the account balance. No money is moved.
Parameters
Send as application/x-www-form-urlencoded.
typestringrequiredSelects the operation. Always
add_paymentfor this endpoint.tokenstringrequiredYour API token from Log in. See Authentication.
Your reference for the account (its accountid).
ExampleACC-10045Date of the payment (YYYY-MM-DD).
Example2026-10-15How it was paid: wire transfer (WT), cash, check, card (CC), ACH or PayPal (PP).
One ofWTCASHCHECKCCACHPPAmount in the account currency.
Example150Your DCDial company ID.
Example101Free-text note.
curl https://api.dcdial.com/api/ \ -d type=add_payment \ -d token="$DCDIAL_TOKEN" \ -d account_id=ACC-10045 \ -d payment_date=2026-10-15 \ -d payment_method=WT \ -d amount=150 \ -d company_id=101<?php$ch = curl_init('https://api.dcdial.com/api/');curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => http_build_query([ 'type' => 'add_payment', 'token' => getenv('DCDIAL_TOKEN'), 'account_id' => 'ACC-10045', 'payment_date' => '2026-10-15', 'payment_method' => 'WT', 'amount' => 150, 'company_id' => 101, ]),]);$result = json_decode(curl_exec($ch), true);curl_close($ch);
if (($result['response']['success'] ?? 0) != 1) { throw new RuntimeException($result['response']['error'] ?? 'Request failed');}const res = await fetch('https://api.dcdial.com/api/', { method: 'POST', body: new URLSearchParams({ type: "add_payment", token: process.env.DCDIAL_TOKEN, account_id: "ACC-10045", payment_date: "2026-10-15", payment_method: "WT", amount: "150", company_id: "101", }),});const { response } = await res.json();if (response.success != 1) throw new Error(response.error);import osimport requests
r = requests.post( "https://api.dcdial.com/api/", data={ "type": "add_payment", "token": os.environ["DCDIAL_TOKEN"], "account_id": "ACC-10045", "payment_date": "2026-10-15", "payment_method": "WT", "amount": 150, "company_id": 101, }, timeout=30,)response = r.json()["response"]if str(response.get("success")) != "1": raise RuntimeError(response.get("error")){ "response": { "success": "1", "PaymentID": "90311", "error": "" }}Try it