> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crossmint.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Hooks

> React Native hooks for React Native SDK reference for Crossmint checkout

## useCrossmintCheckout()

### Returns

<ResponseField name="order" type="object">
  <Expandable title="parameters">
    <ResponseField name="lineItems" type="object[]">
      <Expandable title="parameters">
        <ResponseField name="callData" type="Record<string, any>" />

        <ResponseField name="chain" type="&#x22;solana&#x22; | &#x22;sui&#x22; | &#x22;aptos&#x22; | &#x22;ethereum&#x22; | &#x22;polygon&#x22; | &#x22;bsc&#x22; | &#x22;optimism&#x22; | &#x22;arbitrum&#x22; | &#x22;base&#x22; | &#x22;zora&#x22; | ..." />

        <ResponseField name="delivery" type="{ recipient?: object | object; status: &#x22;completed&#x22;; tokens: ... | ...[]; txId: string } | ...">
          <Expandable title="parameters">
            <ResponseField name="recipient" type="{ locator: string; physicalAddress?: object; walletAddress: string } | ..." />

            <ResponseField name="status" type="&#x22;completed&#x22;" />

            <ResponseField name="tokens" type="object | object[]" />

            <ResponseField name="txId" type="string" />
          </Expandable>
        </ResponseField>

        <ResponseField name="metadata" type="object">
          <Expandable title="parameters">
            <ResponseField name="collection" type="{ description?: string; imageUrl?: string; name?: string }" />

            <ResponseField name="description" type="string" />

            <ResponseField name="imageUrl" type="string" />

            <ResponseField name="name" type="string" />
          </Expandable>
        </ResponseField>

        <ResponseField name="quantity" type="number" />

        <ResponseField name="quote" type="object">
          <Expandable title="parameters">
            <ResponseField name="charges" type="{ gas?: object; unit: object }" />

            <ResponseField name="status" type="&#x22;valid&#x22; | &#x22;expired&#x22; | &#x22;requires-recipient&#x22; | &#x22;item-unavailable&#x22;" />

            <ResponseField name="totalPrice" type="object" />

            <ResponseField name="unavailabilityReason" type="{ code: &#x22;to&#x22; | &#x22;do&#x22;; message: string }" />
          </Expandable>
        </ResponseField>

        <ResponseField name="slippageBps" type="number" />
      </Expandable>
    </ResponseField>

    <ResponseField name="locale" type="&#x22;en-US&#x22; | &#x22;es-ES&#x22; | &#x22;fr-FR&#x22; | &#x22;it-IT&#x22; | &#x22;ja-JP&#x22; | &#x22;ko-KR&#x22; | &#x22;pt-PT&#x22; | &#x22;zh-CN&#x22; | &#x22;zh-TW&#x22; | &#x22;de-DE&#x22; | &#x22;ru-RU&#x22; | ..." />

    <ResponseField name="orderId" type="string" />

    <ResponseField name="payment" type="object">
      <Expandable title="parameters">
        <ResponseField name="currency" type="&#x22;usd&#x22; | &#x22;eur&#x22; | &#x22;gbp&#x22; | &#x22;aud&#x22; | &#x22;sgd&#x22; | &#x22;hkd&#x22; | &#x22;krw&#x22; | &#x22;inr&#x22; | &#x22;vnd&#x22; | &#x22;jpy&#x22; | &#x22;eth&#x22; | &#x22;matic&#x22; | &#x22;usdc&#x22; | ..." />

        <ResponseField name="failureReason" type="{ code: string; message?: string } | { code: &#x22;unknown&#x22; | &#x22;tx-id-not-found&#x22; | &#x22;insufficient-funds&#x22;; message?: string }">
          <Expandable title="parameters">
            <ResponseField name="code" type="string" />

            <ResponseField name="message" type="string" />
          </Expandable>
        </ResponseField>

        <ResponseField name="method" type="&#x22;solana&#x22; | &#x22;ethereum&#x22; | &#x22;polygon&#x22; | &#x22;bsc&#x22; | &#x22;optimism&#x22; | &#x22;arbitrum&#x22; | &#x22;base&#x22; | &#x22;zora&#x22; | &#x22;arbitrumnova&#x22; | ..." />

        <ResponseField name="preparation" type="object | object">
          <Expandable title="parameters">
            <ResponseField name="chain" type="&#x22;solana&#x22; | &#x22;sui&#x22; | &#x22;aptos&#x22; | &#x22;ethereum&#x22; | &#x22;polygon&#x22; | &#x22;bsc&#x22; | &#x22;optimism&#x22; | &#x22;arbitrum&#x22; | &#x22;base&#x22; | &#x22;zora&#x22; | ..." />

            <ResponseField name="payerAddress" type="string" />

            <ResponseField name="serializedTransaction" type="string" />

            <ResponseField name="stripeClientSecret" type="string" />

            <ResponseField name="stripeEphemeralKeySecret" type="string" />

            <ResponseField name="stripePublishableKey" type="string" />

            <ResponseField name="stripeSubscriptionId" type="string" />
          </Expandable>
        </ResponseField>

        <ResponseField name="receiptEmail" type="string" />

        <ResponseField name="received" type="object | object">
          <Expandable title="parameters">
            <ResponseField name="amount" type="string" />

            <ResponseField name="currency" type="&#x22;usd&#x22; | &#x22;eur&#x22; | &#x22;gbp&#x22; | &#x22;aud&#x22; | &#x22;sgd&#x22; | &#x22;hkd&#x22; | &#x22;krw&#x22; | &#x22;inr&#x22; | &#x22;vnd&#x22; | &#x22;jpy&#x22; | &#x22;eth&#x22; | &#x22;matic&#x22; | &#x22;usdc&#x22; | ..." />

            <ResponseField name="chain" type="&#x22;solana&#x22; | &#x22;sui&#x22; | &#x22;aptos&#x22; | &#x22;ethereum&#x22; | &#x22;polygon&#x22; | &#x22;bsc&#x22; | &#x22;optimism&#x22; | &#x22;arbitrum&#x22; | &#x22;base&#x22; | &#x22;zora&#x22; | ..." />

            <ResponseField name="txId" type="string" />
          </Expandable>
        </ResponseField>

        <ResponseField name="refunded" type="object | object">
          <Expandable title="parameters">
            <ResponseField name="amount" type="string" />

            <ResponseField name="currency" type="&#x22;usd&#x22; | &#x22;eur&#x22; | &#x22;gbp&#x22; | &#x22;aud&#x22; | &#x22;sgd&#x22; | &#x22;hkd&#x22; | &#x22;krw&#x22; | &#x22;inr&#x22; | &#x22;vnd&#x22; | &#x22;jpy&#x22; | &#x22;eth&#x22; | &#x22;matic&#x22; | &#x22;usdc&#x22; | ..." />

            <ResponseField name="chain" type="&#x22;solana&#x22; | &#x22;sui&#x22; | &#x22;aptos&#x22; | &#x22;ethereum&#x22; | &#x22;polygon&#x22; | &#x22;bsc&#x22; | &#x22;optimism&#x22; | &#x22;arbitrum&#x22; | &#x22;base&#x22; | &#x22;zora&#x22; | ..." />

            <ResponseField name="txId" type="string" />
          </Expandable>
        </ResponseField>

        <ResponseField name="status" type="&#x22;completed&#x22; | &#x22;awaiting-payment&#x22; | &#x22;in-progress&#x22; | &#x22;requires-quote&#x22; | &#x22;requires-crypto-payer-address&#x22; | ..." />
      </Expandable>
    </ResponseField>

    <ResponseField name="phase" type="&#x22;completed&#x22; | &#x22;quote&#x22; | &#x22;delivery&#x22; | &#x22;payment&#x22;" />

    <ResponseField name="quote" type="object">
      <Expandable title="parameters">
        <ResponseField name="expiresAt" type="string" />

        <ResponseField name="quotedAt" type="string" />

        <ResponseField name="status" type="&#x22;valid&#x22; | &#x22;expired&#x22; | &#x22;requires-recipient&#x22; | &#x22;requires-physical-address&#x22; | &#x22;all-line-items-unavailable&#x22;" />

        <ResponseField name="totalPrice" type="object">
          <Expandable title="parameters">
            <ResponseField name="amount" type="string" />

            <ResponseField name="currency" type="&#x22;usd&#x22; | &#x22;eur&#x22; | &#x22;gbp&#x22; | &#x22;aud&#x22; | &#x22;sgd&#x22; | &#x22;hkd&#x22; | &#x22;krw&#x22; | &#x22;inr&#x22; | &#x22;vnd&#x22; | &#x22;jpy&#x22; | &#x22;eth&#x22; | &#x22;matic&#x22; | &#x22;usdc&#x22; | ..." />
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="orderClientSecret" type="string" />

### Usage

```tsx theme={null}
import { useCrossmintCheckout } from "@crossmint/client-sdk-react-native-ui";
import { View, Text } from "react-native";

function OrderStatus() {
    const { order } = useCrossmintCheckout();

    if (!order) return <Text>No active order</Text>;

    return (
        <View>
            <Text>Order ID: {order.orderId}</Text>
            <Text>Phase: {order.phase}</Text>
        </View>
    );
}
```
