---
title: "Update a company customer"
method: PUT
path: "/api/external/v2/company_customers/{id}"
tags: ["Customers"]
---

# Update a company customer

`PUT /api/external/v2/company_customers/{id}`

This endpoint returns the updated company customer.

> ℹ️
> This endpoint requires the following scope: `customers:all`

## Path parameters

- `id` string, required

## Request body

- object
  - `name` string
  - `vat_number` string
  - `reg_no` string
  - `phone` string
  - `billing_address` object
    - `address` string
    - `postal_code` string
    - `city` string
    - `country_alpha2` string
  - `delivery_address` object, nullable
    - `address` string
    - `postal_code` string
    - `city` string
    - `country_alpha2` string
  - `payment_conditions` 'upon_receipt' | 'custom' | '7_days' | '15_days' | '30_days' | '30_days_end_of_month' | '45_days' | '45_days_end_of_month' | '60_days' — Note that the `custom` option is only used on Pennylane's web app to avoid pre-filling the deadline when creating an invoice. On the API it has no effect and you will still have to provide a deadline when creating an invoice.
  - `billing_iban` string, nullable
  - `recipient` string — The name of the person to whom the invoice is addressed
  - `reference` string, nullable
  - `notes` string, nullable
  - `emails` string[]
  - `external_reference` string — You can use your own unique value when creating the customer. If not provided, Pennylane will pick one for you. Value must be unique
  - `billing_language` 'fr_FR' | 'en_GB' | 'de_DE' — The language in which the customer will receive invoices. Default is `fr_FR`

## Response `200`

Returns the updated company customer

- object
  - `id` integer, required
  - `name` string, required
  - `billing_iban` string, nullable, required
  - `payment_conditions` 'upon_receipt' | 'custom' | '7_days' | '15_days' | '30_days' | '30_days_end_of_month' | '45_days' | '45_days_end_of_month' | '60_days', required — Note that the `custom` option is only used on Pennylane's web app to avoid pre-filling the deadline when creating an invoice. On the API it has no effect and you will still have to provide a deadline when creating an invoice.
  - `recipient` string, required — The name of the person to whom the invoice is addressed
  - `phone` string, required
  - `reference` string, nullable, required
  - `notes` string, nullable, required
  - `vat_number` string, required
  - `reg_no` string, required
  - `ledger_account` object, nullable, required
    - `id` integer, required
  - `emails` string[], required
  - `billing_address` object, required
    - `address` string, required
    - `postal_code` string, required
    - `city` string, required
    - `country_alpha2` string, required
  - `delivery_address` object, required
    - `address` string, required
    - `postal_code` string, required
    - `city` string, required
    - `country_alpha2` string, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `external_reference` string, required — The unique external reference assigned to this customer, assigned on creation either by you or Pennylane. (Same attribute as `source_id` in the API v1)
  - `billing_language` 'fr_FR' | 'en_GB' | 'de_DE', required — The language in which the customer will receive invoices. Default is `fr_FR`
  - `mandates` object, required — GoCardless mandates associated with this customer
    - `url` string, required — URL to list GoCardless mandates associated with this customer
  - `pro_account_mandates` object, required — Pro Account mandates associated with this customer
    - `url` string, required — URL to list Pro Account mandates associated with this customer
  - `contacts` object, required
    - `url` string, required — URL to get the contacts of the customer.

## Other responses

- `400` — Bad request
- `401` — Access token is missing or invalid
- `403` — Access to this resource forbidden
- `404` — The resource was not found
- `409` — Conflict with the current state of the target resource, such as when trying to create a resource that already exists.
- `422` — Unprocessable content

---

[API](https://skmtc.net/pennylane/apis/company-v2.md) · [All operations](https://skmtc.net/pennylane/apis/company-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pennylane/company-v2/versions/a5b7236473c6/schema)
