> ## Documentation Index
> Fetch the complete documentation index at: https://docs.interchange.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Update billing config

> Set the platform fee, additional fees, currency, and net terms for your storefront

`PUT /api/v2/storefront/billing`

Updates your storefront's billing configuration — platform fee percentage,
additional partner fees, payout currency, and default payment terms.
Admin-only. Send at least one field; omitted fields are left unchanged. Returns
the full updated configuration. Bank details are managed separately with
[Set payout details](/v2/storefront/billing/tasks/set-payout-details).

## Request

```bash theme={null}
curl -X PUT https://api.interchange.io/api/v2/storefront/billing \
  -H "Authorization: Bearer $SCOPE3_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "platformFeePercent": 12.5,
    "fees": [
      { "name": "Ad serving", "description": "Third-party ad serving", "feePercent": 2 }
    ],
    "currency": "USD",
    "defaultNetDays": 30
  }'
```

## Parameters

| Field                | Type    | Required | Notes                                                                                                                                |
| -------------------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `platformFeePercent` | number  | No       | Platform fee percentage, `0`–`100`                                                                                                   |
| `fees`               | array   | No       | Additional partner fees. Each entry: `name` (required, 1–255), `feePercent` (required, `0`–`100`), `description` (optional, max 500) |
| `currency`           | string  | No       | ISO 4217 currency code, three uppercase letters (e.g. `USD`)                                                                         |
| `defaultNetDays`     | integer | No       | Payment terms in days (`≥ 0`)                                                                                                        |

## Response

```json theme={null}
{
  "billing": {
    "onboardingStatus": "complete",
    "platformFeePercent": 12.5,
    "fees": [
      { "name": "Ad serving", "description": "Third-party ad serving", "feePercent": 2 }
    ],
    "currency": "USD",
    "country": "US",
    "defaultNetDays": 30,
    "payoutDetails": {
      "beneficiaryName": "Meridian Media Group Inc.",
      "addressLine1": "500 Harbor Blvd",
      "addressLine2": null,
      "city": "Seattle",
      "region": "WA",
      "postalCode": "98101",
      "countryCode": "US",
      "accountNumberLast4": "6789",
      "bankIdentifierType": "FEDWIRE_ABA",
      "bankIdentifierValue": "021000021",
      "completedAt": "2026-07-01T09:30:00Z"
    },
    "inherited": false,
    "createdAt": "2026-04-25T12:00:00Z",
    "updatedAt": "2026-05-01T09:30:00Z"
  }
}
```

The response is the full `StorefrontBillingResponse` after the update, mirroring
[Get billing config](/v2/storefront/billing/tasks/get-billing-config). This
endpoint never accepts or returns full bank account numbers — `payoutDetails`
is always masked.

## Errors

* `400 VALIDATION_ERROR` — `platformFeePercent` or a `feePercent` out of the `0`–`100` range, malformed `currency`, negative `defaultNetDays`, or an empty body (at least one field is required).

See [Errors](/v2/reference/errors) for the full error contract.

## Related

<CardGroup cols={2}>
  <Card title="Billing tasks" href="/v2/storefront/billing/tasks" icon="list-check">
    All billing operations
  </Card>

  <Card title="Get billing config" href="/v2/storefront/billing/tasks/get-billing-config" icon="gear">
    Read the current configuration
  </Card>

  <Card title="Set payout details" href="/v2/storefront/billing/tasks/set-payout-details" icon="building-columns">
    Save the bank account Interchange pays into
  </Card>

  <Card title="Billing overview" href="/v2/storefront/billing/overview" icon="credit-card">
    How payouts work and why bank details are needed
  </Card>
</CardGroup>
