address.entered
Once per type per checkout, when that address is valid: every field its country requires is filled and valid, and so is each optional one filled. Checked when the shopper leaves a field they changed, once the checkout has started.
CODE
next.on('address.entered', (data, event) => {});Data
Present: always; optional when it may be missing; campaign once the campaign is loaded; priced once the server priced the cart.
| Field | Type | Present | |
|---|---|---|---|
first_name | string | always | |
last_name | string | always | |
line1 | string | always | |
line2 | string | optional | |
city | string | optional | None in a country whose addresses have no city, such as Singapore. |
state | string | optional | The state or province code, in a country that has them. |
postcode | string | optional | |
country | string | always | ISO 3166-1 alpha-2. |
phone | string | optional | In E.164 once the address service read it, else the digits typed. |
type | "shipping" | "billing" | always | Which address: billing only when it is separate from the shipping one. |
Example
The second argument, with data inside. See Events for the envelope's fields.
CODE
{
"event_id": "3f2b8c1d9e7a4b6c8d5e2f1a0b9c8d7e",
"event_type": "address.entered",
"object": "address",
"data": {
"first_name": "Jane",
"last_name": "Doe",
"line1": "1 Main St",
"city": "Austin",
"state": "CA",
"postcode": "90210",
"country": "US",
"type": "shipping"
},
"created_at": "2026-11-04T08:30:00.000Z",
"session_id": "0b8f3c2d1e4a4f6b9c7d5e3f2a1b0c9d",
"sdk_version": "0.5.0"
}