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

# Card issuer setup

> One-time setup — discover card programs on OpenCard, enable them on your account, and expose them in your client marketplace before TPA onboarding.

Client onboarding starts with **choosing a card program**. That only works if you have already decided **which issuers your EMS offers**. This is a **one-time account setup** — not part of the per-client wizard.

<Tip>
  Part of the full path → [Customer onboarding overview](/ems/customer-onboarding)
</Tip>

```mermaid theme={null}
flowchart TD
    A[GET /cardissuers — platform catalog] --> B{Enable on your account}
    B -->|API| C[POST .../accounts/id/cardissuers/cardIssuerId]
    B -->|UI| D[application.opencard.io — Card Issuers]
    C --> E[GET .../accounts/id/cardissuers — enabled list]
    D --> E
    E --> F[Your marketplace — client picks one]
    F --> G[TPA with card_issuer_id from choice]
```

***

## 1. Discover available programs

```
GET /cardissuers
Scope: card-issuers-read
```

Returns every card program on the OpenCard platform. Your EMS account does **not** have them yet — this is the full catalog.

→ [List available issuers](/api-reference/ems/card-issuers/list-available-issuers)

***

## 2. Enable the ones you sell

Pick the programs you want in your product, then attach them to **your account**:

```
POST /accounts/{accountId}/cardissuers/{cardIssuerId}
Scope: account-card-issuers-write
```

You can do this via the API or in **[application.opencard.io](https://application.opencard.io)** under **Card Issuers** (enable / disable per program). Same result either way.

→ [Enable issuer](/api-reference/ems/card-issuers/enable-issuer) · [Quickstart](/getting-started/quickstart#step-2-enable-a-card-issuer)

***

## 3. Show enabled programs in your marketplace

When a **client** onboards, list only what you enabled:

```
GET /accounts/{accountId}/cardissuers
Scope: account-card-issuers-read
```

Build a marketplace (or wizard step) where the client picks one program. Store the chosen **`id`** — that becomes `card_issuer_id` when you create the TPA.

The optional [ocTPA plugin](/ems/plugins) renders the same step as product cards. Example — Nordea Business Card with Mastercard (fields from `GET .../cardissuers`):

<div className="oc-tpa-preview">
  <div className="oc-tpa-card">
    <div className="oc-tpa-card-header">
      <div>
        <div className="oc-tpa-card-title">Nordea Business Card</div>
        <div className="oc-tpa-card-subtitle">Corporate Card</div>
      </div>

      <div className="oc-tpa-card-logo-wrap">
        <img src="https://mintcdn.com/openapiintab/udRwCWbvwyadOk4U/images/examples/nordea-logo.svg?fit=max&auto=format&n=udRwCWbvwyadOk4U&q=85&s=9b070e2664034fc0b61303c72053db9f" alt="Nordea" className="oc-tpa-card-logo" width="120" height="32" data-path="images/examples/nordea-logo.svg" />
      </div>
    </div>

    <p className="oc-tpa-card-desc">
      Corporate card with real-time transaction data, digital receipts, and expense enrichment via OpenCard.
    </p>

    <div className="oc-tpa-card-footer">
      <div className="oc-tpa-card-scheme-wrap">
        <img src="https://mintcdn.com/openapiintab/udRwCWbvwyadOk4U/images/examples/mastercard.svg?fit=max&auto=format&n=udRwCWbvwyadOk4U&q=85&s=e51d4707ebd02e7e60b845ea22f2db9d" alt="Mastercard" className="oc-tpa-card-scheme" width="100" height="40" data-path="images/examples/mastercard.svg" />
      </div>

      <div className="oc-tpa-card-actions">
        <span className="oc-tpa-btn-outline">Info & Pricing</span>
        <span className="oc-tpa-btn-primary">Activate</span>
      </div>
    </div>
  </div>
</div>

Fields the plugin maps from each enabled issuer:

| API field                   | Use in UI                                   |
| --------------------------- | ------------------------------------------- |
| `name_product`              | Card title                                  |
| `type_product`              | Subtitle (e.g. Corporate Card, Credit Card) |
| `logo_url`                  | Issuer logo                                 |
| `product_description_short` | Short description on the card               |
| `card_scheme_logo_url`      | Visa / Mastercard badge                     |
| `name_display`              | Confirmation screen after selection         |
| `product_description_long`  | Longer copy on confirmation                 |
| `id`                        | **`card_issuer_id`** on `POST .../tpas`     |

Filter by `name_system` if you only expose a subset (`allowedCardIssuerIds` in the plugin).

***

## Next step

Once issuers are enabled, each client picks one in Phase 1 and you create the TPA with that `card_issuer_id`.

→ [TPA flow](/ems/tpa-flow) · [Customer onboarding — Phase 1](/ems/customer-onboarding#phase-1--client-setup)
