---
# System prepended metadata

title: Client Integration

---

# Client Integration
We return all the data after OTP and you use it in your UI
```js
if(braintree.axo.lookupCustomerByEmail(email)) {
    braintree.axo.triggerAuthenticationFlow({ ...axoConfiguration })
        .then({ axoAddresses, axoFundingInstruments} => updateUI(axoAddresses))
        .catch(err => showErr(err))
}
```

# Server Integration
We return a buyer access token, you send it to your server, execute an api to receive addresses, send them back to update your UI

## Client
```js
if(braintree.connect.lookupCustomerByEmail(email)) {
    braintree.connect.triggerAuthenticationFlow({ ...axoConfiguration })
        .then({ buyerAccessToken } => fetchAddresses(axoAddresses))
        .then(axoAddresses => updateUI(axoAddresses)))
        .catch(err => showErr(err))
}

function fetchAddresses(buyerAccessToken) {
    return fetch(`https://www.bigcommerce/axoAddresses/${buyerAccessToken}`)
        .then(res => res.json())
}
```

## Server
```js
import express from 'express';
const app = express();
import fetch from 'node-fetch';

app.get('/axoAddress/:token', async (req, res) => {
    return fetch(`https://api.paypal.com/v2/vault/addresses/${token}`)
        .then( res => res.json())
}
```