Create a contact
POST
https://app.speybooks.com/api/v1/contacts/Creates a new contact. Only contactType and name are required — all other fields are optional and default to sensible values (country defaults to United Kingdom, payment terms to 30 days, currency to GBP).
The email field accepts an empty string to explicitly clear a previously set email. All other optional fields accept null.
Body parameters
contactType string requiredOne of
customer, supplier, or both. Determines which transaction flows the contact participates in. Contacts marked both appear in both customer and supplier filtered lists.name string requiredPrimary display name. Required. Used for search matching alongside company and email.
addressLine1 string optionalFirst line of the postal address.
addressLine2 string optionalSecond line of the postal address.
bankAccount string optionalBank account number. Optional, for payment reference.
bankIban string optionalInternational Bank Account Number. Optional, for international payments.
bankName string optionalName of the contact's bank. Optional, for payment reference.
bankSortCode string optionalUK sort code. Optional, for payment reference.
city string optionalCity or town.
company string optionalOptional company or trading name. Searched alongside name and email in list queries.
country string optionalCountry name. Defaults to
United Kingdom on creation.currency string optionalISO 4217 currency code. 3 characters, defaults to
GBP. Determines the currency used on invoices for this contact.email string optionalOptional email address. Validated format when provided. Used for invoice delivery.
isActive string optionalWhether 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.metadata string optionalCustom 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.notes string optionalFree-text notes. Up to 2,000 characters. Not visible on invoices.
paymentTerms string optionalDefault payment terms in days. Integer 0–365, defaults to 30. Applied when creating invoices for this contact.
phone string optionalOptional phone number. Free-text, no format validation.
postalCode string optionalPostal code or ZIP code.
region string optionalCounty, region, or state.
vatNumber string optionalVAT registration number. Free-text, no format validation. Used on invoices for compliance.
Response
201 Contact created. Returns the prefixed ID and name.
Show response fields
id stringname stringError codes
400 Validation error in contact data or metadata.