Skip to main content
This article explains how to configure and initialize and configure the Payment Links SDK for iOS.

Configure the SDK

The Payment Links SDK for iOS exposes a ConfigModel. Create an instance with the following arguments:
let config = ConfigModel(
    checkoutPublicKey: "{YOUR_CHECKOUT_PUBLIC_KEY}",
    environment: "sandbox",
    redirectUrl: "https://your-universal-link-redirect-url.com"
)
ArgumentTypeRequired?Description
checkoutPublicKeystringYesThe checkout public key, located in the Publisher Dashboard. In the sidebar menu, click Settings, then select the Integration tab. Copy the Checkout Public Key value.
environmentstringYesThe checkout environment. One of:
- sandbox: For testing.
- production: For live operations.
redirectUrlstringYesThe URL to redirect the player to after the checkout is complete. This applies on the external browser flow. The URL is the same as the one provided in the associated domain section with the additional prefix, https://.

Initialize the SDK

When you initialize the SDK, you need to provide a customerId. This allows the SDK to handle cases where the player closes the browser during checkout and later returns to the game. In such cases, the SDK begins validating the order using the customerId from initialization and the purchaseId from the checkout session. It then contacts the Appcharge server to check the order status and responds to the app with the next step. Additionally, the customerId ensures correct validation even if multiple players share the same device. For example, if different players log into the same game on the same phone, the SDK uses the customerId to identify the correct player and validate any associated orders with the Appcharge server. To initialize the SDK, call the method below using a ConfigModel instance and the relevant customerId. We recommend doing this on application load, ideally within the viewDidLoad lifecycle method:
import ACPaymentLinks

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // Set your checkout token and environment
        let config = ACConfigModel(
            checkoutPublicKey: "{YOUR_CHECKOUT_PUBLIC_KEY}",
            environment: "sandbox",
            redirectUrl: "https://your-universal-link-redirect-url.com"
        )

        // Initialize the SDK
        ACBridgeAPI.initialize(configModel: config, customerId: "{PLAYER_ID}")

        // Set the callback delegate 
        ACBridgeAPI.delegate = self
    }
}

Re-initialize the SDK

If the customerId changes, such as when the session context is different, re-initialize the SDK to keep order tracking accurate and ensure orders are linked to the correct player.
ACBridgeAPI.initialize(configModel: config, customerId: "{PLAYER_ID}")

Enable debug mode

Enable debug mode to view detailed logs from all parts of the SDK. This provides deeper visibility into the SDK’s behavior:
ACBridgeAPI.isDebugModeEnabled = true