Update a contact

PUThttps://app.speybooks.com/api/v1/contacts/{id}

Updates one or more fields on an existing contact. Only the fields included in the request body are modified; omitted fields are unchanged (partial update semantics).

Metadata uses merge semantics: existing keys are preserved unless explicitly overwritten. Send a key with value null to remove it.

Path parameters

idstringrequired
Contact ID (e.g. cont_3). Must use the contact prefix.

Body parameters

addressLine1stringoptional
First line of the postal address.
addressLine2stringoptional
Second line of the postal address.
bankAccountstringoptional
Bank account number. Optional, for payment reference.
bankIbanstringoptional
International Bank Account Number. Optional, for international payments.
bankNamestringoptional
Name of the contact's bank. Optional, for payment reference.
bankSortCodestringoptional
UK sort code. Optional, for payment reference.
citystringoptional
City or town.
companystringoptional
Optional company or trading name. Searched alongside name and email in list queries.
contactTypestringoptional
One of customer, supplier, or both. Determines which transaction flows the contact participates in. Contacts marked both appear in both customer and supplier filtered lists.
countrystringoptional
Country name. Defaults to United Kingdom on creation.
currencystringoptional
ISO 4217 currency code. 3 characters, defaults to GBP. Determines the currency used on invoices for this contact.
emailstringoptional
Optional email address. Validated format when provided. Used for invoice delivery.
isActivestringoptional
Whether the contact is active. Inactive contacts are hidden from default list queries but retained for audit. Set to false automatically when a contact with invoices is deleted.
metadatastringoptional
Custom key-value pairs. Max 50 keys, values must be strings. Keys prefixed _sb_ are reserved. Uses merge semantics on update; send null to remove a key.
namestringoptional
Primary display name. Required. Used for search matching alongside company and email.
notesstringoptional
Free-text notes. Up to 2,000 characters. Not visible on invoices.
paymentTermsstringoptional
Default payment terms in days. Integer 0–365, defaults to 30. Applied when creating invoices for this contact.
phonestringoptional
Optional phone number. Free-text, no format validation.
postalCodestringoptional
Postal code or ZIP code.
regionstringoptional
County, region, or state.
vatNumberstringoptional
VAT registration number. Free-text, no format validation. Used on invoices for compliance.

Response

200Contact updated.
Show response fields
updatedboolean

Error codes

400Invalid ID format, validation error, or invalid metadata.
404Contact not found.