---
title: "Update contract for a Merchant's Customer"
method: PATCH
path: "/merchants/{merchant_id}/customers/{customer_id}/contracts"
tags: ["Contracts"]
---

# Update contract for a Merchant's Customer

`PATCH /merchants/{merchant_id}/customers/{customer_id}/contracts`

## Request

- Base URL: `https://tb.paymentfusion.com`
- URL: `https://tb.paymentfusion.com/merchants/{merchant_id}/customers/{customer_id}/contracts`
- Auth: none declared. Required headers: `Authorization`, `Accept`, `Content-Type`

Called by the Independent Software Vendor. Allows updating, enabling and disabling of contracts.

## Path parameters

- `merchant_id` string, required
- `customer_id` string, required

## Headers

- `Authorization` string, api_id:api_token, required
- `Accept` string, required
- `Content-Type` string, required

## Request body `application/x-www-form-urlencoded`

- union
  - UpdateContractStatus
    - `action` 'enable' | 'disable', required: Action type to be performed on the contract. Allowed vlaues - `"enable"` or `"disable"`.
  - UpdateContractData
    - `action` 'update', required: Action type to be performed on the contract. Allowed values - `"update"`.
    - `bill_amount` string, required: Sets the monetary amount to charge on each cycle. This is NOT the "initial" charge or "setup" charge, this is only the "recurring" charge. Described in USD up to 6 decimals, its last 4 digits must be 0. (e.g. "1", "1.00", "1.01", "1.2", "1.230000").

## Response `200`

Success

- object
  - `contracts` Contract[]
    - `customer_id` string: Customer identifier associated to a transaction
    - `bill_amount` string: Sets the monetary amount to charge on each cycle. This is NOT the "initial" charge or "setup" charge, this is only the "recurring" charge. Described in USD up to 6 decimals, its last 4 digits must be 0. (e.g. "1", "1.00", "1.01", "1.2", "1.230000").
    - `status` 'enabled' | 'disabled' | 'completed': Description of contract status.
    - `start_date` string: Date formatted as YYYYMMDD.
    - `end_date` string: Date formatted as YYYYMMDD. The end_date is the next day after the last installment. For example if last installment was on 20210305 then the end_date will be 20210306. For a contract with unlimited number of installments the end_date will be `"none"`.
    - `schedule` string: Frequency of recurring billing schedule. Allowed values - `"daily"`,`"weekly"`,`"bi-weekly"`,`"monthly"`,`"bi-monthly"`,`"quarterly"`,`"bi-annually"`,`"annually"`.
    - `num_left` string: Number of transactions remaining in recurring billing cycle. When a contract is completed, the num_left will be returned as `0` When the contract is created with unlimited number of installments, the num_left will be returned as `*`
  - `v` string: The API version that was used to handle the request.

## Other responses

- `4XX`: Possible errors - 1, 6, 27, 70, 189, 250, 303, 304, 309, 313
- `5XX`: Possible errors - 8

---

[API](https://skmtc.dev/bankofamerica/apis/transaction-broker-api.md) - [All operations](https://skmtc.dev/bankofamerica/apis/transaction-broker-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bankofamerica/apis/transaction-broker-api/revisions/6097bc689e41?raw)
