Update a contact
PUT
https://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
idstringrequiredContact ID (e.g. cont_3). Must use the contact prefix.
Body parameters
addressLine1stringoptionalFirst line of the postal address.
addressLine2stringoptionalSecond line of the postal address.
bankAccountstringoptionalBank account number. Optional, for payment reference.
bankIbanstringoptionalInternational Bank Account Number. Optional, for international payments.
bankNamestringoptionalName of the contact's bank. Optional, for payment reference.
bankSortCodestringoptionalUK sort code. Optional, for payment reference.
citystringoptionalCity or town.
companystringoptionalOptional company or trading name. Searched alongside name and email in list queries.
contactTypestringoptionalOne of
customer, supplier, or both. Determines which transaction flows the contact participates in. Contacts marked both appear in both customer and supplier filtered lists.countrystringoptionalCountry name. Defaults to
United Kingdom on creation.currencystringoptionalISO 4217 currency code. 3 characters, defaults to
GBP. Determines the currency used on invoices for this contact.emailstringoptionalOptional email address. Validated format when provided. Used for invoice delivery.
isActivestringoptionalWhether 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.metadatastringoptionalCustom 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.namestringoptionalPrimary display name. Required. Used for search matching alongside company and email.
notesstringoptionalFree-text notes. Up to 2,000 characters. Not visible on invoices.
paymentTermsstringoptionalDefault payment terms in days. Integer 0–365, defaults to 30. Applied when creating invoices for this contact.
phonestringoptionalOptional phone number. Free-text, no format validation.
postalCodestringoptionalPostal code or ZIP code.
regionstringoptionalCounty, region, or state.
vatNumberstringoptionalVAT registration number. Free-text, no format validation. Used on invoices for compliance.
Response
200Contact updated.
Show response fields
updatedbooleanError codes
400Invalid ID format, validation error, or invalid metadata.
404Contact not found.