# Integrate processor-only Issuing Set up a processor-only Issuing integration. Before you can move forward with the [processor-only model](https://docs.stripe.com/issuing/processor-only-issuing.md), you must conduct Know Your Customer (KYC) on cardholders. In this model, a [Cardholder object](https://docs.stripe.com/api/issuing/cardholders.md) represents every end customer. ## Create a Cardholder object Create a `Cardholder` object to represent the business entity or individual that’s authorised to use the card. The response includes a unique [id](https://docs.stripe.com/api/issuing/cardholders/object.md?lang=ruby#issuing_cardholder_object-id) for the cardholder. ```curl curl https://api.stripe.com/v1/issuing/cardholders \ -u "<>:" \ -d "name=Jenny Rosen" \ --data-urlencode "email=jenny.rosen@example.com" \ --data-urlencode "phone_number=+18008675309" \ -d status=active \ -d type=individual \ -d "billing[address][line1]=123 Main Street" \ -d "billing[address][city]=San Francisco" \ -d "billing[address][state]=CA" \ -d "billing[address][postal_code]=94111" \ -d "billing[address][country]=US" ``` ## Issue a card Issue the card to the `Cardholder` by passing in the `id` from the previous step. You must also include the [currency](https://docs.stripe.com/api/issuing/cards/create.md?lang=ruby#create_issuing_card-currency) and [type](https://docs.stripe.com/api/issuing/cards/object.md?lang=ruby#issuing_card_object-type) of card (`physical` or `virtual`). In the following example, we also include the cardholder’s [shipping](https://docs.stripe.com/api/issuing/cards/create.md?lang=ruby#create_issuing_card-shipping) information. ```curl curl https://api.stripe.com/v1/issuing/cards \ -u "<>:" \ -d currency=usd \ -d type=physical \ -d "cardholder={{ISSUINGCARDHOLDER_ID}}" \ -d "shipping[name]=Jenny Rosen" \ -d "shipping[address][line1]=123 Main St" \ -d "shipping[address][city]=San Francisco" \ -d "shipping[address][state]=CA" \ -d "shipping[address][postal_code]=94111" \ -d "shipping[address][country]=US" ``` ## Track the card To track the card’s shipping status, use the [tracking_url](https://docs.stripe.com/api/issuing/cards/object.md#issuing_card_object-shipping-tracking_url) or [tracking_number](https://docs.stripe.com/api/issuing/cards/object.md#issuing_card_object-shipping-tracking_number) attributes. You can also listen to the `issuing_card.updated` webhook for updates to [shipping.status](https://docs.stripe.com/api/issuing/cards/object.md#issuing_card_object-shipping-status). For you to receive updates, the shipping carrier must support tracking. ## Activate the card When you receive a webhook indicating that `shipping.status` equals `delivered`, activate the card by updating its status. (You can also use this API to temporarily deactivate the card.) By default, cards are inactive when you create them. ```curl curl https://api.stripe.com/v1/issuing/cards/{{ISSUINGCARD_ID}} \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d status=active ``` ## Set up authorisation notifications Set up the `issuing_authorization.request` webhook to immediately notify you when someone makes an authorisation request on an issued card. This lets you approve or decline the authorisation instantly, giving you control over whether to allow or block a transaction before it completes. To learn more, see [Issuing real-time authorisations](https://docs.stripe.com/issuing/controls/real-time-authorizations.md). ## Subscribe to authorisation updates Subscribe to `issuing_authorization.create` webhook events. This webhook notifies you when someone creates a new authorisation for an issued card. It provides details about the authorisation outcome, including whether it was approved or declined. This lets you track authorisations, handle edge cases (such as network declines after approval), and place a hold on the cardholder’s balance when an authorisation completes. ## Subscribe to transaction updates Subscribe to `issuing_transaction.create` webhook events. This webhook notifies you when a new transaction is created for an issued card, which occurs when Stripe receives the clearing record for an authorisation. You can’t decline the clearing record, but you can dispute the transaction if needed. Use this webhook to track finalised spending, and update cardholder balances accordingly. A transaction doesn’t necessarily need to be associated with an authorisation (in the case of a [force capture](https://docs.stripe.com/issuing/purchases/transactions.md?issuing-capture-type=force_capture)). Additionally, the transaction amount doesn’t need to match the amount from a linked authorisation (in the case of a [partial_capture](https://docs.stripe.com/issuing/purchases/transactions.md?issuing-capture-type=partial_capture) or [over_capture](https://docs.stripe.com/issuing/purchases/transactions.md?issuing-capture-type=over_capture)). ## See also - [Reporting](https://docs.stripe.com/stripe-reports.md) - [Disputes](https://docs.stripe.com/issuing/purchases/disputes.md) - [Tokenisation](https://docs.stripe.com/issuing/cards/digital-wallets.md) - [3D Secure (3DS)](https://docs.stripe.com/issuing/3d-secure.md) - [Program management](https://docs.stripe.com/issuing/program-management.md)