---
title: "requestAddress(for:fields:message:)"
framework: proximityreader
role: symbol
role_heading: Instance Method
path: "proximityreader/customerengagementsession/requestaddress(for:fields:message:)"
---

# requestAddress(for:fields:message:)

Opens a form so that the customer can share the postal address and additionally collect email address and phone number.

## Declaration

```swift
final func requestAddress(for purpose: CustomerEngagementSession.Purpose? = nil, fields: [CustomerEngagementSession.Field], message: String? = nil) async throws -> CustomerEngagement.Address
```

## Parameters

- `purpose`: An optional enum of pre-defined purpose of the form, for example .shipping.
- `fields`: An array of optional contact field types on the form. Only .emailAddress and .phoneNumber types are supported.
- `message`: A multi-line message text below the title.

## Return Value

Return Value CustomerEngagement.Address with postal address and contact information shared by the customer.

## Discussion

Discussion For example, email and phone number can be used for delivery notification. note: CustomerEngagementSession.Error if the request fails.

## See Also

### Requesting and getting customer information

- [requestCustomerInfo(for:fields:message:)](proximityreader/customerengagementsession/requestcustomerinfo(for:fields:message:).md)
- [requestSignup(for:fields:message:emailConsent:smsConsent:termsAndConditions:)](proximityreader/customerengagementsession/requestsignup(for:fields:message:emailconsent:smsconsent:termsandconditions:).md)
- [requestPayment(for:using:delegate:)](proximityreader/customerengagementsession/requestpayment(for:using:delegate:).md)
- [CustomerEngagementSession.Purpose](proximityreader/customerengagementsession/purpose.md)
- [CustomerEngagementSession.Field](proximityreader/customerengagementsession/field.md)
- [CustomerEngagementSession.ConsentOption](proximityreader/customerengagementsession/consentoption.md)
