> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ndovu.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Your Configuration

> Read how your partner account is set up: country, currency, identity and KYC policy, funding channels, status and limits.

Your partner account's configuration decides what you send when you onboard a customer. Read it once at startup, and whenever you need to check your status:

```
GET /api/v3/partners/{shortName}
```

## Request

```bash cURL theme={null}
curl https://be-dev-1.dev.ndovu.co/api/v3/partners/YOUR_SHORT_NAME \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

```javascript Node.js theme={null}
const res = await fetch(
  `https://be-dev-1.dev.ndovu.co/api/v3/partners/${shortName}`,
  { headers: { Authorization: `Bearer ${accessToken}` } }
);

const { data: config } = await res.json();
```

```python Python theme={null}
res = requests.get(
    f"https://be-dev-1.dev.ndovu.co/api/v3/partners/{short_name}",
    headers={"Authorization": f"Bearer {access_token}"},
)
res.raise_for_status()
config = res.json()["data"]
```

## Response

```json theme={null}
{
  "message": "Request executed successfully",
  "data": {
    "name": "Acme Bank",
    "shortName": "acme-bank",
    "logoUrl": "https://cdn.ndovu.co/corporate/acme-bank.png",
    "kycPolicy": "PARTNER",
    "identityPolicy": "SHARED",
    "country": "KE",
    "currency": "KES",
    "status": "ACTIVE",
    "referenceCode": "ACM",
    "bankTransferEnabled": true,
    "mpesaEnabled": false,
    "limits": {
      "tokenLifetimeSeconds": 3600,
      "requestsPerMinute": 300
    },
    "environment": "staging"
  }
}
```

| Field | Type | Description |
| - | - | - |
| `name` | string | Your organisation's name. |
| `shortName` | string | The `{shortName}` used in every URL. |
| `logoUrl` | string \| null | Your logo, if we hold one. |
| `kycPolicy` | string | Who verifies your customers. See below. |
| `identityPolicy` | string | What customer identity you share with us. See below. |
| `country` | string \| null | ISO 3166-1 alpha-2 code of your market. Every customer you onboard belongs to this country. |
| `currency` | string \| null | Your customers' currency, following the country. |
| `status` | string | `ACTIVE` or `DISABLED`. See below. |
| `referenceCode` | string \| null | The three letters that start your customers' [payment references](https://docs.ndovu.co/payments.md), e.g. `ACM7F3K9Q`. Investing needs it set. |
| `bankTransferEnabled` | boolean | Your customers can invest by bank transfer. See below. |
| `mpesaEnabled` | boolean | Your customers can invest by M-Pesa. See below. |
| `limits.tokenLifetimeSeconds` | number | How long an access token lasts. |
| `limits.requestsPerMinute` | number | Your rate limit. See [Errors](https://docs.ndovu.co/errors.md#rate-limits). |
| `environment` | string | The Ndovu environment you are calling. |

The response never includes your credentials.

## identityPolicy

| Value | What you send for a customer |
| - | - |
| `SHARED` | The customer's identity: `firstName`, `lastName`, `email` and `phoneNumber` are required, and you can also send KYC details and documents. |
| `REFERENCED` | No personal data at all: only your own `externalUserId` for the customer and your KYC confirmation. Names, contact details, KYC details and documents are refused with `CUSTOMER_PII_NOT_ACCEPTED`. |

With `REFERENCED`, we never hold your customers' personal data, and the identity fields in our responses are always `null`.

## kycPolicy

| Value | Meaning |
| - | - |
| `PARTNER` | You verify your customers under your own customer due diligence, and confirm it to us with `kycVerification` when you onboard each one. |
| `NDOVU` | Ndovu verifies your customers. This always comes with `identityPolicy: SHARED`. |

## Funding channels

`bankTransferEnabled` and `mpesaEnabled` say which channels your customers can [invest](https://docs.ndovu.co/investing.md) through. Investing through a channel that isn't enabled is refused with `403 FUNDING_METHOD_NOT_ENABLED`.

M-Pesa needs the paying phone number, so it's only available with `identityPolicy: SHARED`.

## status

| Value | Meaning |
| - | - |
| `ACTIVE` | Everything works. |
| `DISABLED` | You can still authenticate and read (your configuration, products, customers, their documents, portfolios, transactions and payments), so customers keep seeing their holdings through you. Every write (onboarding, updating, uploading, investing) is refused with `403 PARTNER_DISABLED`. |

Your configuration is set by Ndovu when you are onboarded. To change it, contact [support@ndovu.co](mailto:support@ndovu.co).

## Errors

| Status | Code | Cause |
| - | - | - |
| `401` | `INVALID_PARTNER_TOKEN` | Missing, expired or invalid access token. |
| `403` | `FORBIDDEN` | `shortName` is not yours. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.