Keep a purchase ledger separate from sales outcomes
Create one row for each agreed purchase transaction. Record the source lead ID, buyer transaction ID, source, campaign, acceptance time, accepted price and currency. Link the CRM record without replacing the purchase identity. A later sale is an outcome of the inquiry, not the event that originally created the lead charge.
Keep submitted, accepted, rejected and uncertain delivery states distinct. A successful ping may be an invitation to post rather than a purchase. Count the final event specified in the buying agreement. If the connection uses dynamic bids, retain the agreed price associated with that transaction instead of applying today’s rate to an earlier purchase.
Compare four records of the same purchase
| System or document | What to match |
|---|---|
| Seller | Source ID, final outcome and accepted price |
| Buying platform | Transaction ID, acceptance time and result |
| CRM | Received record, project and assigned owner |
| Invoice | Billable transaction, price, credit and net amount |
Normalize timezones before comparing a daily report. A lead accepted near midnight can appear on different dates in two systems. Agree whether the reporting day follows the buyer account, branch or another stated timezone. Keep the original timestamp as well as any converted reporting date.
Classify the difference before fixing it
An accepted seller transaction missing from the buyer report may be a date-window issue, an unanswered post or a different account filter. An accepted platform transaction missing from the CRM is a downstream delivery issue. A duplicated invoice row is a billing issue. Assign each to the team that can inspect the relevant record.
For platforms that expose request logs, inspect the actual response. boberdoo documents a lead log that includes raw ping and post responses. Use the comparable evidence in your own system to establish what the receiver returned, while keeping credentials and homeowner information out of general-purpose exports.
Sources: boberdoo: ping-post lead log.
Show credits as their own transactions
Record a credit request, the reason, the review status and any approved amount. Do not delete the original lead when a credit is approved. Keeping the purchase and adjustment lets finance reproduce both the original invoice and the corrected net amount.
For a hypothetical period with 80 accepted leads at $100, gross lead charges are $8,000. If five full credits are approved, the adjustment is $500 and net lead charges are $7,500. A sixth credit still under review stays pending. This is arithmetic for an example, not an Adsora price or credit policy.
Close with an exception list both sides understand
Give every unresolved ID an owner, reason, supporting evidence and next review date. Record corrections with the time and person responsible. If a report is rerun, the team should be able to explain why a prior result changed rather than overwriting history.
Agree the reconciliation format and cadence before the pilot. When the first invoice arrives, match it to that same ledger and the approved credit adjustments. The sales report can then use the linked records without being asked to explain missing purchase transactions.