Request to Link

Request to Link

Manage request-to-link (RTL) flows. An RTL represents a request for a user to link their biller account. Create an RTL, track its status, and proceed to a link session when the user is ready.

Related guide: Link a Biller Account

The Request to Link object

A request-to-link (RTL) represents a request for a user to link their biller account. Create an RTL, track its status, and proceed to a link session when the user is ready.

Attributes

id*stringUnique request-to-link identifier
client_id*stringThe client that created the request
client_user_id*stringYour internal user identifier
biller_idstringThe biller to link (if specified at creation)
status*stringStatus: PENDING, IN_PROGRESS, COMPLETED, CANCELLED, EXPIRED
link_token_idstringAssociated link token ID once linking begins
session_urlstringURL for the link session UI
metadataobjectCustom metadata attached to the request
created_atstringISO 8601 timestamp when the request was created
updated_atstringISO 8601 timestamp of last update
The Request to Link object
{
  "id": "rtl_abc123",
  "client_id": "client_xyz",
  "client_user_id": "user_456",
  "biller_id": "sb_utility",
  "status": "PENDING",
  "link_token_id": null,
  "session_url": null,
  "metadata": {
    "source": "onboarding"
  },
  "created_at": "2026-04-01T10:00:00Z",
  "updated_at": "2026-04-01T10:00:00Z"
}
GET/v1/request-to-links

List request-to-link records with optional filtering and pagination.

Query parameters

searchstringSearch by user ID or biller name
statusstringFilter by status: PENDING, IN_PROGRESS, COMPLETED, CANCELLED, EXPIRED
client_user_idstringFilter by your internal user ID
biller_idstringFilter by biller ID
limitintegerPage size (default: 50, max: 200)
cursorstringOpaque cursor from a prior response’s next_cursor. Omit for the first page.

Not available in sandbox yet. These endpoints are live in production only — the sandbox host answers them with 404 NOT_FOUND. Sandbox support is planned; until then, exercise this API with a production key against the production host.

curl "https://api.billerapi.com/v1/request-to-links?status=PENDING&limit=20" \
  -H "Authorization: Bearer $BILLERAPI_API_KEY"
Response
{
  "items": [RequestToLink],
  "total": 12,
  "limit": 20,
  "next_cursor": "eyJvIjoyMH0=",
  "has_more": true
}
GET/v1/request-to-links/:id

Retrieve a specific request-to-link by ID.

Path parameters

id*stringThe request-to-link ID

Not available in sandbox yet. These endpoints are live in production only — the sandbox host answers them with 404 NOT_FOUND. Sandbox support is planned; until then, exercise this API with a production key against the production host.

curl https://api.billerapi.com/v1/request-to-links/rtl_abc123 \
  -H "Authorization: Bearer $BILLERAPI_API_KEY"
POST/v1/request-to-links

Create a new request-to-link. This initiates the linking flow for a user.

Request body

client_user_id*stringYour internal user identifier
biller_idstringThe biller to link (can be set later)
client_idstringOptional. Resolved from your API key; send it only to assert the client you expect.
metadataobjectCustom metadata to attach to the request
Sample uses your_client_id · sign in to auto-fill your sandbox key
curl -X POST https://sandbox.api.billerapi.com/v1/request-to-links \
  -H "Authorization: Bearer $BILLERAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "client_user_id": "user_456",
    "biller_id": "sb_utility",
    "metadata": {
      "source": "onboarding"
    }
  }'
Response201 Created
{
  "id": "rtl_abc123",
  "client_id": "client_xyz",
  "client_user_id": "user_456",
  "biller_id": "sb_utility",
  "status": "PENDING",
  "metadata": {
    "source": "onboarding"
  },
  "created_at": "2026-04-01T10:00:00Z"
}
PATCH/v1/request-to-links/:id/status

Update the status of a request-to-link. Use this to transition an RTL through its lifecycle.

Path parameters

id*stringThe request-to-link ID

Request body

status*stringNew status: PENDING, IN_PROGRESS, COMPLETED, CANCELLED
biller_idstringSet or update the biller ID
link_token_idstringAssociate a link token with this request

Not available in sandbox yet. These endpoints are live in production only — the sandbox host answers them with 404 NOT_FOUND. Sandbox support is planned; until then, exercise this API with a production key against the production host.

curl -X PATCH https://api.billerapi.com/v1/request-to-links/rtl_abc123/status \
  -H "Authorization: Bearer $BILLERAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "IN_PROGRESS",
    "biller_id": "sb_utility",
    "link_token_id": "lt_token123"
  }'
POST/v1/request-to-links/:id/cancel

Cancel a request-to-link. Only RTLs in PENDING or IN_PROGRESS status can be cancelled.

Path parameters

id*stringThe request-to-link ID

Request body

reasonstringOptional reason for cancellation

Not available in sandbox yet. These endpoints are live in production only — the sandbox host answers them with 404 NOT_FOUND. Sandbox support is planned; until then, exercise this API with a production key against the production host.

curl -X POST https://api.billerapi.com/v1/request-to-links/rtl_abc123/cancel \
  -H "Authorization: Bearer $BILLERAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "User changed their mind"
  }'
POST/v1/request-to-links/:id/proceed

Proceed to a link session. This generates a link token and session URL that you can use to redirect the user to the BillerAPI link UI.

Path parameters

id*stringThe request-to-link ID

Not available in sandbox yet. These endpoints are live in production only — the sandbox host answers them with 404 NOT_FOUND. Sandbox support is planned; until then, exercise this API with a production key against the production host.

curl -X POST https://api.billerapi.com/v1/request-to-links/rtl_abc123/proceed \
  -H "Authorization: Bearer $BILLERAPI_API_KEY"
Response
{
  "link_token": "lt_token123",
  "session_url": "https://link.billerapi.com/session/lt_token123",
  "expires_at": "2026-04-01T11:00:00Z"
}
Was this page helpful?