[API] Terminate Contract
The Terminate Contract API ends a contract, and Uber stops retaining from the borrower’s earnings for it.
¶ 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
¶ 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_ACCEPTEDorCONTRACT_STATE_ACTIVE. - Uber applies the termination after responding. The contract moves to
CONTRACT_STATE_TERMINATINGwith reasonCONTRACT_STATE_REASON_LENDER_TERMINATED, then toCONTRACT_STATE_TERMINATEDafter a grace period. - Uber stops retaining when the contract enters
CONTRACT_STATE_TERMINATING. Terminating a contract doesn’t return amounts already retained.