> ## Documentation Index
> Fetch the complete documentation index at: https://sequence-0fb8d9e6-6256-forte-config.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Checkout

> Documentation for Unreal SDK overview for the Sequence infrastructure stack for web3 gaming.

## Creating Transactions

### Generate Listing Transaction

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-6256-forte-config/sqpnUgwrz3LSdY1A/images/unreal/checkout/generate_listing_transaction.png?fit=max&auto=format&n=sqpnUgwrz3LSdY1A&q=85&s=2ab60ee24b618c5504cf1f96bc9acf2b" width="2018" height="1064" data-path="images/unreal/checkout/generate_listing_transaction.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGenerateTransactionResponse> OnApiSuccess = [this, OnSuccess](const FGenerateTransactionResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GenerateListingTransaction(SequenceSdk::GetChainId(), WalletAddress, CollectionAddress, TokenId, Amount, ContractType, CurrencyTokenAddress, PricePerToken, Expiry, OrderbookKind, WalletKind, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Generate Offer Transaction

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-6256-forte-config/sqpnUgwrz3LSdY1A/images/unreal/checkout/generate_offer_transaction.png?fit=max&auto=format&n=sqpnUgwrz3LSdY1A&q=85&s=ab2eba9b884876bc205bdcceb706e574" width="2018" height="1064" data-path="images/unreal/checkout/generate_offer_transaction.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGenerateTransactionResponse> OnApiSuccess = [this, OnSuccess](const FGenerateTransactionResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GenerateOfferTransaction(SequenceSdk::GetChainId(), WalletAddress, CollectionAddress, TokenId, Amount, ContractType, CurrencyTokenAddress, PricePerToken, Expiry, OrderbookKind, WalletKind, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Generate Buy Transaction

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-6256-forte-config/sqpnUgwrz3LSdY1A/images/unreal/checkout/generate_buy_transaction.png?fit=max&auto=format&n=sqpnUgwrz3LSdY1A&q=85&s=deb774bd43913809ce412a8b966c0af0" width="2018" height="1064" data-path="images/unreal/checkout/generate_buy_transaction.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGenerateTransactionResponse> OnApiSuccess = [this, OnSuccess](const FGenerateTransactionResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GenerateBuyTransaction(SequenceSdk::GetChainId(), WalletAddress, Order, Amount, AdditionalFee, WalletKind, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Generate Sell Transaction

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-6256-forte-config/sqpnUgwrz3LSdY1A/images/unreal/checkout/generate_sell_transaction.png?fit=max&auto=format&n=sqpnUgwrz3LSdY1A&q=85&s=3211ec35ed709924175b0068890c9217" width="2018" height="1064" data-path="images/unreal/checkout/generate_sell_transaction.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGenerateTransactionResponse> OnApiSuccess = [this, OnSuccess](const FGenerateTransactionResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GenerateSellTransaction(SequenceSdk::GetChainId(), WalletAddress, Order, Amount, AdditionalFee, WalletKind, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Generate Cancel Transaction

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-6256-forte-config/sqpnUgwrz3LSdY1A/images/unreal/checkout/generate_cancel_transaction.png?fit=max&auto=format&n=sqpnUgwrz3LSdY1A&q=85&s=0c8a326f4312f69ce96c73f4a131cfa3" width="2018" height="1064" data-path="images/unreal/checkout/generate_cancel_transaction.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGenerateTransactionResponse> OnApiSuccess = [this, OnSuccess](const FGenerateTransactionResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GenerateCancelTransaction(SequenceSdk::GetChainId(), WalletAddress, CollectionAddress, OrderId, MarketplaceKind, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Generate Cancel Transaction by Order

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-6256-forte-config/sqpnUgwrz3LSdY1A/images/unreal/checkout/generate_cancel_transaction_by_order.png?fit=max&auto=format&n=sqpnUgwrz3LSdY1A&q=85&s=a680aeee2e7c2454856bdc356137b42d" width="2018" height="1064" data-path="images/unreal/checkout/generate_cancel_transaction_by_order.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGenerateTransactionResponse> OnApiSuccess = [this, OnSuccess](const FGenerateTransactionResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GenerateCancelTransactionByOrder(SequenceSdk::GetChainId(), WalletAddress, CollectionAddress, Order, MarketplaceKind, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Steps to Transaction

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-6256-forte-config/sqpnUgwrz3LSdY1A/images/unreal/checkout/steps_to_transaction.png?fit=max&auto=format&n=sqpnUgwrz3LSdY1A&q=85&s=f69ce1fb890819f1d9b71830232f64ba" width="2018" height="1064" data-path="images/unreal/checkout/steps_to_transaction.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    UTransactions* Transactions = NewObject<UTransactions>();

    for (const FTransactionStep& Step : Steps)
    {
        FRawTransaction RawTransaction = FRawTransaction(Step.To, Step.Data, Step.Value.IsEmpty() ? TEXT("0") : Step.Value);
        Transactions->AddRaw(RawTransaction);
    }
    ```
  </Tab>
</Tabs>

## Checkout Options

### Get Checkout Options

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-6256-forte-config/sqpnUgwrz3LSdY1A/images/unreal/checkout/get_checkout_options.png?fit=max&auto=format&n=sqpnUgwrz3LSdY1A&q=85&s=3d9e0f93dd991bb53d7abfadb380ce4f" width="2018" height="1064" data-path="images/unreal/checkout/get_checkout_options.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGetCheckoutOptionsResponse> OnApiSuccess = [this, OnSuccess](const FGetCheckoutOptionsResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GetCheckoutOptions(SequenceSdk::GetChainId(), WalletAddress, Orders, AdditionalFeeBps, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Get Checkout Options by Orders

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-6256-forte-config/sqpnUgwrz3LSdY1A/images/unreal/checkout/get_checkout_options_by_orders.png?fit=max&auto=format&n=sqpnUgwrz3LSdY1A&q=85&s=0bc667c5fa288f19090beb87157e9431" width="2018" height="1064" data-path="images/unreal/checkout/get_checkout_options_by_orders.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGetCheckoutOptionsResponse> OnApiSuccess = [this, OnSuccess](const FGetCheckoutOptionsResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GetCheckoutOptionsByOrders(SequenceSdk::GetChainId(), WalletAddress, Orders, AdditionalFeeBps, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Get Checkout Options by ERC1155 Sale

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-6256-forte-config/sqpnUgwrz3LSdY1A/images/unreal/checkout/get_checkout_options_by_erc1155.png?fit=max&auto=format&n=sqpnUgwrz3LSdY1A&q=85&s=0827609f6a65e8b749680059dcbb0283" width="2018" height="1064" data-path="images/unreal/checkout/get_checkout_options_by_erc1155.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGetCheckoutOptionsResponse> OnApiSuccess = [this, OnSuccess](const FGetCheckoutOptionsResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GetCheckoutOptionsByERC1155Contract(SequenceSdk::GetChainId(), WalletAddress, SaleContract, CollectionAddress, TokenId, Amount, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Get Checkout Options by ERC721 Sale

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-6256-forte-config/sqpnUgwrz3LSdY1A/images/unreal/checkout/get_checkout_options_by_erc721.png?fit=max&auto=format&n=sqpnUgwrz3LSdY1A&q=85&s=069a12419d6afc9d96119d8f68ef12b0" width="2018" height="1064" data-path="images/unreal/checkout/get_checkout_options_by_erc721.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGetCheckoutOptionsResponse> OnApiSuccess = [this, OnSuccess](const FGetCheckoutOptionsResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GetCheckoutOptionsByERC721Contract(SequenceSdk::GetChainId(), WalletAddress, SaleContract, CollectionAddress, TokenId, Amount, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Get Checkout Options by Token Id Amounts

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-6256-forte-config/sqpnUgwrz3LSdY1A/images/unreal/checkout/get_checkout_options_by_token_id_amounts.png?fit=max&auto=format&n=sqpnUgwrz3LSdY1A&q=85&s=41cfa6dd4213f96528928ea27556e242" width="2018" height="1064" data-path="images/unreal/checkout/get_checkout_options_by_token_id_amounts.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGetCheckoutOptionsResponse> OnApiSuccess = [this, OnSuccess](const FGetCheckoutOptionsResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GetCheckoutOptionsByTokenIdAmounts(SequenceSdk::GetChainId(), WalletAddress, SaleContract, CollectionAddress, AmountsByTokenId, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>
