---
title: "Callback to update or create a full shopper account"
method: POST
path: "/callbacks/accounts"
tags: ["Callbacks"]
---

# Callback to update or create a full shopper account

`POST /callbacks/accounts`

Create or update a shopper account with profile information, payment and addresses. This is also known as the "upsert account" API, a combination of update and insert.

## Headers

- `X-Bolt-Hmac-Sha256` string, required

## Request body

- CreateFullAccount
  - `account_details` Account
    - `addresses` AddressListing[], required — A list of addresses associated with this account. These can be considered the "shipping addresses". The account's visible addresses are filtered according to the configured shipping destinations in your Bolt merchant dashboard. If no account addresses are available, use the billing address of the selected payment method.
      - `id` string, id — The address's unique identifier.
      - `first_name` string, required — The first name of the person associated with this address.
      - `last_name` string, required — The last name of the person associated with this address.
      - `company` string — The company associated with this address.
      - `street_address1` string, required — The street address associated with this address.
      - `street_address2` string — Any additional, optional, street address information associated with this address.
      - `locality` string, required — The locality (e.g. city, town, etc...) associated with this address.
      - `postal_code` string, required — The postal code associated with this address.
      - `region` string — The region or administrative area (e.g. state, province, county, etc...) associated with this address.
      - `country_code` 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BH' | 'BS' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'KH' | 'CM' | 'CA' | 'CV' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'CI' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MK' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SZ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW', required — The country (in its ISO 3166 alpha-2 format) associated with this address.
      - `email` string, email — The email address associated with this address.
      - `phone` string, phone — The phone number associated with this address.
      - `is_default` boolean — Whether or not this is the default address saved.
    - `payment_methods` PaymentMethod[], required — A list of payment methods associated with this account. The account's visible payment methods are filtered to include only cards that are chargeable.
      - union
        - PaymentMethodCreditCard
          - `.tag` 'credit_card', required
          - `id` string, id
          - `type` string, required — The type of payment method
          - `billing_address` union, required
            - AddressReferenceId
              - …
            - AddressReferenceExplicit
              - …
            - AddressReferencePartial
              - …
          - `network` 'visa' | 'mastercard' | 'amex' | 'discover' | 'jcb' | 'dinersclub' | 'unionpay' | 'alliancedata' | 'citiplcc', required — The credit card's network.
          - `bin` string, required — The Bank Identification Number (BIN). This is the first 4 to 8 digits of the account number.
          - `last4` string, required — The account number's last four digits.
          - `expiration` string, required — The expiration date, in YYYY-MM format.
          - `token` string, required — The Bolt token associated with the credit card.
          - `affirm_vcn_token` string — The checkout token associated with Affirm VCN credit cards.
          - `default` boolean — Indicates whether this credit card is the default payment method.
        - PaymentMethodGooglepay
          - `.tag` 'googlepay', required
          - `id` string, id
          - `type` string, required — The type of payment method
          - `billing_address` union
            - AddressReferenceId
              - …
            - AddressReferenceExplicit
              - …
            - AddressReferencePartial
              - …
          - `network` 'visa' | 'mastercard' | 'amex' | 'discover' | 'jcb' | 'dinersclub' | 'unionpay' | 'alliancedata' | 'citiplcc', required — The credit card's network.
          - `bin` string, required — The Bank Identification Number (BIN). This is the first 4 to 8 digits of the account number.
          - `last4` string, required — The account number's last four digits.
          - `expiration` string, required — The expiration date, in YYYY-MM format.
          - `token` string, required — The Bolt token associated with the credit card.
          - `affirm_vcn_token` string — The checkout token associated with Affirm VCN credit cards.
          - `default` boolean — Indicates whether this credit card is the default payment method.
        - PaymentMethodApplepay
          - `.tag` 'applepay', required
          - `id` string, id
          - `type` string, required — The type of payment method
          - `billing_address` union
            - AddressReferenceId
              - …
            - AddressReferenceExplicit
              - …
            - AddressReferencePartial
              - …
          - `network` 'visa' | 'mastercard' | 'amex' | 'discover' | 'jcb' | 'dinersclub' | 'unionpay' | 'alliancedata' | 'citiplcc', required — The credit card's network.
          - `bin` string, required — The Bank Identification Number (BIN). This is the first 4 to 8 digits of the account number.
          - `last4` string, required — The account number's last four digits.
          - `expiration` string, required — The expiration date, in YYYY-MM format.
          - `token` string, required — The Bolt token associated with the credit card.
          - `affirm_vcn_token` string — The checkout token associated with Affirm VCN credit cards.
          - `default` boolean — Indicates whether this credit card is the default payment method.
          - `bolt_reference` string — Bolt generated Applepay token id needed for token life cycle management.
        - PaymentMethodPaypal
          - `.tag` 'paypal', required
          - `success_url` string, url, required — Redirect URL for successful PayPal transaction.
          - `cancel_url` string, url, required — Redirect URL for canceled PayPal transaction.
        - PaymentMethodAffirm
          - `.tag` 'affirm', required
          - `return_url` string, url, required — Return URL to return to after payment completion in Affirm.
        - PaymentMethodAfterpay
          - `.tag` 'afterpay', required
          - `return_url` string, url, required — Return URL to return to after payment completion in Afterpay.
        - PaymentMethodKlarna
          - `.tag` 'klarna', required
          - `return_url` string, url, required — Return URL to return to after payment completion in Klarna.
        - PaymentMethodKlarnaAccount
          - `.tag` 'klarna_account', required
          - `return_url` string, url, required — Return URL to return to after payment completion in Klarna.
        - PaymentMethodKlarnaPaynow
          - `.tag` 'klarna_paynow', required
          - `return_url` string, url, required — Return URL to return to after payment completion in Klarna.
    - `profile` Profile — An account's identifying information.
      - `first_name` string, required — The given name of the person associated with this profile.
      - `last_name` string, required — The last name of the person associated with this profile.
      - `email` string, email, required — The email address asscoiated with this profile.
      - `phone` string, phone — The phone number associated with this profile.
  - `customer_data_id` string — A unique identifier for this account on your cart platform.

## Response `200`

The account details were successfully created/updated

## Other responses

- `4XX` — An error has occurred, and further details are contained in the response.
- `default` — An error has occurred, and further details are contained in the response.

---

[API](https://skmtc.dev/bolt/apis/bolt-api-reference-2.md) · [All operations](https://skmtc.dev/bolt/apis/bolt-api-reference-2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/bolt/bolt-api-reference-2/revisions/18e78f3cf6f3/schema)
