On this page: No-bid reasons
Advanced · Reference
Error codes
Every answer that isn't a bid, as your ping log shows it, and what to do about each one.
No-bid reasons
A no-bid carries a reason. Your ping log in the portal shows the same decline in plain words. The reasons fall into three groups.
Something to fix on your side
| Your ping log shows | Reason | Class | What to do |
|---|---|---|---|
| Ping key missing | missing_key | Technical | Send your ping key as key. |
| Caller state not valid | bad_caller_state | Technical | Send the state as two letters or its full name, or leave it out and we'll work it out from the zip, then the number. |
| Ping key not recognised | unknown_key | Technical | Check the key. Each campaign has its own, so ask your buyer if you're not sure which one to use. |
| Ping key does not match that account | publisher_mismatch | Technical | The publisher ID you sent isn't the one this key belongs to. Fix it, or leave it out. |
| Account not active | publisher_inactive | Technical | Your account with this buyer is switched off. Ask your buyer. |
| Account not set up to receive traffic | publisher_no_campaign | Technical | This key has no campaign behind it yet. Ask your buyer. |
| Not buying right now | campaign_inactive | Technical | The buyer isn't taking calls on this campaign right now. Ask them when it starts again. |
| Campaign not live yet | offer_not_live | Technical | This campaign isn't live yet. Your buyer turns it on when your setup is ready. |
| Campaign paused | offer_paused | Technical | Your buyer has paused this campaign. Ask them when it starts again. |
| Unknown state | no_caller_state | Technical | Use a US caller number with a US area code. Anonymous, toll-free and non-US callers cannot be routed on an all-states line. |
| Caller number missing | no_caller_number | Technical | Send the caller's number as caller_number. |
| Caller not accepted | caller_blocked | Technical | This caller isn't accepted. Don't send them again. |
| State not accepted | state_not_covered | Capacity | We don't take callers from this state on this campaign. Don't send callers from it. |
| Zip code needed for this campaign | no_caller_zip | Capacity | This campaign buys calls by zip code. Send the caller's zip as caller_zip. |
| Zip code not accepted | zip_not_covered | Capacity | We don't take callers from this zip code on this campaign. Don't send callers from it. |
| Caller already on a call with us | caller_on_live_call | Capacity | This caller is already on a call with us. Send each caller once. |
| At-once cap reached | cap_concurrent | Capacity | You've reached this campaign's limit on calls at once. Ping again when one of your calls ends. |
| Hourly cap reached | cap_hourly | Capacity | You've reached this campaign's limit for this hour. It resets at the top of the hour, on your buyer's clock. |
| Daily cap reached | cap_daily | Capacity | You've reached this campaign's limit for today. It resets at midnight, on your buyer's clock. |
| Bid expired before the call arrived | no_reservation_for_caller | Capacity | The call arrived with no bid held for it: the bid had expired, or the caller ID wasn't the caller's own number. Send the call within 15 seconds of the bid, with the caller's number as the caller ID. |
| Caller state missing or not valid | missing_caller_state | Technical | This campaign needs this field in every ping. Send it as caller_state, or ask your buyer whether it can be left out. |
| Call ID missing | missing_trace | Technical | This campaign needs this field in every ping. Send it as ringba-requestid, or ask your buyer whether it can be left out. |
| Zip code missing or not valid | missing_zip | Technical | This campaign needs this field in every ping. Send it as caller_zip, or ask your buyer whether it can be left out. |
| City missing or not valid | missing_city | Technical | This campaign needs this field in every ping. Send it as caller_city, or ask your buyer whether it can be left out. |
| Partial caller number missing or not valid | missing_caller_number_partial | Technical | This campaign needs this field in every ping. Send it as caller_npa_nxx, or ask your buyer whether it can be left out. |
| Age missing or not valid | missing_age | Technical | This campaign needs this field in every ping. Send it as age, or ask your buyer whether it can be left out. |
| Date of birth missing or not valid | missing_dob | Technical | This campaign needs this field in every ping. Send it as dob, or ask your buyer whether it can be left out. |
| Homeowner answer missing | missing_homeowner | Technical | This campaign needs this field in every ping. Send it as homeowner, or ask your buyer whether it can be left out. |
| Insurance answer missing | missing_insured | Technical | This campaign needs this field in every ping. Send it as insured, or ask your buyer whether it can be left out. |
| Current insurer missing | missing_current_carrier | Technical | This campaign needs this field in every ping. Send it as current_carrier, or ask your buyer whether it can be left out. |
| Debt amount missing or not valid | missing_debt_amount | Technical | This campaign needs this field in every ping. Send it as debt_amount, or ask your buyer whether it can be left out. |
| Destination zip code missing or not valid | missing_destination_zip | Technical | This campaign needs this field in every ping. Send it as destination_zip, or ask your buyer whether it can be left out. |
| Loan amount missing or not valid | missing_loan_amount | Technical | This campaign needs this field in every ping. Send it as loan_amount, or ask your buyer whether it can be left out. |
| Accident date missing or not valid | missing_accident_date | Technical | This campaign needs this field in every ping. Send it as accident_date, or ask your buyer whether it can be left out. |
| Attorney answer missing | missing_has_attorney | Technical | This campaign needs this field in every ping. Send it as has_attorney, or ask your buyer whether it can be left out. |
| Consent certificate missing or not valid | missing_consent_cert_url | Technical | This campaign needs this field in every ping. Send it as trusted_form_cert_url, or ask your buyer whether it can be left out. |
| Lead ID missing or not valid | missing_lead_id | Technical | This campaign needs this field in every ping. Send it as jornaya_leadid, or ask your buyer whether it can be left out. |
| Sub ID missing | missing_sub_id | Technical | This campaign needs this field in every ping. Send it as sub_id, or ask your buyer whether it can be left out. |
No capacity right now
We couldn't take this caller at this moment. Nothing is wrong with your setup: ping again for your next caller. Your ping log shows all of these as “No capacity”.
campaign_no_rosternoise_shieldclaim_throttledempty_rosterno_agent_onlineno_eligible_agentalready_reservedall_candidates_leasedno_agentno_capacityno_capacity means your buyer can't take calls right now for a reason on their side. Send the caller to your next buyer, and ping this one again later.
A problem on our side
Something failed on our side. Your ping log shows all of these as “Temporarily unavailable”. Ping again. If it keeps happening, check the status page and tell your buyer.
lookup_failedingress_not_configuredcampaign_missingdb_budget_exceededdb_circuit_openinternal_errortrace_reused_for_different_callerbad_ttlcampaign_not_foundreserve_failednot_reservedCall ID errors
The call ID endpoint answers error in status when the request itself was wrong, with one of these reasons:
| Reason | What to do |
|---|---|
| missing_key | Send your ping key. |
| missing_caller_number | Send the caller's number you pinged with. |
| missing_request_id | Send your call ID. |
| bad_caller_number | The caller's number isn't one we can read. Send it with its country code. |
| lookup_failed | Something failed on our side. Try again. |
| unknown_key | Check the key. Each campaign has its own. |
| publisher_mismatch | The publisher ID isn't the one this key belongs to. Fix it, or leave it out. |
HTTP answers
Every ping answer is HTTP 200 with JSON, a bid or a no-bid. Branch on status, not on the HTTP code.
Every call ID answer is HTTP 200 with JSON too. Its status says whether the ID was attached.
Your postback URL should answer HTTP 200 within 15 seconds. Anything else is retried.
A signed webhook is acknowledged by 2xx. 5xx, 408 and 429 ask for a retry; any other answer is final.