Navigation

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

Attributes

FieldTypeDescription
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
Example Request to Link object
JSON
{
  "id": "rtl_abc123",
  "client_id": "client_xyz",
  "client_user_id": "user_456",
  "biller_id": "test_electric_company",
  "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/link/request-to-link

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

Query Parameters

FieldTypeDescription
searchstringSearch by user ID or biller name
statusstringFilter by status: PENDING, IN_PROGRESS, COMPLETED, CANCELLED, EXPIRED
clientUserIdstringFilter by your internal user ID
billerIdstringFilter by biller ID
pageintegerPage number (default: 1)
limitintegerResults per page (default: 20, max: 100)
Response
{
  "items": [RequestToLink],
  "total": 12,
  "page": 1,
  "limit": 20
}
curl "https://sandbox.api.billerapi.com/link/request-to-link?status=PENDING&limit=20" \
  -H "X-Client-ID: your_client_id" \
  -H "X-Client-Secret: your_client_secret"
GET/link/request-to-link/:id

Retrieve a specific request-to-link by ID.

Path Parameters

FieldTypeDescription
id*stringThe request-to-link ID
curl https://sandbox.api.billerapi.com/link/request-to-link/rtl_abc123 \
  -H "X-Client-ID: your_client_id" \
  -H "X-Client-Secret: your_client_secret"
POST/link/request-to-link/create

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

Request Body

FieldTypeDescription
clientId*stringYour client ID
clientUserId*stringYour internal user identifier
billerIdstringThe biller to link (can be set later)
metadataobjectCustom metadata to attach to the request
Response — 201 Created
{
  "id": "rtl_abc123",
  "client_id": "client_xyz",
  "client_user_id": "user_456",
  "biller_id": "test_electric_company",
  "status": "PENDING",
  "metadata": {
    "source": "onboarding"
  },
  "created_at": "2026-04-01T10:00:00Z"
}
curl -X POST https://sandbox.api.billerapi.com/link/request-to-link/create \
  -H "X-Client-ID: your_client_id" \
  -H "X-Client-Secret: your_client_secret" \
  -H "Content-Type: application/json" \
  -d '{
    "clientId": "client_xyz",
    "clientUserId": "user_456",
    "billerId": "test_electric_company",
    "metadata": {
      "source": "onboarding"
    }
  }'
PATCH/link/request-to-link/:id/status

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

Path Parameters

FieldTypeDescription
id*stringThe request-to-link ID

Request Body

FieldTypeDescription
status*stringNew status: PENDING, IN_PROGRESS, COMPLETED, CANCELLED
billerIdstringSet or update the biller ID
linkTokenIdstringAssociate a link token with this request
curl -X PATCH https://sandbox.api.billerapi.com/link/request-to-link/rtl_abc123/status \
  -H "X-Client-ID: your_client_id" \
  -H "X-Client-Secret: your_client_secret" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "IN_PROGRESS",
    "billerId": "test_electric_company",
    "linkTokenId": "lt_token123"
  }'
POST/link/request-to-link/:id/cancel

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

Path Parameters

FieldTypeDescription
id*stringThe request-to-link ID

Request Body

FieldTypeDescription
reasonstringOptional reason for cancellation
curl -X POST https://sandbox.api.billerapi.com/link/request-to-link/rtl_abc123/cancel \
  -H "X-Client-ID: your_client_id" \
  -H "X-Client-Secret: your_client_secret" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "User changed their mind"
  }'
POST/link/request-to-link/: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

FieldTypeDescription
id*stringThe request-to-link ID
Response
{
  "link_token": "lt_token123",
  "session_url": "https://link.billerapi.com/session/lt_token123",
  "expires_at": "2026-04-01T11:00:00Z"
}
curl -X POST https://sandbox.api.billerapi.com/link/request-to-link/rtl_abc123/proceed \
  -H "X-Client-ID: your_client_id" \
  -H "X-Client-Secret: your_client_secret"