# Kulipa Documentation > Seamless crypto card issuing service Create the best experience for your wallet users by letting them spend in the real world, directly from crypto. Kulipa is a white-label platform that blends seamlessly into your wallet platform - web, iOS, and Android. ## API Reference: 🏁 QUICK START - [Getting started with Kulipa](https://kulipa.readme.io/reference/getting-started.md): This page will help you get started with Kulipa. You'll be up and running in a jiffy! - Basics - [Versioning](https://kulipa.readme.io/reference/basics-versioning.md) - [Authentication](https://kulipa.readme.io/reference/basics-auth.md) - [Errors](https://kulipa.readme.io/reference/basics-errors.md) - [Idempotency](https://kulipa.readme.io/reference/basics-idempotency.md) - [Pagination](https://kulipa.readme.io/reference/basics-pagination.md) - [Request IDs](https://kulipa.readme.io/reference/basics-request-ids.md) - [Rate Limiting](https://kulipa.readme.io/reference/basics-rate-limiting.md) ## API Reference: Introduction - Concepts - [Users](https://kulipa.readme.io/reference/intro-to-users.md) - [Wallet](https://kulipa.readme.io/reference/intro-to-wallet.md) - [KYC](https://kulipa.readme.io/reference/intro-to-kyc.md) - [Cards](https://kulipa.readme.io/reference/intro-to-cards.md): Kulipa cards lifecycle and API usage - [Shared KYC](https://kulipa.readme.io/reference/shared-kyc.md) - [Transactions](https://kulipa.readme.io/reference/intro-to-transactions.md) - [KYC Export](https://kulipa.readme.io/reference/kyc-export.md) - [Webhooks](https://kulipa.readme.io/reference/intro-to-webhooks.md) - [Webhook Events](https://kulipa.readme.io/reference/webhook-events.md) - [B2B (company) cards](https://kulipa.readme.io/reference/b2b.md): Kulipa B2B cards - [3D Secure (3DS)](https://kulipa.readme.io/reference/intro-to-3ds.md): Understanding 3D Secure authentication in the Kulipa system - Guidelines - [Onboarding Flow](https://kulipa.readme.io/reference/onboarding-flow.md) - [F.A.Q.](https://kulipa.readme.io/reference/onboarding-faq.md) ## API Reference: About users - User - [List users](https://kulipa.readme.io/reference/listusers.md): Provides a collection of User entities. These entities are ordered in decreasing order based on their creation date, with the newest object listed at the beginning. - [Create a new User.](https://kulipa.readme.io/reference/createuser.md): A `POST` request sent to create a User and Wallet. This endpoint is common to both prepaid and debit programs. The country of residence is required to determine the region where the cards will be… - [Retrieve a user](https://kulipa.readme.io/reference/getuser.md): Retrieve a User entity via its ID. - [Retrieve a user balance](https://kulipa.readme.io/reference/getuserbalance.md): Retrieve a User balance via its ID. - [Set the phone number of a user](https://kulipa.readme.io/reference/setuserphonenumber.md): Set the phone number of the specified user identified by its ID. - [Set the email address of a user](https://kulipa.readme.io/reference/updateuseremail.md): Update the email address of the specified user identified by its ID. - [Set the address of a user](https://kulipa.readme.io/reference/updateuseraddress.md): Update the address of the specified user identified by its ID. Only users who are exempt from KYC can update their address directly. Users who have undergone KYC must complete a new KYC process to… - [Set the shipping address of a user](https://kulipa.readme.io/reference/updateusershippingaddress.md): Update the shipping address of the specified user identified by its ID. - [Accept consent](https://kulipa.readme.io/reference/acceptconsent.md): Accept a consent for the specified user. For example, a new ToS version. ## API Reference: Card Payments - CardPayment - [List all card payments](https://kulipa.readme.io/reference/list.md): Provides a collection of **Card Payment** entities. These entities are ordered in decreasing order based on their creation date, with the newest object listed at the beginning. Each card payment has… - [Get a card payment by ID](https://kulipa.readme.io/reference/get.md): Retrieves a single **Card Payment** entity by its unique identifier. - [Trigger a settlement run (testing and sandbox ONLY)](https://kulipa.readme.io/reference/triggersettlementrun.md): A `POST` request to trigger the settlement process. Only available in non-production environments. Rate limited to 1 request per 5 minutes. - Simulation - [Simulate a card authorization](https://kulipa.readme.io/reference/simulateauthorization-1.md): Authorization involves verifying a card's validity, ensuring business criteria are fulfilled, and checking fund availability before temporarily reserving said funds. Use this endpoint to emulate an… - [Simulate an incremental card authorization](https://kulipa.readme.io/reference/simulateauthorizationincremental-1.md): For simulating incremental authorization, proceed as follows: 1. Simulate an `authorization` request. 2. Use the `ID` from the authorization webhook and invoke the subsequent endpoint: - [Simulate a card pre-authorization](https://kulipa.readme.io/reference/simulatepreauthorization.md): Pre-authorization temporarily reserves funds before the final amount is known (for example hotels, car rental, or fuel dispensers). Use the returned `authorizationId` with the existing… - [Simulate a card authorization clearing](https://kulipa.readme.io/reference/simulateauthorizationclearing-1.md): For simulating authorization clearing invoke the subsequent endpoint with the authorization `ID`: - [Simulate a card authorization reversal](https://kulipa.readme.io/reference/simulateauthorizationreversal-1.md): For simulating authorization reversal invoke the subsequent endpoint with the authorization `ID`: - [Simulate a card refund](https://kulipa.readme.io/reference/simulateauthorizationrefund-1.md): There is no need for a prior authorization to simulate a refund. - [Simulate a 3DS request](https://kulipa.readme.io/reference/simulate3ds.md): Simulates a 3D Secure (3DS) authentication request for online card transactions. 3DS provides an additional layer of security by requiring cardholder authentication before authorizing online… ## API Reference: About kyc - KYC - [Initiate a new KYC Verification for an existing User.](https://kulipa.readme.io/reference/createkyc.md): A request sent to start KYC verification. - [List KYC processes](https://kulipa.readme.io/reference/listkycs.md): Provides a collection of KYC entities. These entities are ordered in decreasing order based on their creation date, with the newest object listed at the beginning. - [Retrieve a KYC Process.](https://kulipa.readme.io/reference/getkyc.md): Fetch a single KYC process. - [Import pre-verified KYC data from a partner platform](https://kulipa.readme.io/reference/importkyc.md): > ⚠️ **NOT AVAILABLE YET** > > This endpoint is not available yet. Please contact the Kulipa partnership team to request access. Initiates a new KYC process from an existing user using pre-verified… - [List the countries Kulipa accepts for KYC verification.](https://kulipa.readme.io/reference/listallowedcountries.md): Returns the list of countries that are eligible for KYC onboarding. Use this endpoint to drive a country picker before creating a user, so you only ever submit `countryOfResidence` values that… - [Force a KYC Process outcome (testing and sandbox ONLY).](https://kulipa.readme.io/reference/forceoutcomekyc.md): A `POST` request sent to force a KYC outcome. Only available in testing and staging environments. > ⚠️ **Requirements** > > - The user must have all fields filled in before calling this endpoint. >… - [List the countries Kulipa restricts for KYC verification.](https://kulipa.readme.io/reference/listrestrictedcountries.md): Returns ISO 3166-1 alpha-2 codes on Kulipa's prohibition list, sorted alphabetically. The same list drives exclusions on `GET /kycs/allowed-countries`; that endpoint returns supported world codes… - [Resume an expired KYC Process.](https://kulipa.readme.io/reference/resumekyc.md): Resume a KYC process that has expired, generating a new session token so the user can continue their verification. Only KYC processes of type `full` or `rfi` can be resumed. > **Constraints** > > -… - [Export KYC Data](https://kulipa.readme.io/reference/exportkyc.md): Retrieves the full verified identity dataset for a user who has completed KYC verification. This endpoint returns personal details, identity documents, selfie data, and compliance questionnaire… - [Import pre-verified KYB (Know Your Business) data from a partner platform](https://kulipa.readme.io/reference/importkyb.md): > ⚠️ **NOT AVAILABLE YET** > > This endpoint is not available yet. Please contact the Kulipa partnership team to request access. Initiates a new KYB process from an existing business using… - [Import pre-verified KYB (Know Your Business) data from a partner platform](https://kulipa.readme.io/reference/importkybindividuals.md): > ⚠️ **NOT AVAILABLE YET** > > This endpoint is not available yet. Please contact the Kulipa partnership team to request access. Initiates a new KYB process for individuals associated with an… ## API Reference: About cards - [Card](https://kulipa.readme.io/reference/card.md) - [Create a new virtual or physical card](https://kulipa.readme.io/reference/createcard.md): A `POST` request sent to create a card. Prior to create a card, the user must have completed KyC and verified his wallet. Cards can have different designs setup during onboarding. If no `designId` is… - [List all cards](https://kulipa.readme.io/reference/listcards.md): Provides a collection of _cards_. These entities are ordered in decreasing order based on their creation date, with the newest object listed at the beginning. - [Retrieve a card](https://kulipa.readme.io/reference/getcard.md): Fetch a single Card entity. - [Activate a card - a card in status `inactive`.](https://kulipa.readme.io/reference/activatecard.md): A `POST` request sent to activate a card. If this is a physical card in state `inactive`, the last 4 digits must also be supplied. > **tip** This endpoint must be used for newly created physical… - [Mark as shipped a card - a card in status `inactive` (testing and sandbox ONLY).](https://kulipa.readme.io/reference/markasshippedcard.md): A `PUT` request sent to mark as shipped a card. > **tip** This endpoint must be used for newly created physical cards in status `inactive`. Otherwise, the physical card will be marked as `shipped`… - [Freeze a card](https://kulipa.readme.io/reference/freezecard.md): A `PUT` request sent to freeze a card. If you believe a cardholder's card may have been lost, stolen, or involved in potential fraudulent behavior, you can freeze the card. This freeze will prevent… - [Unfreeze a card](https://kulipa.readme.io/reference/unfreezecard.md): A `PUT` request sent to unfreeze a card. For a previously frozen card, you can unfreeze it to allow new transactions. Be aware than even after a successful unfreeze, the card may remain in the… - [Revoke a card](https://kulipa.readme.io/reference/revokecard.md): A `POST` request sent to revoke a card. If a cardholder declares their card missing or stolen, or if fraudulent actions are verified, you have the option to invalidate the card, ensuring it is… - [Generate a token to view a physical card's PIN code](https://kulipa.readme.io/reference/generatepintoken.md): A `POST` request sent to generate a token to view a physical card's PIN code. This endpoint is not available for virtual cards. WARNING: The card's PIN code is a PCI sensitive field that should… - [Reissue a card](https://kulipa.readme.io/reference/reissuecard.md): A `POST` request sent to reissue a card. This endpoint creates a replacement card for an existing card that has been lost or stolen. The new card will always receive a new PIN, a fresh expiration… - [Generate a token to view a card's PAN](https://kulipa.readme.io/reference/generatepantoken.md): A `POST` request sent to generate a token to view a card's PAN. WARNING: The card's PAN is a PCI sensitive field that should only be viewed on the client device and never logged or stored in any… - [Generate card data which can be sent to Apple Pay for tokenization.](https://kulipa.readme.io/reference/generateapplepaytokenizationdata.md): The card must be enrolled for Apple Pay tokenization. This endpoint returns mock data in testing environment. - [Retrieve a card's spending control](https://kulipa.readme.io/reference/getcardspendingcontrols.md): Fetch a card's spending control settings and usage. - [Generate card data which can be sent to Google Pay for tokenization.](https://kulipa.readme.io/reference/generategooglepaytokenizationdata.md): The card must be enrolled for Google Pay tokenization. This endpoint returns mock data in testing environment. - [Edit a spending control on a card](https://kulipa.readme.io/reference/editspendingcontrol.md): A `PATCH` request sent to edit an existing spending control on a card. Only `description` and `config` fields can be updated. The spending control must be in active status. - [Add a spending control to the card](https://kulipa.readme.io/reference/createspendingcontrol.md): A `POST` request sent to add a new spending control - [Activate the Apple Pay or Google Pay tokenization for a card after successful authentication.](https://kulipa.readme.io/reference/activatetokenization.md): This should only be used after manually adding a card to Apple Pay or Google Pay, and the user has selected the option to authentiticate via the mobile wallet. Authentication should be done by the… - [Delete a spending control from a card](https://kulipa.readme.io/reference/deletespendingcontrol.md): A `DELETE` request sent to remove a spending control from a card. The spending control will be marked as deleted and removed from the card processor. ## API Reference: About Wallet - Wallet - [List all wallets](https://kulipa.readme.io/reference/listwallets.md): Provides a collection of _wallets_. These entities are ordered in decreasing order based on their creation date, with the newest object listed at the beginning. - [Create a business wallet](https://kulipa.readme.io/reference/createwallet.md): A `POST` request sent to create a wallet. > Separate wallet creation is only supported for B2B distributors. > Consumer wallets are created as a part of user creation API call. > 💡 Info > When… - [Retrieve a wallet](https://kulipa.readme.io/reference/getwallet.md): Fetch a wallet entity. - [Verify a wallet](https://kulipa.readme.io/reference/verifywallet.md): A `PUT` request sent to verify a `non-custodial` wallet. Confirming the ownership of a wallet is vital for the safeguarding of your assets and to emit a new card (virtual or physical). At its core,… - [Withdraw funds to a wallet (Prepaid program ONLY)](https://kulipa.readme.io/reference/withdrawfundswallet.md): A `POST` request to withdraw funds to a registered `non-custodial` wallet. The withdrawal process is influenced by the wallet's status and the available funds. - [List withdrawals from a wallet (Prepaid program ONLY)](https://kulipa.readme.io/reference/listwithdrawalswallet.md): A `GET` request to list withdrawals from a registered `non-custodial` wallet. Supports filtering by creation date and status, with pagination. - [List top-ups to a wallet](https://kulipa.readme.io/reference/listtopupswallet.md): A `GET` request to list blockchain deposit transactions (top-ups) to a registered wallet. Supports filtering by creation date and status, with pagination. - [Retrieve wallet balance](https://kulipa.readme.io/reference/getwalletbalance.md): Fetch the balance of a wallet. ## API Reference: Introduction to Webhooks - Webhook Subscription - [Create a webhook subscription](https://kulipa.readme.io/reference/createwebhooksubscription.md): This section explains the process of establishing a **Webhook Subscription** to send webhooks to a designated **URL**. To get notifications concerning changes in status of a resource, you need to… - [List webhook subscriptions](https://kulipa.readme.io/reference/listwebhooksubscriptions.md): Provides a collection of **Webhook Subscription** entities. These entities are ordered in decreasing order based on their creation date, with the newest object listed at the beginning. - [Verify a webhook subscription](https://kulipa.readme.io/reference/verifywebhooksubscription.md): Verify a **Webhook Subscription** entity. Calling this endpoint will trigger Kulipa to send a `POST` request to your service with the following payload: ```json { "id":… - [Retrieve a webhook subscription](https://kulipa.readme.io/reference/getwebhooksubscription.md): Fetch a **Webhook Subscription** entity. - [Update a webhook subscription](https://kulipa.readme.io/reference/updatewebhooksubscription.md): Update a **Webhook Subscription** entity. You have the option to change the `description`, and `enabled state` of your endpoint. - [Delete a webhook subscription](https://kulipa.readme.io/reference/deletewebhooksubscription.md): Delete a **Webhook Subscription** entity. - Webhook Event - [Webhook public key information](https://kulipa.readme.io/reference/getwebhookspublickeyinfo.md): Retrieve the public key for validating webhook events. - [Webhook events](https://kulipa.readme.io/reference/incomingwebhookevent.md): Example of endpoint body with headers post to `your-server` application. ## API Reference: 3DS Card Authentication Decision - 3DS - [Accept 3DS authentication](https://kulipa.readme.io/reference/accept3dsauthentication.md): Accepts a 3D Secure authentication request with cryptographic signatures. This endpoint is used to confirm a 3DS authentication after the user has reviewed the transaction details in their wallet… - [Reject 3DS authentication](https://kulipa.readme.io/reference/reject3dsauthentication.md): Rejects a 3D Secure authentication request. This endpoint is used to decline a 3DS authentication when the user chooses not to authorize the transaction or suspects fraud. For more details about… ## API Reference: About companies - Company - [List companies](https://kulipa.readme.io/reference/listcompanies.md): Provides a collection of Company entities. These entities are ordered in decreasing order based on their creation date, with the newest object listed at the beginning. - [Retrieve a company](https://kulipa.readme.io/reference/getcompany.md): Retrieve a Company entity via its ID. - [Create a company](https://kulipa.readme.io/reference/createcompany.md): Create a Company entity. The country of registration is required to determine the region where the cards will be issued from. - [Activate a company](https://kulipa.readme.io/reference/activatecompany.md): Activate a created company in `inactive` state.