Duplicate calls in pay per call are normal in some products and a billing fight in all of them if you never defined the word. Auto shoppers call again next week. A spouse calls from a second phone. A publisher resubmits a lead that already transferred. Those are three different facts. One rule will not cover them unless you write the rule that wide on purpose.
A duplicate is a second event that matches a key you named, inside a window you named. The key is usually the phone number. Sometimes it is the phone number plus the product. Sometimes it is a household. The window is hours or days, not 'recently.' If the order is silent, you do not get to invent the window when the invoice arrives.
What you are actually trying to stop
You are trying to stop paying twice for the same opportunity you already had a fair shot at. You are not trying to stop every human who calls back because the first agent put them on hold. A caller who hangs up and dials again ten minutes later, because your queue died, is often your operations problem. A caller who was transferred to you yesterday and is transferred again today from a second source may be a duplicate you should not pay for. Say which one you mean.
Exclusive makes this sharper. Exclusive means you were the only buyer of that delivery for the scope in the order: product, territory, and time. It does not mean the person has never called another company on their own. A homeowner can still dial a second contractor from a search ad you do not control. Do not write 'exclusive' and then dispute every second conversation in the market.
Shared calls expect overlap. If you bought shared, a second agency may already have the caller. That is the product. Disputing it as a duplicate because you wish you had bought exclusive is a pricing argument, not a duplicate argument. Change the model on the next order.
The window has to be a number
Pick a number you can explain to an agent. Same day. 24 hours. 72 hours. Seven days. Put the timezone on it. A 'same day' rule that ignores the campaign timezone will flag a 9 p.m. call on the west coast against a morning call that your report thinks is tomorrow.
Name the field. Phone number is the usual key because it is what the dialer and the call log both have. Name plus ZIP fails when the caller uses a nickname. Address fails when the spouse calls from the car. If you need household-level suppression, say how you will match it, and accept that some real seconds will not match. A fuzzy match you cannot reproduce is not a rule. It is a reason to argue.
Repeat product matters. A person who called about auto yesterday and about home today is not a duplicate of the auto call if home is a different campaign. Auto insurance and a homeowners quote are different briefs. Blending them so you can reject the second call trains the report to hide real demand. If you want cross-product suppression, write the products in the rule. Do not imply it.

Who sends the file, and when
If you already have the customer, you can suppress them. You have to send the numbers through a channel you both agreed is secure, on a schedule the campaign can actually load. A spreadsheet on Friday does not reject Thursday's calls. Retroactive 'we have had them for years' is not a duplicate rule. It is a request to rewrite the week.
Publishers should not be asked to guess your book of business. Buyers should not be asked to trust a source that changes the caller ID to slip a second transfer past the filter. Both of those show up. The first is a file problem. The second is a source you cut. Billable versus unqualified is where that cut belongs, next to the other rejects.
Aged data and a fresh inbound are not the same duplicate story. An aged record you dial, and a live call that arrives because the person saw an ad today, can share a phone number and still be different events. If your rule treats every repeat number as dead, say so before you buy the live path. How the return call is labeled matters here. A cold transfer is a return that was handed to you. It is not automatically a duplicate of yesterday's inbound.
What to put in the order
One sentence is enough if it has the pieces. 'Same phone number, same product, inside 72 hours in the campaign timezone, is not billable. The buyer supplies existing-customer numbers daily. Calls already connected before the file loads are still judged on the prior file.' Change the hours if your sales cycle is longer. A final expense shopper and a storm roofing call should not share a window just because both use a phone.
Disputes still need the two event IDs, the timestamps, and the key that matched. 'A lot of these sounded familiar' is not a duplicate report. The filing clock and what a credit looks like are in pay per call disputes. The public terms describe a default process when the order is silent. Your order can be tighter. It cannot be a vibe.
RidgeRise can hold a duplicate rule on a campaign when the rule is written and the suppression path is real. We will not invent a match rate or promise that exclusive means the consumer has never shopped. A second call that meets the rule is unqualified. A second call that does not is a new conversation.
If you know the window and the key, start a test campaign with that sentence in the brief. If the book of existing customers is the real filter, say how often you can send it. We would rather run a short test with a boring rule than a large buy with a dispute thread named 'dupes.'


