Allow RTB requests without `caller_number` on a postback key (part 2)

Allow RTB requests without `caller_number` on a postback key (part 2)

You can now configure a postback key to accept RTB reservation requests that do not include a caller_number. Previously the request would fail with FAILED must include caller_number (string).

Why

Some publishers sending calls to Retreaver from external platforms are finding it difficult to work with the dynamic SIP numbers returned by Retreaver when no caller_number is provided. What they need is to send an RTB request without a caller_number and to receive a phone number that is +1 XXX XXX XXXX otherwise they can not given the option to send the call to Retreaver.

Background

  • caller_number — where the call is originating from.
  • inbound_number — where Retreaver wants you to send the call so it can be properly tracked and connected.

When caller_number is omitted, Retreaver needs another way to decide which inbound_number to return. There are three cases.

The three cases when caller_number is not provided

1. inbound_number is passed as a request parameter

Retreaver returns the inbound_number you passed in.

$ curl -X POST -s "https://rtb.retreaver.com/rtbs.json?key=f38240dd-7f65-4e17-a4d7-2e09ccafad0e&inbound_number=+35924930101" | jq
{
  "uuid": "64ce5820-a451-475b-be29-26a47ec338b1",
  "status": "reserved",
  "retreaver_payout": 90.0,
  "retreaver_seconds": 120,
  "inbound_number": "+35924930101",
  "expires_at": "2026-05-05T06:26:06.534Z"
}

2. inbound_number is configured on the postback key in the UI

Retreaver returns the inbound_number configured on the postback key (in this example, +18339510260).

$ curl -X POST -s "https://rtb.retreaver.com/rtbs.json?key=f38240dd-7f65-4e17-a4d7-2e09ccafad0e" | jq
{
  "uuid": "597060af-2fbd-4339-9df6-f252038a94f7",
  "status": "reserved",
  "retreaver_payout": 90.0,
  "retreaver_seconds": 120,
  "inbound_number": "+18339510260",
  "expires_at": "2026-05-05T06:28:02.509Z"
}

3. No inbound_number configured and none passed as a parameter

Retreaver returns a dynamic SIP number where the call should be sent.

$ curl -X POST -s "https://rtb.retreaver.com/rtbs.json?key=f38240dd-7f65-4e17-a4d7-2e09ccafad0e" | jq
{
  "uuid": "1ab464f8-bc50-47e6-a26d-2b1c92f9f7b1",
  "status": "reserved",
  "retreaver_payout": 90.0,
  "retreaver_seconds": 120,
  "inbound_number": "sip:1ab464f8-bc50-47e6-a26d-2b1c92f9f7b1@retreaver-rtb.sip.twilio.com",
  "expires_at": "2026-05-05T06:25:41.770Z"
}

For reference: when caller_number is provided

Behavior is unchanged — the returned inbound_number is dynamic and chosen by Retreaver.

$ curl -X POST -s "https://rtb.retreaver.com/rtbs.json?key=f38240dd-7f65-4e17-a4d7-2e09ccafad0e&caller_number=12025550102" | jq
{
  "uuid": "05d44513-666d-46f1-a4f6-fb23cf206011",
  "status": "reserved",
  "retreaver_payout": 90.0,
  "retreaver_seconds": 120,
  "inbound_number": "+18334583385",
  "expires_at": "2026-05-05T06:25:08.295Z"
}

When the postback key does not allow missing caller_number

If the postback key has not been configured to accept requests without a caller_number, the request still fails as before:

$ curl -X POST -s "https://rtb.retreaver.com/rtbs.json?key=f38240dd-7f65-4e17-a4d7-2e09ccafad0e" | jq
{
  "error": "FAILED must include caller_number (string)"
}

Note: This describes the behavior of the current release. If you are reading this some time from now, please refer to the RTB guide at https://learn.retreaver.com/guides/working-with-the-retreaver-real-time-bidding-api for the up-to-date behavior.

Help us improve this article or request new support guides.