# Get the Bank Ramp Customer

> Coming soon, upon request — this feature is turned on for your tenant by the Aurea team. [Contact us](https://www.aureahub.com/contact)

Read the user's customer as Aurea keeps it — its state, its sections and what the user does next.

## Overview

- Answers from Aurea's records. The bank ramp's changes reach Aurea by its notifications; [Sync the Customer](https://docs.aureahub.com/docs/bank-customer-sync.md) reads the customer now. A customer made on the bank ramp's hosted pages has no notifications: sync it.
- **Without a customer**: `customer` is `null` and `nextStep` is `start_onboarding` — or `403` `BANK_RAMP_FUNCTION_OFF` when your tenant's KYC is off in that environment.
- **With a customer** it answers whatever your tenant's settings, so a user always sees where they stand; `kycStrategy` is then `null` while the KYC is off.
- Answers `403` to a token without a tenant.

## What It Says

| Field | Meaning |
| --- | --- |
| customer.customerId | Aurea's id of the customer. |
| customer.profileId | The id of the customer's profile at the bank ramp. |
| customer.registered | Whether the bank ramp confirmed the customer. `false` after a call that did not reach the end: [Create a Customer](https://docs.aureahub.com/docs/bank-customer-create.md) or Sync finishes it. |
| customer.state | The customer's state at the bank ramp, `null` until it confirmed the customer: `created` (nothing sent yet), `incomplete` (a section needs data), `pending` (everything sent, in review), `review` (held for a manual review), `approved`, `rejected` (final) or `closed`. See [Customer States](https://docs.aureahub.com/docs/guide-bank-customers.md). |
| customer.sections | `details` and `form`: `incomplete`, `pending`, `approved`, `rejected`, or `null` before the bank ramp said; `verifications`: each `kind` with its `state`, in the bank ramp's words. |
| customer.closedReason | Why the bank ramp closed the customer: `compliance`, `inactive`, `user-requested`, `duplicate` or `other`; `null` otherwise. |
| customer.errorFields | The names of the fields the bank ramp last refused in the data it received: correct them and send the section again. |
| verification.nextStep | `start_onboarding`: no customer yet, or one the bank ramp has not confirmed — create it; `continue_onboarding`: send what `missing` names; `wait_for_review`; `approved`: nothing to do; `rejected`: declined for good; `closed`. |
| verification.missing | While the user can still send data: the sections that need it — `details`, `form`, `verifications`. A section needs data until the bank ramp has it (`pending` or `approved`). |
| verification.kycStrategy | How your tenant's KYC goes in this environment: `reliance`, `identity_sharing` or `hosted_oauth`; `null` when the KYC is off. |

## Endpoint

### `GET /v1/ramp/bank/customer`

Authentication: bearer token required.

Returns the user's bank ramp customer in one environment, with the next step.

**Query parameters**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `isTestnet` | boolean | no | `true` for the sandbox; `false` or omitted for production. Any other value returns `400`. |

**Responses**

`200` In review

```json
{
  "environment": "sandbox",
  "customer": {
    "customerId": "2f6c1e84-5b3a-4d97-8e21-0c4a7b9d3f15",
    "profileId": "8d4e2a17-6c3b-4f58-9a0e-1b7c5d3e2f49",
    "kind": "personal",
    "environment": "sandbox",
    "registered": true,
    "state": "pending",
    "sections": {
      "details": "pending",
      "form": "pending",
      "verifications": [
        { "kind": "idDocument", "state": "pending" },
        { "kind": "sourceOfFunds", "state": "pending" }
      ]
    },
    "closedReason": null,
    "errorFields": [],
    "createdAt": "2026-10-14T09:00:00.000Z",
    "updatedAt": "2026-10-14T09:20:12.000Z"
  },
  "verification": {
    "state": "pending",
    "nextStep": "wait_for_review",
    "missing": [],
    "kycStrategy": "reliance"
  }
}
```

`200` No customer yet

```json
{
  "environment": "sandbox",
  "customer": null,
  "verification": {
    "state": null,
    "nextStep": "start_onboarding",
    "missing": [],
    "kycStrategy": "reliance"
  }
}
```

`403` KYC off

```json
{
  "statusCode": 403,
  "error": "ForbiddenError",
  "message": "The bank ramp's KYC is not switched on for this tenant in production.",
  "details": { "code": "BANK_RAMP_FUNCTION_OFF", "function": "kyc", "environment": "production" }
}
```

**Example request**

```bash
curl "https://api.aureahub.com/v1/ramp/bank/customer?isTestnet=true" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
```

---

Web version: https://docs.aureahub.com/#bank-customer-get
