Three lines

Uber

Developers

[API] Search Contracts

Privileged and Confidential This endpoint design has been confidentially shared with you. It is still under development and is subject to change without notice. Please do not share this document or API endpoint details with anyone who is not authorized to have access. For more information read about scopes.

The Search Contracts API returns your organization’s contracts one page at a time, optionally filtered by state and country.

Use case

List contracts that are waiting for the borrower’s acceptance, reconcile your active contracts, or find a contract created by a request you retried.

Supported supplier types

Financiers

Scopes

vehicle_suppliers.financing.contracts

Required permissions

The user that the access token represents needs supplier.contracts.read on the organization in filters.lendersIds. See Access.

Resource

/v1/vehicle-supplier/financing/contracts/search

HTTP method

POST

Authorization

Client Credentials

Example request
curl -X POST "https://api.uber.com/v1/vehicle-supplier/financing/contracts/search" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <TOKEN>" \
-d '{
  "filters": {
    "lendersIds": [
      {
        "value": "<lender_org_id>"
      }
    ],
    "states": [
      "CONTRACT_STATE_PENDING_ACCEPTANCE",
      "CONTRACT_STATE_ACTIVE"
    ],
    "countryIso2s": [
      "US"
    ]
  },
  "orderBy": {
    "field": "FIELD_CREATED_AT",
    "queryOrder": "QUERY_ORDER_DESC"
  },
  "pageInfo": {
    "pageSize": 20
  }
}'

This example returns your pending and active contracts in the United States, newest first, 20 at a time.

Request body parameters
Name Type Required Description
filters object Yes Search filters object
orderBy object No Order by object. By default, results are sorted by startsAt, earliest first.
pageInfo object No Page info object
Search filters
Name Type Required Description
lendersIds array Yes Array with one UUID object holding your organization’s ID.
states array No Array of Contract state enums. Returns only contracts in these states.
countryIso2s array No Array of country codes. Returns only contracts in these countries. Use uppercase codes, such as US.
Order by
Name Type Description
field enum Sort field enum. Defaults to FIELD_STARTS_AT.
queryOrder enum Sort order enum. Defaults to QUERY_ORDER_ASC.
Sort field
Name Definition
FIELD_STARTS_AT Sort by startsAt.
FIELD_CREATED_AT Sort by createdAt.
Sort order
Name Definition
QUERY_ORDER_ASC Earliest first.
QUERY_ORDER_DESC Latest first.
Page info
Name Type Description
pageSize int Contracts per page, at most 50. Defaults to 10.
nextPageToken string Leave it out for the first page. For each later page, send the nextPageToken from the previous response.
Example response

200 OK

{
  "contracts": [
    {
      "contractId": {
        "value": "<contract_id>"
      },
      "type": "CONTRACT_TYPE_B2B",
      "stateInfo": {
        "state": "CONTRACT_STATE_PENDING_ACCEPTANCE"
      },
      "lender": {
        "lenderId": {
          "value": "<lender_org_id>"
        }
      },
      "borrower": {
        "borrowerId": {
          "value": "<borrower_org_id>"
        }
      },
      "loanAmount": {
        "amountE5": "1500000000",
        "currencyCode": "USD"
      },
      "retentionConfig": {
        "cadence": "RETENTION_CADENCE_WEEKLY",
        "retentionStrategyType": "RETENTION_STRATEGY_TYPE_STATIC",
        "retentionAmount": {
          "percentRate": 10,
          "maxCadenceCap": {
            "amountE5": "50000000",
            "currencyCode": "USD"
          }
        }
      },
      "metadata": {
        "name": "Fleet expansion loan",
        "countryIso2": "US",
        "interestRate": 8.5,
        "acceptanceExpiryAt": {
          "value": "1792022400000"
        },
        "financierName": "Example Capital"
      },
      "startsAt": {
        "value": "1793577600000"
      },
      "endsAt": {
        "value": "1825027200000"
      },
      "createdAt": {
        "value": "1790847000000"
      },
      "updatedAt": {
        "value": "1790847002000"
      },
      "version": 1
    }
  ],
  "pageInfo": {
    "nextPageToken": "<next_page_token>"
  }
}
Response body parameters
Name Type Description
contracts array Array of Contract objects. Missing when no contracts match.
pageInfo object Contains nextPageToken when more results are available. If nextPageToken is missing, this is the last page.
Rate limit

10 requests per second for each developer application.

Endpoint-specific errors
HTTP status Code Cause
400 invalid-argument lendersIds is missing or has more than one ID, pageSize is more than 50, or nextPageToken was issued for a different orderBy.field.
401 permission-denied The token’s user doesn’t have supplier.contracts.read on the organization in lendersIds. A malformed organization ID also returns this error.
500 internal-server-error Retry with exponential backoff.
Notes
  • Send the same filters and orderBy for every page of a search.
  • Each contract appears once, with its current terms and state, and has the same fields as in Get Contract.

Uber

Developers
© 2026 Uber Technologies Inc.