# 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 authorized 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 authorization notifications Set up the `issuing_authorization.request` webhook to immediately notify you when someone makes an authorization request on an issued card. This lets you approve or decline the authorization instantly, giving you control over whether to allow or block a transaction before it completes. To learn more, see [Issuing real-time authorizations](https://docs.stripe.com/issuing/controls/real-time-authorizations.md). ## Subscribe to authorization updates Subscribe to `issuing_authorization.create` webhook events. This webhook notifies you when someone creates a new authorization for an issued card. It provides details about the authorization outcome, including whether it was approved or declined. This lets you track authorizations, handle edge cases (such as network declines after approval), and place a hold on the cardholder’s balance when an authorization 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 authorization. You can’t decline the clearing record, but you can dispute the transaction if needed. Use this webhook to track finalized spending, and update cardholder balances accordingly. A transaction doesn’t necessarily need to be associated with an authorization (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 authorization (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) - [Tokenization](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)