{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["sub-heading","admonition"]},"type":"markdown"},"seo":{"title":"Aeropay onboarding","description":"Transform your commerce with PXP's unified platform—seamless payments, real-time insights, and global growth in one powerful integration.","lang":"en-UK","siteUrl":"https://developer.pxp.io","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"aeropay-onboarding","__idx":0},"children":["Aeropay onboarding"]},{"$$mdtype":"Tag","name":"SubHeading","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Configure Aeropay in the Unity Portal and connect your merchant account."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["At ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["createComponent()"]},", the Android SDK requires non-empty session ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["allowedFundingTypes.payByBanks.aeropay.externalMerchantId"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["configurationId"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"before-you-start","__idx":1},"children":["Before you start"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you haven't already, make sure that you have activated the Components service in the Unity Portal. For more information, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/activate"},"children":["Activate Components"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You'll also need the following account details, provided by Aeropay:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Merchant ID"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["API key"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["API secret"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Configuration ID"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"step-1-ensure-aeropay-is-enabled-at-the-merchant-group-level","__idx":2},"children":["Step 1: Ensure Aeropay is enabled at the merchant group level"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Aeropay must be enabled for your merchant group before it can be configured on individual sites."]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://portal.pxp.io","target":"_blank"},"children":["Unity Portal"]},", go to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Merchant setup > Merchant groups"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select your merchant group."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Services"]}," tab, find ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Aeropay service"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If Aeropay isn't listed, click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Add service"]}," and select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Aeropay"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"step-2-get-your-pxp-api-credentials","__idx":3},"children":["Step 2: Get your PXP API credentials"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Your backend needs API credentials to create checkout sessions with HMAC authentication."]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://portal.pxp.io","target":"_blank"},"children":["Unity Portal"]},", go to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Merchant setup > Merchant groups"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select your merchant group."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Click the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Inbound calls"]}," tab."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Copy the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client ID"]}," shown in the top-right corner."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["+ New token"]}," to create an authentication token."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Choose an expiry period and click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Save"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Copy both the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["token ID"]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["token value"]},". Store these securely on your backend."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Never expose your token value or HMAC credentials in your Android app. Session creation must happen on your backend."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"step-3-configure-aeropay-on-your-site","__idx":4},"children":["Step 3: Configure Aeropay on your site"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add your Aeropay account details to each site where you'll accept Aeropay payments or payouts."]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://portal.pxp.io","target":"_blank"},"children":["Unity Portal"]},", go to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Merchant setup > Sites"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select the site you want to enable Aeropay for."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Click the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Services"]}," tab."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Aeropay service"]}," and click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Edit"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enter the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Merchant ID"]},", ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API key"]},", ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API secret"]},", and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Configuration ID"]}," provided by Aeropay."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Save"]}," in the top right."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"step-4-verify-session-configuration","__idx":5},"children":["Step 4: Verify session configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After saving your Aeropay account settings, create a test session from your backend and confirm that Aeropay is included in the response."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Include Aeropay in the session request. Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionMethod.intent.aeropay"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amounts.currencyCode"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["USD"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"merchant\": \"MERCHANT-1\",\n  \"site\": \"SITE-1\",\n  \"amounts\": {\n    \"currencyCode\": \"USD\",\n    \"transactionValue\": 25.00\n  },\n  \"transactionMethod\": {\n    \"intent\": {\n      \"aeropay\": \"Authorisation\"\n    }\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For the full session-creation request, including HMAC authentication, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/install#step-4-get-the-session-data"},"children":["Install the Android SDK — Step 4"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A correctly configured session includes Aeropay pay-by-bank settings:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"sessionId\": \"c5f0799b-0839-43ce-abc5-5b462a98f250\",\n  \"hmacKey\": \"904bc42395d4af634e2fd48ee8c2c7f52955a1da97a3aa3d82957ff12980a7bb\",\n  \"encryptionKey\": \"20d175a669ad3f8c195c9c283fc86155\",\n  \"data\": \"eyJzZXNzaW9uSWQiOiJjNWYwNzk5Yi0wODM5LTQzY2UtYWJjNS01YjQ2MmE5OGYyNTAifQ==\",\n  \"allowedFundingTypes\": {\n    \"payByBanks\": {\n      \"aeropay\": {\n        \"externalMerchantId\": \"your-aeropay-merchant-id\",\n        \"configurationId\": \"your-aerosync-configuration-id\"\n      }\n    }\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Merchant ID"]}," saved in the Unity Portal is returned in the session as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["allowedFundingTypes.payByBanks.aeropay.externalMerchantId"]},". Map this value into ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SessionConfig.allowedFundingTypes.payByBanks.aeropay.externalMerchantId"]}," when initialising the SDK."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The excerpt above shows the Aeropay-specific fields. The full Sessions API response also includes ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}," and other standard session fields required by Android ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SessionConfig"]},". Pass the complete session payload to your app. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/install#step-4-get-the-session-data"},"children":["Install the Android SDK"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Map the Aeropay funding fields into ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SessionConfig"]}," as follows. Use null-safe access so a missing Aeropay block doesn't crash your parsing before the SDK can throw ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK0113"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val aeropay = sessionResponse.allowedFundingTypes?.payByBanks?.aeropay\nallowedFundingTypes = AllowedFundingTypes(\n    payByBanks = PayByBanksConfig(\n        aeropay = AeropayFundingConfig(\n            externalMerchantId = aeropay?.externalMerchantId,\n            configurationId = aeropay?.configurationId,\n        ),\n    ),\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Empty or missing values still cause ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK0113"]}," at ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["createComponent()"]}," — this snippet is for safe parsing, not a substitute for a valid session."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["allowedFundingTypes.payByBanks.aeropay"]}," is missing, or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["externalMerchantId"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["configurationId"]}," is empty, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["checkout.createComponent(ComponentType.AERO_PAY_BUTTON, …)"]}," throws a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BaseSdkException"]}," subclass with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["errorCode"]}," = ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK0113"]},". See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/aeropay/troubleshooting#portal-and-session-setup"},"children":["Portal and session setup"]}," and the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/aeropay/troubleshooting#error-handling"},"children":["error-handling sample"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After verifying the session response, set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.currency"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"USD\""]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.entryType"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EntryType.Ecom"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.intent.aeropay"]}," to an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AeropayIntentType"]}," value. If any of these are wrong or missing, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["createComponent(ComponentType.AERO_PAY_BUTTON, …)"]}," throws a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BaseSdkException"]}," subclass:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Error code"},"children":["Error code"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Cause"},"children":["Cause"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK0114"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.entryType"]}," isn't ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EntryType.Ecom"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK0115"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.intent.aeropay"]}," isn't set"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK0116"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.currency"]}," isn't ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"USD\""]}]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/aeropay/troubleshooting#error-code-reference"},"children":["Troubleshooting — Setup and configuration"]},". For the full initialisation sample, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/aeropay/implementation"},"children":["Implementation"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"whats-next","__idx":6},"children":["What's next?"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/aeropay/implementation"},"children":["Implementation"]},":"]}," Integrate the Aeropay button into your Android app."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/aeropay/testing"},"children":["Testing"]},":"]}," Test your integration in the UAT environment."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/aeropay/how-it-works"},"children":["How it works"]},":"]}," Understand the Aeropay payment and payout flows."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you run into setup issues, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/aeropay/troubleshooting#portal-and-session-setup"},"children":["Portal and session setup"]}," in Troubleshooting."]}]},"headings":[{"value":"Aeropay onboarding","id":"aeropay-onboarding","depth":1},{"value":"Before you start","id":"before-you-start","depth":2},{"value":"Step 1: Ensure Aeropay is enabled at the merchant group level","id":"step-1-ensure-aeropay-is-enabled-at-the-merchant-group-level","depth":2},{"value":"Step 2: Get your PXP API credentials","id":"step-2-get-your-pxp-api-credentials","depth":2},{"value":"Step 3: Configure Aeropay on your site","id":"step-3-configure-aeropay-on-your-site","depth":2},{"value":"Step 4: Verify session configuration","id":"step-4-verify-session-configuration","depth":2},{"value":"What's next?","id":"whats-next","depth":2}],"frontmatter":{"seo":{"title":"Aeropay onboarding"}},"lastModified":"2026-08-13T10:57:11.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/checkout/components/android/aeropay/onboarding","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}