# iOS SDK

## Shopify Checkout Kit

### [Overview](https://docs.forter.com/mobile-sdks/shopify-checkout-kit#overview)

When your app uses [Shopify Checkout Sheet Kit](https://github.com/Shopify/checkout-sheet-kit-ios "Shopify Checkout Sheet Kit") for checkout, Forter needs the **checkout token** to correlate fraud signals with the transaction.

The SDK exposes the token at two points:

- checkoutDidEmitWebPixelEvent — fires when the checkout opens (checkout_started), providing the token before payment

- checkoutDidComplete — fires after successful payment, providing the token and order ID

### [Integration](https://docs.forter.com/mobile-sdks/shopify-checkout-kit#integration)

#### Swift

```swift
ShopifyCheckoutSheetKit.present(checkout: checkoutURL, from: self, delegate: self)
```

```swift
extension CheckoutViewController: ShopifyCheckoutSheetKitDelegate {
    func checkoutDidEmitWebPixelEvent(event: PixelEvent) {
        guard case .standardEvent(let standardEvent) = event,
              standardEvent.name == "checkout_started",
              let checkoutToken = standardEvent.data?.checkout?.token else { return }

ForterSDK.sharedInstance().trackAction(.paymentInfo, withData: [
            "checkoutToken": checkoutToken
        ])
    }

func checkoutDidComplete(event: CheckoutCompletedEvent) {
        let checkoutToken = event.orderDetails.cart.token
        let orderId = event.orderDetails.id

ForterSDK.sharedInstance().trackAction(.paymentInfo, withData: [
            "checkoutToken": checkoutToken,
            "orderId": orderId
        ])
    }
}
```
