Three lines

Uber

Developers

[API] Terminate Contract

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 Terminate Contract API ends a contract, and Uber stops retaining from the borrower’s earnings for it.

Termination can’t be undone. To resume retention after you terminate a contract, create a new one.

Use case

End a contract early, for example when the borrower defaults, when you replace the contract with a new one, or when you and the borrower agree to end it. You can also cancel a contract before the borrower accepts it or before it starts.

Supported supplier types

Financiers

Scopes

vehicle_suppliers.financing.contracts

Required permissions

The user that the access token represents needs supplier.contracts.write on the contract’s lender organization. See Access.

Resource

/v1/vehicle-supplier/financing/contracts/terminate/:contract_id

HTTP method

PATCH

Authorization

Client Credentials

Example request
curl -X PATCH "https://api.uber.com/v1/vehicle-supplier/financing/contracts/terminate/<contract_id>" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <TOKEN>" \
-d '{
  "reason": "TERMINATE_CONTRACT_REASON_MUTUAL_AGREEMENT",
  "details": "Loan refinanced under a new contract"
}'
Request path parameters
Name Type Description
contract_id string Contract ID returned by Create Contract.
Request body parameters
Name Type Required Description
reason enum Yes Termination reason enum
details string No A note about the termination. Plain text, up to 128 characters. Text with HTML, markup or control characters other than tabs and line breaks is rejected.
Termination reason
Name Definition
TERMINATE_CONTRACT_REASON_BORROWER_DEFAULT The borrower didn’t meet the loan terms.
TERMINATE_CONTRACT_REASON_CONTRACT_MODIFICATION You’re replacing the contract, for example to change its terms.
TERMINATE_CONTRACT_REASON_MUTUAL_AGREEMENT You and the borrower agreed to end the contract.
Example response

200 OK

{
  "contractId": {
    "value": "<contract_id>"
  }
}
Response body parameters
Name Type Description
contractId object UUID object. The terminated contract’s ID.
Rate limit

5 requests per hour for each developer application.

Endpoint-specific errors
HTTP status Code Cause
400 invalid-argument reason is missing or isn’t a supported value, or details is too long or isn’t plain text.
400 not-found No contract has this ID.
400 invalid-term-state The contract can’t be terminated from its current state, for example because it’s already terminating or terminated.
401 permission-denied See Access.
500 internal-server-error Retry with exponential backoff.
Notes
  • You can terminate a contract in CONTRACT_STATE_PENDING_ACCEPTANCE, CONTRACT_STATE_ACCEPTED or CONTRACT_STATE_ACTIVE.
  • Uber applies the termination after responding. The contract moves to CONTRACT_STATE_TERMINATING with reason CONTRACT_STATE_REASON_LENDER_TERMINATED, then to CONTRACT_STATE_TERMINATED after a grace period.
  • Uber stops retaining when the contract enters CONTRACT_STATE_TERMINATING. Terminating a contract doesn’t return amounts already retained.

Uber

Developers
© 2026 Uber Technologies Inc.