# Secured Credit Card issuance

## Guide

To start issuing cards, the Credit Card Issuance payment method needs to be enabled. Speak to our sales or support team on how to get [Cards](/tokenization/introduction.md) enabled.&#x20;

{% stepper %}
{% step %}

### Prerequisite

* [ ] Get the Credit Card Issuance payment method enabled on the Zūm Portal. Our Zūm Rails team will get your account ready for testing
* [ ] Make sure you have a sandbox account for testing and read the developer quick start as [described here](/getting-started/quickstart.md)&#x20;
* [ ] Get the API username and password in the sandbox portal as [described here](/getting-started/your-zum-rails-account.md#get-access-to-api-credentials) for API access
* [ ] Get your funding source ID. You can find this information in your portal under settings/funding source page or via API, as [described here](/api-reference/funding-source.md)
* [ ] Get your wallet ID. You can find this information in your portal under the wallet page or via API, as [described here](/api-reference/wallets.md)
  {% endstep %}

{% step %}

### Authenticate with Zūm APIs

Authenticate with the Zūm Rails API as indicated below, or view more details [here](/api-reference/authentication.md)

```
Endpoint: /api/authenticate
Method: POST
```

```json
{
  "Username": "abc...123",
  "Password": "xyz...321"
}
```

{% endstep %}

{% step %}

### Cardholder Onboarding (IDV and KYC)

Zūm Rails requires Identity Verification (IDV) to meet KYC standards before a card can be issued.

* To onboard via public URL: In the Zūm Portal, you can access your Card Onboarding URL to send directly to your prospect cardholders in the Settings --> Integration Codes page
* To onboard via [Card Onboarding](/tokenization-1/zum-connect.md#card-onboarding) Hosted Link/SDK (Integrated):
  1. Create a Connect Token: Call `POST /api/connect/createtoken` and set the `ConnectTokenType` to `"CardOnboarding"`.
  2. Initialize the SDK: Embed the Zūm Connect iFrame or SDK into your application using this token.&#x20;

{% hint style="info" %}
To help streamline the Zūm Connect experience, it is possible to pass pre-filled information that you already have through [optional parameters](/tokenization-1/zum-connect.md#pre-filling-the-form) in the url
{% endhint %}

The prospect cardholder completes the Card Onboarding three-step flow:

* Profile Setup: full name, email, date of birth, and phone number.
* One-Time Passcode: sent to their email
* ID Verification: address input, a selfie, Government ID upload, and occupation details.

Once the prospect cardholder has completed the onboarding flow, a [User](/api-reference/users.md) will be created at Zūm Rails. You have to store the Zūm Rails UserID, received in the response of the API call or [event listener](https://app.gitbook.com/o/IQl2ha3gVKVmEtOjmYfE/s/KJSaSy1sLkMkigNL7ONH/~/edit/~/changes/150/tokenization-1/zum-connect#event-listener-2). In addition, you can enable [email notifications](/tokenization/how-it-works.md#identity-verification) and [card webhook](/api-reference/webhooks.md#card-webhook) to keep you updated on the IDV status.
{% endstep %}

{% step %}

### Security Deposit

Before approving the issuance of the Secured Credit Card for the User, the Security Deposit must be in your **Zūm Wallet.** You can collect the Security Deposit of the User before or after the Cardholder Onboarding step is completed and verified.&#x20;

#### Fund Zūm Wallet

To disburse funds, funds must first be deposited into the Zūm Rails platform. Create a transaction to fund the wallet from your funding source. A funding source is your operating bank account from your business with your bank. Make sure you inform the FundingSourceId and the WalletId in the payload. Alternatively, if the User is funding the Security Deposit, enable the Payment Method (EFT, Interac, Credit Card, and/or Debit Card) to secure the funds.

If needed, you can check the Zūm Wallet balance before as described [here](/api-reference/wallets.md)

```
Endpoint: /api/transaction
Method: POST
```

```json
{
  "ZumRailsType": "FundWallet",
  "TransactionMethod": "Eft",
  "Amount": 123.45,
  "Memo": "Fund 01",
  "Comment": "Funding Zum Wallet for weekly loan disbursements",
  "FundingSourceId": "<your-funding-source-id>",
  "WalletId": "<your-wallet-id>"
}
```

{% endstep %}

{% step %}

### Card Issuance

Once the user has completed the onboarding flow, passed the identity check, and the Security Deposit is in your Zūm Wallet, then the card can be issued.

* Zūm Portal: Navigate to the User page and search for the user in the portal. If the card KYC is "Approved", you will see an option under the 3 Dots menu to approve and issue the card manually. You will be asked to provide the Credit Limit Amount which is the Security Deposit that will be pulled from the Zūm Wallet.
* Zūm API: Call the [Approve Card](/api-reference/users.md#approve-a-card) endpoint in the User API. If the response is successful, it verifies that the KYC is complete, Security Deposit was successfuly pulled, and a card was issued to the User
  {% endstep %}

{% step %}

### Card Activation

Newly issued cards start in an `IssuedInactive` status.

* Zūm Portal: Navigate to the User --> Manage Prepaid Card --> Card Status Change --> set to "Activate"
* Zūm API: Use the Activate Card endpoint: `PATCH {{env}}/api/card/activate-card`.

You can verify the status at any time on the Zūm Portal by navigate to the User --> Manage Prepaid Card --> see Card Status or by calling `GET {{env}}/api/card/get-card-status/{{userId}}`.

The card is now ready to be used by the User.
{% endstep %}

{% step %}

### Receive card updates

The recommended way to receive card updates is through webhooks.

You can configure your webhook URL and which events you might want to receive in the Zūm Rails portal, under settings/webhook and api settings.

<figure><img src="/files/O2e5Km8COjEAIllyLzTh" alt="" width="272"><figcaption></figcaption></figure>

We recommend setting up all available prepaid card events events.

<figure><img src="/files/uB0nxMxGxGLOHroue4nl" alt=""><figcaption></figcaption></figure>

When the card onboard status changes, card status changes and financial transaction activity occurs, we will post to your webhook URL with relevant payload, as [described here](https://docs.zumrails.com/api-reference/transactions#get-a-specific-transaction)&#x20;
{% endstep %}
{% endstepper %}


---

# 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://docs.zumrails.com/recipes/secured-credit-card-issuance.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.
