# Card Module

### Architecture Overview

City Protocol's card infrastructure provides a unified interface for issuing and managing payment cards as part of our Neofinance as a Service layer.&#x20;

The card module is designed to abstract away provider-specific complexity, enabling integrators to build against a single, stable surface, `CityCardClient` , regardless of the underlying card issuer. Card issuance, lifecycle management, and sensitive operations like PAN reveal are all handled through a provider-backed model that keeps integration surfaces consistent and provider logic encapsulated.

***

### Key Components

<table><thead><tr><th width="170.8203125">Component</th><th>Description</th></tr></thead><tbody><tr><td><strong>CityCardClient</strong></td><td>The primary integration surface. Provider-agnostic client that exposes a uniform API for card creation, lifecycle actions, and sensitive operations across all supported providers.</td></tr><tr><td><strong>Card Providers</strong></td><td>Encapsulated provider modules — including <code>ReapCardProvider</code>, <code>InterlaceCardProvider</code>, and <code>URCardProvider</code> — that handle issuer-specific logic behind the unified client interface.</td></tr><tr><td><strong>KYC Payload</strong></td><td>Identity verification data required at card creation. Passed directly through the creation call and forwarded to the underlying provider in accordance with its compliance requirements.</td></tr><tr><td><strong>Lifecycle Actions</strong></td><td>A set of post-issuance operations — freeze, unfreeze, reveal, and replace — that allow integrators to manage card state throughout its lifecycle. Availability varies by provider.</td></tr><tr><td><strong>Meta Context</strong></td><td>Optional metadata fields (client ID, email, OTP phone number) that allow integrators to correlate card records with their own internal user and compliance systems.</td></tr></tbody></table>


---

# 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.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.
