Skip to main content

Update Customer

PUT 

/account/customer

Updates an existing customer details

Updates the details of an existing customer associated with your account Use this endpoint to modify customer properties such as email address or profile attributes, ensuring your customer information is accurate and up to date.

Request

Body

required
    updateMembers object[]

    Customers to add in Account

  • Array [
  • email stringrequired
    firstName string
    lastName string
    source string
    status string

    Possible values: [Subscribed, Unsubscribed, Bounced, Inactive, Spam]

    birthday string
    tags string[]
    currency string
    country string
    province string
    city string
    address1 string
    address2 string
    phone string
    postalCode string
    company string
    lastPurchaseOrder string
    lastPurchasePrice string
    latestOrderId string
    lastPurchaseDate string
    unsubscribedAt string

    This field will be returned if the customer is Unsubscribed. It will be in the ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ).

    customAttributes object

    Values for the custom attributes your account has defined, keyed by the attribute name exactly as you created it — spaces and capitalisation included (Interests, not Interest_list or interests).

    Send each value in the JSON type the attribute was defined with:

    Attribute typeSendExample
    STRINGa string"pro"
    INTEGERa whole number12
    DECIMALa number129.95
    DATEan ISO date or date-time"2026-09-01"
    BOOLEANtrue / falsetrue
    ARRAYa JSON array["cycling", "photography"]

    Prefer a real JSON array for an array attribute — that is the shape the segment builder matches against. A bracketed string such as "[cycling, photography]" is also accepted, for parity with CSV import, and is stored as a proper array.

    Dates must be ISO (2026-09-01, or a full ISO date-time). 09/01/2026 is rejected rather than guessed at, because it is a valid date under both MM/DD/YYYY and DD/MM/YYYY.

    Sending null for an attribute removes it from the contact.

    The request fails with 412 if it names an attribute your account has not defined, or if a value's type does not match the definition; the error message names every offending attribute. Nothing is stored in that case, so a 2xx means every attribute in the payload was saved.

    custom_attributes is accepted as an alias on the way in. Responses always use customAttributes.

    property name* any

    Values for the custom attributes your account has defined, keyed by the attribute name exactly as you created it — spaces and capitalisation included (Interests, not Interest_list or interests).

    Send each value in the JSON type the attribute was defined with:

    | Attribute type | Send | Example | | --- | --- | --- | | STRING | a string | "pro" | | INTEGER | a whole number | 12 | | DECIMAL | a number | 129.95 | | DATE | an ISO date or date-time | "2026-09-01" | | BOOLEAN | true / false | true | | ARRAY | a JSON array | ["cycling", "photography"] |

    Prefer a real JSON array for an array attribute — that is the shape the segment builder matches against. A bracketed string such as "[cycling, photography]" is also accepted, for parity with CSV import, and is stored as a proper array.

    Dates must be ISO (2026-09-01, or a full ISO date-time). 09/01/2026 is rejected rather than guessed at, because it is a valid date under both MM/DD/YYYY and DD/MM/YYYY.

    Sending null for an attribute removes it from the contact.

    The request fails with 412 if it names an attribute your account has not defined, or if a value's type does not match the definition; the error message names every offending attribute. Nothing is stored in that case, so a 2xx means every attribute in the payload was saved.

    custom_attributes is accepted as an alias on the way in. Responses always use customAttributes.

  • ]

Responses

Successful operation

Schema
    numberOfCreatedMembers integer
    numberOfUpdatedMembers integer
Loading...