> This is Payabli documentation. For a complete page index, fetch https://docs.payabli.com/llms.txt — append .md to any page URL for lightweight markdown. For section-level indexes, query parameters, and other AI-optimized access methods, see https://docs.payabli.com/ai-agents.md

# Mobile components overview

> Learn how Payabli's native mobile SDK components let you accept payments in your mobile app

Payabli offers native mobile UI components that let you accept payments inside mobile apps. Use them to store card and ACH payment methods, capture and authorize transactions, and accept Tap to Pay. You can use mobile components to process transactions or save payment methods while remaining PCI compliant.

Each mobile component ships as a native UI view backed by a native API. The SDK owns sensitive field state, builds the request to Payabli's API, and returns a typed result. Your app never touches raw card or bank data.

Right now, only iOS is supported.

## Choose a component

Pick the mobile component for what you're building:

* [Pay In Payment Flow](/guides/mobile-components-payin) — Store card and ACH payment methods, and capture and authorize transactions.
* [Tap to Pay](/guides/mobile-components-tap-to-pay) — Accept contactless, card-present payments over NFC.

## Security model

The Payabli mobile components use OAuth authentication to protect your information.
Your Payabli `clientId` and `clientSecret` stay in your backend's environment. The mobile app never receives or stores them. Instead, your backend exchanges those credentials for a short-lived access token and sends the token to the app. The app then uses that token to authenticate its own requests to Payabli's API. Every mobile component follows the same three-step sequence to get and use that token:

#### App requests a token

Before a mobile component makes a network call to Payabli's API, it invokes a user-defined function. That function calls your own backend endpoint.

#### Backend exchanges credentials for a token

Your backend calls Payabli's `POST /v2/Token/serverside` with the `clientId` and `clientSecret`, and returns the resulting `access_token` to the app.

#### Component uses the token

The component includes the `access_token` in its request to Payabli's API. Tokens are short-lived. Each component handles an expired token differently — see its backend token endpoint section for the details.

Each component page includes a complete backend token endpoint example. See [Pay In Payment Flow](/guides/mobile-components-payin#backend-token-endpoint) or [Tap to Pay](/guides/mobile-components-tap-to-pay#backend-token-endpoint) for a minimal token server.
For more information about OAuth and access tokens, see [OAuth authentication](/developers/oauth-authentication).

## Compared to embedded components

Embedded components are Payabli's JavaScript UI components for accepting payments on a website. Mobile components are native UI views for a native mobile app. There's no web view, no `component.js`, and no CSS involved. See [Embedded components overview](/guides/pay-in-components-overview) for the web path, or [Framework integrations](/guides/pay-in-developer-components-frameworks) if you're integrating from a cross-platform framework.