# Card Creation Flow

Card creation is a single atomic call that bundles identity verification, card configuration, and metadata into one request. The provider handles issuer-specific formatting, validation, and submission.

#### **Parameters include:**

| Parameter           | Purpose                                                                       |
| ------------------- | ----------------------------------------------------------------------------- |
| `cardType`          | Defines the form factor — `"virtual"` or physical.                            |
| `customerType`      | Indicates whether the cardholder is a `"Consumer"` or business entity.        |
| `preferredCardName` | The name embossed or displayed on the card.                                   |
| `spendLimit`        | The maximum allowable spend for the card.                                     |
| `expiryDate`        | The requested card expiration date.                                           |
| `kyc`               | Identity payload: name, date of birth, address, and ID document details.      |
| `meta`              | Optional integrator context: internal client ID, email, and OTP phone number. |

***

### Lifecycle Actions

Once a card is created, integrators manage its state through a set of lifecycle methods on `CityCardClient`. Not all actions are available on every provider — availability depends on the underlying issuer's capabilities and security model.

#### Freeze and Unfreeze

Temporarily suspends or reactivates a card. Useful for fraud response, user-initiated locks, or compliance holds. The card remains issued but cannot authorize transactions while frozen.

#### Reveal

Returns the full card number (PAN), CVV, and expiration details. This operation is subject to the provider's own security model — some providers require additional OTP verification or scoped session tokens before revealing sensitive data.

> Reveal is a sensitive operation. Integrators should gate access behind their own authorization layer and ensure PAN data is never logged or persisted outside of PCI-compliant infrastructure.

#### Replace

Issues a replacement card, typically with a new card number and expiration date. Replacement is used when a card is compromised, expired, or otherwise needs to be reissued without creating an entirely new card record.

***

### Supported Providers

City Protocol supports multiple card providers that reflect different geographic coverage, compliance frameworks, and product capabilities:

<table><thead><tr><th width="151.640625">Provider</th><th width="226.12109375">Module</th><th>Notes</th></tr></thead><tbody><tr><td><strong>Reap</strong></td><td><code>ReapCardProvider</code></td><td>Virtual and physical card issuance with consumer and corporate support.</td></tr><tr><td><strong>Interlace</strong></td><td><code>InterlaceCardProvider</code></td><td>Asia-Pacific focused provider with multi-currency capabilities.</td></tr><tr><td><strong>UR</strong></td><td><code>URCardProvider</code></td><td>Additional issuer coverage for expanded geographic and regulatory reach.</td></tr></tbody></table>

The provider model is extensible — new issuers can be integrated behind the `CityCardClient` surface without breaking changes to existing integrations.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://city-protocol.gitbook.io/docs/neofinance-as-a-service/card-module/card-creation-flow.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
