{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["sub-heading","endpoint","br","details","required","tabs","tab","admonition","json-example"]},"type":"markdown"},"seo":{"title":"FlashFlow transaction","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"},"dynamicMarkdocComponents":["openapi"],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"flashflow-transaction","__idx":0},"children":["FlashFlow transaction"]},{"$$mdtype":"Tag","name":"SubHeading","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Get a list of supported FlashFlow banks, then process online FlashFlow purchases and payouts using Pay by Bank."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"overview","__idx":1},"children":["Overview"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can submit a FlashFlow transaction in these ways:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Purchase (pay-in):"]}," Create a pay-by-bank transaction with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["apmProvider"]}," set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Flashflow"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["intent"]}," set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Purchase"]},". Supply ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bankName"]}," (the bank code from the bank-list route) and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bankAccountNumber"]},". Render ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.iframeSrc"]}," from the response in your own UI so the shopper can complete the pay-in."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Payout (withdrawal), new bank account:"]}," Create a pay-by-bank transaction with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["intent"]}," set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Payout"]}," and supply all three of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bankName"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bankAccountNumber"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bankAccountHolderName"]},". Don't also send ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gatewayTokenId"]},". Capture ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.gatewayTokenId"]}," from the response to reuse the destination later."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Payout (withdrawal), stored bank account:"]}," Create a payout and supply ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gatewayTokenId"]}," from an earlier accepted payout, or from a completed FlashFlow pay-in webhook or query when vaulted, instead of resending bank details."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["FlashFlow supports ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["THB"]}," only. Purchase examples use Thai shopper details (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["countryCode"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TH"]},"). Treat merchant webhooks as the authoritative final outcome. Don't treat the shopper completing the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["iframeSrc"]}," surface as payment confirmation on its own. You can use the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/transaction/other/initiate-a-transaction"},"children":["Get transaction details API"]}," later for reconciliation."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Note that FlashFlow doesn't support capture, void, or refund."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"get-flashflow-supported-banks","__idx":2},"children":["Get FlashFlow supported banks"]},{"$$mdtype":"Tag","name":"Endpoint","attributes":{"method":"GET"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["/v1/altp-flashflow-processor/{merchant}/{site}/bank-list"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"request-example","__idx":3},"children":["Request example"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Call this before creating FlashFlow pay-ins or payouts that need a bank code. Use each bank's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," value as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.bankName"]}," when you create a transaction. Don't send the bank's display ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]},"."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"curl","header":{"controls":{"copy":{}}},"source":"curl --request GET \\\n     --url 'https://api-services.pxp.io/api/v1/altp-flashflow-processor/MERCHANT-1/SITE-1/bank-list' \\\n     --header 'accept: application/json'\n","lang":"curl"},"children":[]},{"$$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":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchant"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string (≤ 10 characters)"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your unique merchant identifier, as assigned by PXP."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["site"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string (≤ 50 characters)"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your unique site identifier, as assigned by PXP."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"response-example","__idx":4},"children":["Response example"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If your request is successful, you'll receive a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["200"]}," response with the cached bank list. On a provider failure, the gateway may return the last known good cached list when one is available. A ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["500"]}," response is returned when the cache is empty and the provider call also fails."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"banks\": [\n    {\n      \"code\": \"KTB\",\n      \"name\": \"Krung Thai Bank\"\n    }\n  ]\n}\n","lang":"json"},"children":[]},{"$$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":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["banks"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["array"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The supported FlashFlow banks for your merchant and site."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["banks[].code"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The FlashFlow bank code (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["KTB"]},"). Use this value as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.bankName"]}," on create."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["banks[].name"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The display name of the bank. Don't send this as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bankName"]}," on create."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"initiate-a-flashflow-transaction","__idx":5},"children":["Initiate a FlashFlow transaction"]},{"$$mdtype":"Tag","name":"Endpoint","attributes":{"method":"POST"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["/v1/transactions"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"request-examples","__idx":6},"children":["Request examples"]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Purchase","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the following request to start a FlashFlow pay-in. Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["apmProvider"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Flashflow"]},". Supply ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bankName"]}," with a bank code from the bank-list route, plus ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bankAccountNumber"]},". Optionally set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]}," (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["QR"]},") and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionTimeout"]}," in minutes. Render ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.iframeSrc"]}," from the response in your own UI."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"merchant\": \"MERCHANT-1\",\n  \"site\": \"SITE-1\",\n  \"merchantTransactionId\": \"FLASHFLOW-TXN-001\",\n  \"merchantTransactionDate\": \"2026-09-21T10:00:00Z\",\n  \"transactionMethod\": {\n    \"intent\": \"Purchase\",\n    \"entryType\": \"Ecom\",\n    \"fundingType\": \"PayByBank\"\n  },\n  \"fundingData\": {\n    \"payByBank\": {\n      \"apmProvider\": \"Flashflow\",\n      \"bankName\": \"KTB\",\n      \"bankAccountNumber\": \"1234567890\",\n      \"type\": \"QR\",\n      \"transactionTimeout\": 10\n    }\n  },\n  \"amounts\": {\n    \"transaction\": 100.00,\n    \"currencyCode\": \"THB\"\n  },\n  \"shopper\": {\n    \"id\": \"Shopper_TH_01\",\n    \"firstName\": \"Somchai\",\n    \"lastName\": \"Jaidee\",\n    \"phoneNumber\": \"+66812345678\",\n    \"countryCode\": \"TH\"\n  }\n}\n","lang":"json"},"children":[]},{"$$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":{"width":"40%","data-label":"Parameter"},"children":["Parameter "]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchant"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string (≤ 10 characters)"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your unique merchant identifier, as assigned by PXP."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["site"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string (≤ 50 characters)"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your unique site identifier, as assigned by PXP."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchantTransactionId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string (≤ 50 characters)"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A unique identifier for this transaction."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchantTransactionDate"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["date-time"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The date and time when the transaction happened, in ISO 8601 format."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionMethod"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["object"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Details about the transaction method."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionMethod.entryType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The entry type. For e-commerce FlashFlow transactions, this is always ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Ecom"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionMethod.fundingType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The funding type. For FlashFlow, this is always ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PayByBank"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionMethod.intent"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The payment intent. For a FlashFlow pay-in, set this to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Purchase"]},". ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/transactions/how-it-works#intents"},"children":["Learn more about intents"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amounts"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["object"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Details about the transaction amount."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amounts.transaction"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["number"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The transaction amount. The numbers after the decimal will be zero padded if they are less than the expected ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currencyCode"]}," exponent. For example, GBP 1.1 = GBP 1.10, EUR 1 = EUR 1.00, or BHD 1.3 = 1.300. The transaction will be rejected if numbers after the decimal are greater than the expected ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currencyCode"]}," exponent (e.g., GBP 1.234), or if a decimal is supplied when the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currencyCode"]}," exponent does not require it (e.g., JPY 1.0). For FlashFlow pay-ins, the minimum amount is 10 THB."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amounts.currencyCode"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string (1-3 characters)"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The currency code associated with the transaction, in ISO 4217 format. For FlashFlow, this must be ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["THB"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["object"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Details about the payment method used for the transaction. For FlashFlow, use the Pay by bank funding shape only."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["object"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Pay-by-bank funding details for FlashFlow."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.apmProvider"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The alternative payment method (APM) provider. For FlashFlow, this must be ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Flashflow"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.bankName"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The FlashFlow bank code from the bank-list route (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["KTB"]},"). Don't send the bank's display name. Treat as sensitive."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.bankAccountNumber"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The shopper source account number for the pay-in. Treat as sensitive."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.type"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The FlashFlow pay-in type. For example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["QR"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.transactionTimeout"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["integer (1-1440)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The pay-in timeout in minutes. When omitted, the provider default applies. Values below 10 are raised to a 10-minute floor before they are sent to FlashFlow."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["shopper"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["object"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Details about the shopper making the payment. Include ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["firstName"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["lastName"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["phoneNumber"]},". Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," as your opaque shopper reference for later webhooks."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["shopper.countryCode"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string (2 characters)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The shopper's country, in ISO 3166-1 alpha-2 format. When supplied, use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TH"]},". Omitting ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["countryCode"]}," is accepted."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["shopper.phoneNumber"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The shopper's phone number in E.164 format (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["+66812345678"]},")."]}]}]}]}]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Payout (new bank account)","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the following request to start a FlashFlow withdrawal when you supply the destination bank account for the first time. Supply all three of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bankName"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bankAccountNumber"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bankAccountHolderName"]},". Don't also send ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gatewayTokenId"]},". Capture ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.gatewayTokenId"]}," from the response so you can reuse the same destination later."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"merchant\": \"MERCHANT-1\",\n  \"site\": \"SITE-1\",\n  \"merchantTransactionId\": \"FLASHFLOW-PAYOUT-001\",\n  \"merchantTransactionDate\": \"2026-09-21T10:00:00Z\",\n  \"transactionMethod\": {\n    \"intent\": \"Payout\",\n    \"entryType\": \"Ecom\",\n    \"fundingType\": \"PayByBank\"\n  },\n  \"fundingData\": {\n    \"payByBank\": {\n      \"apmProvider\": \"Flashflow\",\n      \"bankName\": \"KTB\",\n      \"bankAccountNumber\": \"1234567890\",\n      \"bankAccountHolderName\": \"Somchai Jaidee\"\n    }\n  },\n  \"amounts\": {\n    \"transaction\": 100.00,\n    \"currencyCode\": \"THB\"\n  }\n}\n","lang":"json"},"children":[]},{"$$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":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchant"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string (≤ 10 characters)"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your unique merchant identifier, as assigned by PXP."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["site"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string (≤ 50 characters)"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your unique site identifier, as assigned by PXP."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchantTransactionId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string (≤ 50 characters)"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A unique identifier for this transaction."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchantTransactionDate"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["date-time"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The date and time when the transaction happened, in ISO 8601 format."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionMethod"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["object"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Details about the transaction method."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionMethod.entryType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The entry type. For e-commerce FlashFlow transactions, this is always ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Ecom"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionMethod.fundingType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The funding type. For FlashFlow, this is always ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PayByBank"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionMethod.intent"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The payment intent. For a FlashFlow withdrawal, set this to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Payout"]},". ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/transactions/how-it-works#intents"},"children":["Learn more about intents"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amounts"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["object"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Details about the transaction amount."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amounts.transaction"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["number"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The transaction amount. The numbers after the decimal will be zero padded if they are less than the expected ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currencyCode"]}," exponent. For example, GBP 1.1 = GBP 1.10, EUR 1 = EUR 1.00, or BHD 1.3 = 1.300. The transaction will be rejected if numbers after the decimal are greater than the expected ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currencyCode"]}," exponent (e.g., GBP 1.234), or if a decimal is supplied when the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currencyCode"]}," exponent does not require it (e.g., JPY 1.0)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amounts.currencyCode"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string (1-3 characters)"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The currency code associated with the transaction, in ISO 4217 format. For FlashFlow, this must be ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["THB"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["object"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Details about the payment method used for the transaction. For FlashFlow, use the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["payByBank"]}," funding shape only."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["object"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Pay by bank funding details for FlashFlow."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.apmProvider"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The APM provider. For FlashFlow, this must be ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Flashflow"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.bankName"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The FlashFlow bank code from the bank-list route (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["KTB"]},"). Required with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bankAccountNumber"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bankAccountHolderName"]}," when ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gatewayTokenId"]}," isn't supplied. Treat as sensitive."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.bankAccountNumber"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The destination account number. Required with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bankName"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bankAccountHolderName"]}," when ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gatewayTokenId"]}," isn't supplied. Treat as sensitive."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.bankAccountHolderName"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The beneficiary account holder name. Required with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bankName"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bankAccountNumber"]}," when ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gatewayTokenId"]}," isn't supplied. Treat as sensitive."]}]}]}]}]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Payout (stored bank account)","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the following request to start a FlashFlow withdrawal when you already have a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gatewayTokenId"]}," from an earlier accepted payout, or from a completed FlashFlow pay-in webhook or query when vaulted. You don't need to resend bank details."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"merchant\": \"MERCHANT-1\",\n  \"site\": \"SITE-1\",\n  \"merchantTransactionId\": \"FLASHFLOW-PAYOUT-002\",\n  \"merchantTransactionDate\": \"2026-09-21T10:00:00Z\",\n  \"transactionMethod\": {\n    \"intent\": \"Payout\",\n    \"entryType\": \"Ecom\",\n    \"fundingType\": \"PayByBank\"\n  },\n  \"fundingData\": {\n    \"payByBank\": {\n      \"apmProvider\": \"Flashflow\",\n      \"gatewayTokenId\": \"b6e2f1a4-c3d8-4f7a-b1e9-d2c3f4a5b6c7\"\n    }\n  },\n  \"amounts\": {\n    \"transaction\": 100.00,\n    \"currencyCode\": \"THB\"\n  }\n}\n","lang":"json"},"children":[]},{"$$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":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchant"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string (≤ 10 characters)"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your unique merchant identifier, as assigned by PXP."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["site"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string (≤ 50 characters)"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your unique site identifier, as assigned by PXP."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchantTransactionId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string (≤ 50 characters)"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A unique identifier for this transaction."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchantTransactionDate"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["date-time"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The date and time when the transaction happened, in ISO 8601 format."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionMethod"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["object"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Details about the transaction method."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionMethod.entryType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The entry type. For e-commerce FlashFlow transactions, this is always ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Ecom"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionMethod.fundingType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The funding type. For FlashFlow, this is always ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PayByBank"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionMethod.intent"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The payment intent. For a FlashFlow withdrawal, set this to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Payout"]},". ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/transactions/how-it-works#intents"},"children":["Learn more about intents"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amounts"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["object"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Details about the transaction amount."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amounts.transaction"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["number"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The transaction amount. The numbers after the decimal will be zero padded if they are less than the expected ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currencyCode"]}," exponent. For example, GBP 1.1 = GBP 1.10, EUR 1 = EUR 1.00, or BHD 1.3 = 1.300. The transaction will be rejected if numbers after the decimal are greater than the expected ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currencyCode"]}," exponent (e.g., GBP 1.234), or if a decimal is supplied when the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currencyCode"]}," exponent does not require it (e.g., JPY 1.0)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amounts.currencyCode"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string (1-3 characters)"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The currency code associated with the transaction, in ISO 4217 format. For FlashFlow, this must be ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["THB"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["object"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Details about the payment method used for the transaction. For FlashFlow, use the Pay by bank funding shape only."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["object"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Pay by bank funding details for FlashFlow."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.apmProvider"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The APM provider. For FlashFlow, this must be ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Flashflow"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.gatewayTokenId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The reference to a stored PXP payment account for the destination bank account. Use the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.gatewayTokenId"]}," value from an earlier accepted FlashFlow payout response, or from a completed FlashFlow pay-in webhook or query when vaulted."]}]}]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"response-examples","__idx":7},"children":["Response examples"]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Purchase","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If your request is successful, you'll receive a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["200"]}," response. For a successful FlashFlow purchase initiation, expect a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PendingOnProvider"]}," state with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.iframeSrc"]}," for the QR or bank redirect surface. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["approvedAmount"]}," may also be present when FlashFlow returns a floating settlement amount. The response includes ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amounts"]},", echoed from your request. There's no ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gatewayTokenId"]}," on the create response for pay-in. A payment account token is vaulted when the pay-in completes successfully and appears on the completion webhook and later query responses when stored."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The final outcome is delivered by a FlashFlow merchant webhook (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flashflow-transaction-executed"]}," with state ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorised"]},"). ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#webhooks"},"children":["See ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Webhooks"]}," below"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Always use the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["systemTransactionId"]}," for later PXP API calls against the same transaction. Provider payment identifiers are for reconciliation and support only."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"state\": \"PendingOnProvider\",\n  \"systemTransactionId\": \"1ed768bb-e88a-4636-91ae-67927ccbb02b\",\n  \"merchantTransactionId\": \"FLASHFLOW-TXN-001\",\n  \"merchantTransactionDate\": \"2026-09-21T10:00:00Z\",\n  \"providerTransactionId\": \"flashflow-ref-001\",\n  \"fundingData\": {\n    \"payByBank\": {\n      \"apmProvider\": \"Flashflow\",\n      \"iframeSrc\": \"https://pay.example/flashflow/qr/...\",\n      \"approvedAmount\": 99.50\n    }\n  },\n  \"amounts\": {\n    \"transaction\": 100.00,\n    \"currencyCode\": \"THB\"\n  }\n}\n","lang":"json"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Payout","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If your request is successful, you'll receive a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["200"]}," response. For a successful FlashFlow payout initiation, expect a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Pending"]}," state with no ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["iframeSrc"]},", plus ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank.gatewayTokenId"]},". The response includes ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amounts"]},", echoed from your request."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The final outcome is delivered by a FlashFlow merchant webhook (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flashflow-transaction-executed"]}," with state ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorised"]},"). ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#webhooks"},"children":["See ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Webhooks"]}," below"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Always use the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["systemTransactionId"]}," for later PXP API calls against the same transaction. Provider payment identifiers are for reconciliation and support only."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"state\": \"Pending\",\n  \"systemTransactionId\": \"2fd879cc-f99b-4747-92bf-78038ddcc03c\",\n  \"merchantTransactionId\": \"FLASHFLOW-PAYOUT-001\",\n  \"merchantTransactionDate\": \"2026-09-21T10:00:00Z\",\n  \"providerTransactionId\": \"flashflow-ref-002\",\n  \"fundingData\": {\n    \"payByBank\": {\n      \"apmProvider\": \"Flashflow\",\n      \"gatewayTokenId\": \"b6e2f1a4-c3d8-4f7a-b1e9-d2c3f4a5b6c7\"\n    }\n  },\n  \"amounts\": {\n    \"transaction\": 100.00,\n    \"currencyCode\": \"THB\"\n  }\n}\n","lang":"json"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["FlashFlow doesn't support capture, void, or refund. Treat merchant webhooks as the authoritative final outcome for pay-ins and payouts."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"query-a-flashflow-transaction","__idx":8},"children":["Query a FlashFlow transaction"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Treat merchant webhooks as the authoritative final outcome. For reconciliation or a later status check, ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/transaction/other/initiate-a-transaction"},"children":["get the transaction details"]},". For FlashFlow, pass ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["systemTransactionId"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingType"]}," set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PayByBank"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["apmProvider"]}," set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Flashflow"]},". FlashFlow queries return the last persisted state and don't call FlashFlow live."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"webhooks","__idx":9},"children":["Webhooks"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Treat FlashFlow merchant webhooks as the authoritative final outcome for purchases and payouts. Don't treat the transaction initiation response alone as settlement, and don't treat the shopper finishing the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["iframeSrc"]}," surface as confirmation on its own. You don't receive raw FlashFlow callback bodies."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionMethod.intent"]}," to tell purchases and payouts apart when they share the same event code. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["shopperReference"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gatewayTokenId"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionUpdateDatetime"]}," are omitted when not stored on the transaction. Bank account numbers and holder names are never included. On FlashFlow webhooks, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionMethod.fundingType"]}," is delivered as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PayByBanks"]}," (plural)."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following event codes apply to FlashFlow:"]},{"$$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":{"width":"35%","data-label":"Event code"},"children":["Event code "]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"State"},"children":["State"]},{"$$mdtype":"Tag","name":"th","attributes":{"width":"50%","data-label":"Description"},"children":["Description "]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flashflow-transaction-executed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorised"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A FlashFlow purchase or payout completed successfully."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flashflow-transaction-expired"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Expired"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A FlashFlow pay-in expired."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flashflow-transaction-refused"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Refused"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A FlashFlow payout was refused."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"examples","__idx":10},"children":["Examples"]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Authorised","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A successful FlashFlow purchase (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Purchase"]},") or payout (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Payout"]},") uses ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flashflow-transaction-executed"]}," with state ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorised"]},". A successful pay-in may include ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gatewayTokenId"]}," when a payment account token has been vaulted."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Purchase:"]},{"$$mdtype":"Tag","name":"JsonExample","attributes":{"json":{"eventDate":"2026-09-21T10:30:00.0000000Z","eventCategory":"transaction","eventOwner":{"merchantGroup":"merchant-group-1","merchant":"MERCHANT-1","site":"SITE-1"},"eventData":{"eventCode":"flashflow-transaction-executed","state":"Authorised","stateData":{"code":"APM001","message":"Payment executed"},"amounts":{"transaction":99.5,"currencyCode":"THB"},"merchant":"MERCHANT-1","site":"SITE-1","shopperReference":"Shopper_TH_01","gatewayTokenId":"b6e2f1a4-c3d8-4f7a-b1e9-d2c3f4a5b6c7","transactionUpdateDatetime":"2026-09-21T10:30:00Z","transactionMethod":{"intent":"Purchase","entryType":"Ecom","fundingType":"PayByBanks"},"fundingData":{"payByBank":{"apmProvider":"Flashflow"}},"providerResponse":{"provider":"Flashflow","providerTransactionId":"flashflow-ref-001","providerTransactionStatus":"completed","providerResponseCode":"completed","providerResponseMessage":"Payment executed"},"merchantTransactionId":"FLASHFLOW-TXN-001","systemTransactionId":"1ed768bb-e88a-4636-91ae-67927ccbb02b"}},"errors":[]},"children":[]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Payout:"]},{"$$mdtype":"Tag","name":"JsonExample","attributes":{"json":{"eventDate":"2026-09-21T11:00:00.0000000Z","eventCategory":"transaction","eventOwner":{"merchantGroup":"merchant-group-1","merchant":"MERCHANT-1","site":"SITE-1"},"eventData":{"eventCode":"flashflow-transaction-executed","state":"Authorised","stateData":{"code":"APM001","message":"Payment executed"},"amounts":{"transaction":100,"currencyCode":"THB"},"merchant":"MERCHANT-1","site":"SITE-1","gatewayTokenId":"b6e2f1a4-c3d8-4f7a-b1e9-d2c3f4a5b6c7","transactionUpdateDatetime":"2026-09-21T11:00:00Z","transactionMethod":{"intent":"Payout","entryType":"Ecom","fundingType":"PayByBanks"},"fundingData":{"payByBank":{"apmProvider":"Flashflow"}},"providerResponse":{"provider":"Flashflow","providerTransactionId":"flashflow-ref-002","providerTransactionStatus":"completed","providerResponseCode":"completed","providerResponseMessage":"Payment executed"},"merchantTransactionId":"FLASHFLOW-PAYOUT-001","systemTransactionId":"2fd879cc-f99b-4747-92bf-78038ddcc03c"}},"errors":[]},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Expired","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["An expired FlashFlow pay-in uses ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flashflow-transaction-expired"]}," with state ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Expired"]},". This event applies to pay-ins only."]},{"$$mdtype":"Tag","name":"JsonExample","attributes":{"json":{"eventDate":"2026-09-21T10:40:00.0000000Z","eventCategory":"transaction","eventOwner":{"merchantGroup":"merchant-group-1","merchant":"MERCHANT-1","site":"SITE-1"},"eventData":{"eventCode":"flashflow-transaction-expired","state":"Expired","stateData":{"code":"APM011","message":"Payment expired"},"amounts":{"transaction":100,"currencyCode":"THB"},"merchant":"MERCHANT-1","site":"SITE-1","shopperReference":"Shopper_TH_01","transactionUpdateDatetime":"2026-09-21T10:40:00Z","transactionMethod":{"intent":"Purchase","entryType":"Ecom","fundingType":"PayByBanks"},"fundingData":{"payByBank":{"apmProvider":"Flashflow"}},"providerResponse":{"provider":"Flashflow","providerTransactionId":"flashflow-ref-001","providerTransactionStatus":"expired","providerResponseCode":"expired","providerResponseMessage":"Payment expired"},"merchantTransactionId":"FLASHFLOW-TXN-001","systemTransactionId":"1ed768bb-e88a-4636-91ae-67927ccbb02b"}},"errors":[]},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Refused","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A refused FlashFlow payout uses ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flashflow-transaction-refused"]}," with state ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Refused"]},"."]},{"$$mdtype":"Tag","name":"JsonExample","attributes":{"json":{"eventDate":"2026-09-21T11:05:00.0000000Z","eventCategory":"transaction","eventOwner":{"merchantGroup":"merchant-group-1","merchant":"MERCHANT-1","site":"SITE-1"},"eventData":{"eventCode":"flashflow-transaction-refused","state":"Refused","stateData":{"code":"APM004","message":"Payment refused"},"amounts":{"transaction":100,"currencyCode":"THB"},"merchant":"MERCHANT-1","site":"SITE-1","gatewayTokenId":"b6e2f1a4-c3d8-4f7a-b1e9-d2c3f4a5b6c7","transactionUpdateDatetime":"2026-09-21T11:05:00Z","transactionMethod":{"intent":"Payout","entryType":"Ecom","fundingType":"PayByBanks"},"fundingData":{"payByBank":{"apmProvider":"Flashflow"}},"providerResponse":{"provider":"Flashflow","providerTransactionId":"flashflow-ref-002","providerTransactionStatus":"rejected","providerResponseCode":"rejected","providerResponseMessage":"Payment refused"},"merchantTransactionId":"FLASHFLOW-PAYOUT-001","systemTransactionId":"2fd879cc-f99b-4747-92bf-78038ddcc03c"}},"errors":[]},"children":[]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To learn how to set up and process webhooks, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/get-started/manage-webhooks"},"children":["Manage webhooks"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"testing","__idx":11},"children":["Testing"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"how-it-works","__idx":12},"children":["How it works"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In your sandbox environment, you can use test bank codes instead"," ","of real ones to trigger a specific, predictable status on demand — without connecting to a real bank, moving any real money, or sending anything to FlashFlow's real systems. This allows you to test how your integration handles the statuses you can see in your webhook notifications and status responses:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For pay-ins, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorised"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Expired"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For payouts, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorised"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Error"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Refused"]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These test bank codes aren't available in production. If you submit one in that environment, it's treated as an unrecognised bank code and rejected the same way any other invalid bank code would be."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use a test bank code exactly as you would use a real one: pass it as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bankName"]}," in"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingData.payByBank"]}," when you create a payment or payout. No other part of your request"," ","changes."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can also see all of the available test bank codes by calling ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/transaction/other/get-flashflow-bank-list"},"children":["Get FlashFlow supported banks API"]}," in a sandbox environment. They're automatically included in the list, so you can find them the same way you find a real bank. Some entries apply only to pay-ins, as described below."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"available-test-bank-codes","__idx":13},"children":["Available test bank codes"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following table describes all of the test bank codes you can use and the corresponding outcome."]},{"$$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":{"width":"20%","data-label":"Bank code"},"children":["Bank code "]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SIM-AUTHORISED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Pay-in or payout.",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["For pay-ins:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Returns the simulator page."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["approvedAmount"]}," matches the requested amount."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Stays ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PendingOnProvider"]}," until you choose ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorised"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Expired"]}," on the test page."]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["For payouts:"]}," Returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorised"]}," ~10 seconds after creation (provider status ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["completed"]},")."]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SIM-FLOATING"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Pay-in only. Returns the simulator page with a randomly generated ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["approvedAmount"]}," that differs from the requested amount. Stays ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PendingOnProvider"]}," until you choose ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorised"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Expired"]}," on the test page."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SIM-KYC"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Pay-in only. Returns the simulator page with no ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["approvedAmount"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]}," or absent). Stays ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PendingOnProvider"]}," until you choose ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorised"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Expired"]}," on the test page."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SIM-ERROR"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Payout only. Returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Error"]}," ~10 seconds after creation (provider status ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["failed"]},")."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SIM-REFUSED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Payout only. Returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Refused"]}," ~10 seconds after creation (provider status ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rejected"]},")."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"what-happens-after","__idx":14},"children":["What happens after"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"payment-pay-in-creation","__idx":15},"children":["Payment (pay-in) creation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For pay-ins, use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SIM-AUTHORISED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SIM-FLOATING"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SIM-KYC"]},". Your response includes a normal ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["iframeSrc"]}," redirect link, exactly like a real FlashFlow payment. Instead of FlashFlow's real hosted page, it opens a test page where you choose the outcome yourself."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The page shows two buttons: ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Authorised"]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Expired"]},". Click whichever one you want to test. The payment stays ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PendingOnProvider"]}," until you click a button. There's no time limit and no auto-resolution."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once you've clicked a button, your payment's status updates immediately to that same status, and your webhook notification fires with it. You can't change the status after that; create a new test payment to try a different one."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"payout-creation","__idx":16},"children":["Payout creation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A payout has no page to open (a real FlashFlow payout doesn't return one either). Instead, about 10 seconds after you create it, your payout's status automatically updates to whichever status the bank code you chose maps to, and your webhook notification fires with that status."]}]},"headings":[{"value":"FlashFlow transaction","id":"flashflow-transaction","depth":1},{"value":"Overview","id":"overview","depth":2},{"value":"Get FlashFlow supported banks","id":"get-flashflow-supported-banks","depth":2},{"value":"Request example","id":"request-example","depth":3},{"value":"Response example","id":"response-example","depth":3},{"value":"Initiate a FlashFlow transaction","id":"initiate-a-flashflow-transaction","depth":2},{"value":"Request examples","id":"request-examples","depth":3},{"value":"Response examples","id":"response-examples","depth":3},{"value":"Query a FlashFlow transaction","id":"query-a-flashflow-transaction","depth":2},{"value":"Webhooks","id":"webhooks","depth":2},{"value":"Examples","id":"examples","depth":3},{"value":"Testing","id":"testing","depth":2},{"value":"How it works","id":"how-it-works","depth":3},{"value":"Available test bank codes","id":"available-test-bank-codes","depth":4},{"value":"What happens after","id":"what-happens-after","depth":3},{"value":"Payment (pay-in) creation","id":"payment-pay-in-creation","depth":4},{"value":"Payout creation","id":"payout-creation","depth":4}],"frontmatter":{"seo":{"title":"FlashFlow transaction"}},"lastModified":"2026-10-12T11:13:54.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/transactions/e-commerce/flashflow-transaction","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}