Connect Retool to Adyen using a REST API Resource with API key authentication. Configure the base URL and API key in the Resources tab, then build queries to view payment details, manage chargebacks, and access settlement reports. Setup takes about 20 minutes. Adyen's enterprise payment platform requires the Advanced subscription for full API access.
| Fact | Value |
|---|---|
| Tool | Adyen |
| Category | Payment |
| Method | REST API Resource |
| Difficulty | Advanced |
| Time required | 20 minutes |
| Last updated | April 2026 |
Why Connect Retool to Adyen?
Adyen is an enterprise-grade payment platform used by businesses like Uber, Microsoft, and McDonald's for its unified approach to online and in-store payments. While Adyen's Customer Area (the native web dashboard) provides detailed transaction views, finance and payment operations teams frequently need custom tools that combine Adyen payment data with internal order management, CRM, and financial systems in a single interface. Building these in Retool eliminates the context-switching between Adyen's dashboard and your internal tools.
Adyen exposes five main API families relevant for Retool integrations: the Checkout API for payment processing, the Management API for configuring merchant accounts and payment methods, the Reporting API for settlement and transaction data, the Disputes API for chargeback management, and the Issuing API for card program administration. For most Retool use cases, the Reporting and Disputes APIs provide the most operational value — they expose data that is otherwise accessible only through manual CSV exports from Adyen's Customer Area.
Adyen's settlement reports are particularly valuable. Adyen processes payments and settles funds on a scheduled basis, and reconciling these settlements against your internal order records is a critical finance process. A Retool integration that automatically pulls settlement report data and joins it with your internal database records turns a manual, spreadsheet-heavy reconciliation task into an automated dashboard that highlights discrepancies in real time. Combined with the Disputes API for chargeback tracking, this gives payment operations teams a comprehensive view of their financial position that would otherwise require hours of manual data aggregation.
Integration method
Retool connects to Adyen through multiple REST API Resources — one per Adyen API (Checkout, Management, Reporting, Disputes) — each configured in the Resources tab with Adyen's API key authentication. All requests are proxied server-side through Retool's backend, keeping the API key off the browser and eliminating CORS issues. JavaScript transformers reshape Adyen's JSON responses for Retool Tables and Charts. HMAC webhook verification for incoming Adyen notifications is handled via Retool Workflows with a webhook trigger.
Prerequisites
- A Retool account (Cloud or self-hosted) with permission to add Resources
- An Adyen merchant account with API credentials — Adyen requires the Advanced (formerly Enterprise) level for full API access to Reporting and Disputes APIs
- An Adyen API key with the appropriate roles for your use case (created in Adyen Customer Area → Developers → API credentials → Create new credential)
- Your Adyen merchant account code and company-level account identifier (found in the Customer Area)
- Basic familiarity with Adyen's API structure — Adyen uses separate API endpoints per service (Checkout, Management, Reporting, Disputes), each requiring separate resource configuration in Retool
Step-by-step guide
Create Adyen API credentials and configure REST API Resources
Adyen uses a single API key for authentication across most of its APIs, but different services use different base URLs. You will need to create separate Retool REST API Resources for each Adyen API family you use. First, obtain your Adyen API key from the Customer Area: navigate to Developers → API credentials → Create new API credential. Set the credential type to 'Web service user'. Under Roles, enable the specific roles your Retool app needs — for example: Merchant Payments role for Checkout API, Merchant Report Download role for the Reporting API, and Merchant Chargeback Management role for the Disputes API. Copy the generated API key. Store the API key as a secret configuration variable in Retool: Settings → Configuration Variables → Add Variable → name it ADYEN_API_KEY, mark as secret. Now create REST API Resources in Retool. Navigate to Resources tab → Add Resource → REST API for each Adyen API: 1. Adyen Checkout API: - Base URL: https://checkout-live.adyenpayments.com/checkout/v71 (production) or https://checkout-test.adyen.com/v71 (test) - Headers: X-API-Key: {{ retoolContext.configVars.ADYEN_API_KEY }}, Content-Type: application/json 2. Adyen Management API: - Base URL: https://management-live.adyenpayments.com/v1 (production) or https://management-test.adyen.com/v1 (test) - Headers: X-API-Key: {{ retoolContext.configVars.ADYEN_API_KEY }}, Content-Type: application/json 3. Adyen Reporting API: - Base URL: https://ca-live.adyen.com/reports/download (for report file access) — note that Adyen's reporting data is accessed via the /transactions endpoint under the Merchant API at https://management-live.adyenpayments.com/v1/merchants/{merchantId}/transactions Click Save for each resource. Create one resource for each Adyen API family you plan to use.
Pro tip: Adyen has separate test and production environments with different base URLs. Create pairs of Retool resources (e.g., 'Adyen Checkout — Test' and 'Adyen Checkout — Production') and use Retool resource environments to switch between them. Never run test queries against production credentials.
Expected result: Multiple Adyen REST API Resources appear in your Resources list — one per Adyen API family. The API key is stored as a secret configuration variable and referenced in the X-API-Key header of each resource.
Query payment transactions and build the operations dashboard
Create your primary data query for payment transaction data. In your Retool app, click + New in the query panel. Select your Adyen Management API resource. Set the method to POST and the path to /merchants/{{ retoolContext.configVars.ADYEN_MERCHANT_ID }}/transactions for the Transactions API (Adyen uses POST for search/filter operations on this endpoint). Set the request body to a JSON object with filters for the transaction search. Adyen's transactions endpoint accepts dateTimeFrom, dateTimeTo, paymentMethod, balanceAccountId, and statuses as filter fields in the request body. Add reference components to your app: - A DateRange picker component — use its values in dateTimeFrom and dateTimeTo (formatted as ISO 8601 strings) - A Select component for payment method filter (visa, mc, ideal, paypal, etc.) - A Text input for PSP reference search Set the query body: { 'dateTimeFrom': '{{ dateRange.start ? new Date(dateRange.start).toISOString() : '' }}', 'dateTimeTo': '{{ dateRange.end ? new Date(dateRange.end).toISOString() : '' }}', 'paymentMethod': '{{ methodSelect.value || null }}', 'cursor': '{{ cursor_state.value || null }}' } Adyen uses cursor-based pagination. The response includes a 'nextCursor' field — store it in a state variable and use it in subsequent requests to load additional pages. Add a JavaScript transformer to reshape the transaction response. Drag a Table component and bind it to the transformed data. Configure columns for PSP reference, merchant reference, amount, currency, status, payment method, and created date.
1// JavaScript transformer for Adyen transactions response2const transactions = data.data || [];34return transactions.map(txn => ({5 psp_reference: txn.id || '',6 merchant_reference: txn.merchantReference || '',7 amount: txn.amount?.value ? (txn.amount.value / 100).toFixed(2) : '0.00',8 currency: txn.amount?.currency || '',9 status: txn.status,10 payment_method: txn.paymentMethod || '',11 created_at: txn.createdAt ? new Date(txn.createdAt).toLocaleString() : '',12 balance_account_id: txn.balanceAccountId || '',13 category: txn.category || ''14}));Pro tip: Adyen amounts are always stored as integers in the smallest currency unit (cents for USD/EUR). Divide by 100 to convert to decimal for display. The transformer above handles this conversion, but verify against the currency's actual minor unit — some currencies (JPY, KWD) have 0 or 3 decimal places respectively.
Expected result: The Table displays Adyen transactions for the selected date range and filters, with formatted amounts, currency codes, statuses, and payment methods. Cursor-based pagination allows loading additional pages.
Build a chargeback management panel using the Disputes API
Create a dedicated Disputes tab in your Retool app for managing Adyen chargebacks. Click + New in the query panel and select your Adyen Management API resource. Set the method to GET and the path to /disputes. Adyen's Disputes endpoint supports filters: merchantAccountCode, creationDateGte, creationDateLte, and status. Add URL parameters that reference filter components in your app: - merchantAccountCode: {{ retoolContext.configVars.ADYEN_MERCHANT_ID }} - creationDateGte: {{ disputeDateRange.start ? new Date(disputeDateRange.start).toISOString().split('T')[0] : '' }} - status: {{ disputeStatusSelect.value || '' }} (values: open, won, lost, chargedBack, expired) Set the query to Run on page load and when inputs change. Add a JavaScript transformer to extract and format the key fields: PSP reference, reason code, amount, deadline date (the date by which evidence must be submitted), and days remaining until deadline. Drag a Table component onto the Disputes tab. Set its data source to {{ disputesQuery.data }}. Add conditional row colors: red for disputes with deadlines within 3 days (high urgency), yellow for 4-7 days (moderate urgency). Add a column for days remaining calculated from the deadline field. Add two Button components: 'Accept Chargeback' and 'Submit Defense'. The Accept button triggers a POST to /disputes/{{ disputesTable.selectedRow.psp_reference }}/accept. The Submit Defense button opens a Modal component with a TextArea for evidence details and a File Upload component, then triggers a POST to /disputes/{{ disputesTable.selectedRow.psp_reference }}/defend with the evidence payload. Both actions include confirmation modals.
1// JavaScript transformer for Adyen disputes2const disputes = data.disputes || data || [];3const now = new Date();45return disputes.map(dispute => {6 const deadline = dispute.reasonCode?.defenseDeadline 7 ? new Date(dispute.reasonCode.defenseDeadline) 8 : null;9 const daysRemaining = deadline 10 ? Math.ceil((deadline - now) / (1000 * 60 * 60 * 24))11 : null;1213 return {14 psp_reference: dispute.pspReference,15 merchant_reference: dispute.merchantReference || '',16 reason_code: dispute.reasonCode?.code || '',17 reason_description: dispute.reasonCode?.description || '',18 amount: dispute.disputeAmount?.value 19 ? (dispute.disputeAmount.value / 100).toFixed(2) 20 : '0.00',21 currency: dispute.disputeAmount?.currency || '',22 status: dispute.status,23 deadline: deadline ? deadline.toLocaleDateString() : 'No deadline',24 days_remaining: daysRemaining,25 urgent: daysRemaining !== null && daysRemaining <= 326 };27});Pro tip: Adyen chargeback reason codes (e.g., 'fraud', 'item not received', 'authorization') determine the evidence requirements and success rates for dispute defenses. Add a column in the Table that links to Adyen's reason code documentation or shows a brief description, so the operations team knows what evidence to gather for each dispute type.
Expected result: The Disputes tab shows all open chargebacks sorted by deadline urgency, with color-coded rows for time-sensitive disputes. Clicking Accept or Submit Defense buttons takes the appropriate action against the Adyen Disputes API.
Configure a Retool Workflow for HMAC webhook verification
Adyen sends webhook notifications for payment events (authorization, refund, chargeback, capture). To receive and verify these in Retool, create a Workflow with a Webhook trigger that validates Adyen's HMAC signature before processing the event data. Navigate to the Workflows section in Retool (lightning bolt icon in the sidebar). Click New Workflow. Click Add Trigger → Webhook. Retool provides a unique HTTPS URL — copy this URL and configure it in Adyen's Customer Area under Developers → Webhooks → Create new webhook → Standard notification → URL: [paste the Retool Workflow URL]. In Adyen's webhook configuration, also set an HMAC Key. Copy the HMAC key provided by Adyen. Store it in Retool Settings → Configuration Variables as ADYEN_WEBHOOK_HMAC_KEY (secret). In your Retool Workflow, add the first block: a JavaScript Code block. This block validates the HMAC signature from the incoming webhook request. The validation uses HMAC-SHA256 on Adyen's specific signing string format (concatenated fields from the notification) and compares it to the signature in the additionalData.hmacSignature field. Add a Branch block after validation: if the HMAC is valid, proceed to process the event. If invalid, return a 400 response. Add Resource Query blocks to handle the event: update your internal PostgreSQL database with the payment status, trigger a Slack notification for chargebacks, or update a CRM record. Click Publish Release to activate the Workflow. Adyen sends a test notification to verify the endpoint — the Workflow should return a 200 response with body [accepted] to confirm receipt.
1// JavaScript Code block: validate Adyen HMAC webhook signature2const hmacKey = retoolContext.configVars.ADYEN_WEBHOOK_HMAC_KEY;3const notification = startTrigger.data;45// Adyen HMAC signing string fields (in this exact order)6const notificationItem = notification.notificationItems?.[0]?.NotificationRequestItem;7if (!notificationItem) throw new Error('Invalid notification structure');89const signingString = [10 notificationItem.pspReference,11 notificationItem.originalReference || '',12 notificationItem.merchantAccountCode,13 notificationItem.merchantReference,14 notificationItem.amount?.value?.toString() || '',15 notificationItem.amount?.currency || '',16 notificationItem.eventCode,17 notificationItem.success18].join(':');1920// Compute expected HMAC using CryptoJS21const keyBytes = CryptoJS.enc.Hex.parse(hmacKey);22const expectedHmac = CryptoJS.HmacSHA256(signingString, keyBytes).toString(CryptoJS.enc.Hex);2324const receivedHmac = notificationItem.additionalData?.hmacSignature || '';2526if (expectedHmac !== receivedHmac) {27 throw new Error('HMAC validation failed — webhook rejected');28}2930return {31 valid: true,32 eventCode: notificationItem.eventCode,33 pspReference: notificationItem.pspReference,34 merchantReference: notificationItem.merchantReference,35 success: notificationItem.success === 'true'36};Pro tip: Adyen expects your webhook endpoint to respond with HTTP 200 and the body [accepted] within 10 seconds of receiving a notification. Design your Retool Workflow to return a Response block with that body immediately after HMAC validation, then process the event data asynchronously in subsequent blocks to avoid timeout issues.
Expected result: The Retool Workflow receives Adyen webhook notifications, validates the HMAC signature using CryptoJS, processes valid events (updating databases, triggering notifications), and rejects invalid requests. The Workflow is listed as active in the Retool Workflows section.
Build settlement report reconciliation
Add a settlement reconciliation tab to give finance teams visibility into which Adyen payments have settled and how amounts compare to your internal order records. Adyen's settlement reports are available through their Report Download API or through the transaction listing endpoint filtered by category. Create a query using your Adyen Management API resource: GET /merchants/{{ retoolContext.configVars.ADYEN_MERCHANT_ID }}/transactions with body filter { 'statuses': ['settled'], 'dateTimeFrom': '...', 'dateTimeTo': '...' }. Create a parallel query against your internal PostgreSQL (or other database) resource: SELECT order_id, payment_reference, amount, currency, status FROM orders WHERE created_at BETWEEN $1 AND $2 — with date range parameters matching the Adyen query. Create a JavaScript query that joins the two datasets on the merchant reference field (the reference your system passes to Adyen at payment time). Categorize each record as: 'Matched' (found in both with matching amounts), 'Amount mismatch' (found in both but amounts differ by more than 0.01), 'Adyen only' (in Adyen settlement but no internal order), or 'Internal only' (internal order with no Adyen settlement). Drag a Tab component onto the reconciliation section with three tabs: All, Discrepancies, and Matched. Bind each Table to the filtered subset of the joined dataset. Add a 'Flag for Review' button that adds a flag to your internal orders table for the selected row. For complex multi-system reconciliation involving Adyen settlements, internal orders, and ERP systems, RapidDev's team can help design and implement the complete Retool solution with appropriate data validation and export workflows.
1// JavaScript query: reconcile Adyen settlements with internal orders2const adyenSettlements = adyenSettlementsQuery.data || [];3const internalOrders = internalOrdersQuery.data || [];45// Build lookup map from internal orders keyed by payment reference6const orderMap = {};7internalOrders.forEach(order => {8 orderMap[order.payment_reference] = order;9});1011// Build lookup map from Adyen settlements keyed by merchant reference12const adyenMap = {};13adyenSettlements.forEach(txn => {14 adyenMap[txn.merchant_reference] = txn;15});1617const results = [];1819// Check all Adyen records20adyenSettlements.forEach(txn => {21 const internalOrder = orderMap[txn.merchant_reference];22 const adyenAmount = parseFloat(txn.amount);2324 if (!internalOrder) {25 results.push({ ...txn, match_status: 'Adyen only', internal_amount: null, discrepancy: null });26 } else {27 const internalAmount = parseFloat(internalOrder.amount);28 const discrepancy = Math.abs(adyenAmount - internalAmount);29 results.push({30 ...txn,31 match_status: discrepancy > 0.01 ? 'Amount mismatch' : 'Matched',32 internal_amount: internalAmount.toFixed(2),33 discrepancy: discrepancy > 0.01 ? discrepancy.toFixed(2) : null34 });35 }36});3738// Add internal-only records39internalOrders.forEach(order => {40 if (!adyenMap[order.payment_reference]) {41 results.push({42 merchant_reference: order.payment_reference,43 amount: order.amount,44 currency: order.currency,45 match_status: 'Internal only',46 psp_reference: null,47 internal_amount: order.amount48 });49 }50});5152return results;Pro tip: Store the last successful reconciliation date in a Retool Database table or configuration variable, and default the date range pickers to the unreconciled period (from last reconciliation date to today). This prevents accidentally re-reconciling already-processed periods and helps finance teams quickly find the new data to review.
Expected result: The reconciliation tab shows all Adyen settlements categorized by match status. Discrepancy rows are highlighted and show the amount difference. Finance teams can filter to view only unmatched or mismatched records and flag them for review.
Common use cases
Build an enterprise payment operations center
Create a Retool panel that displays recent Adyen payments with filters for merchant account, payment method, currency, amount range, and result code. Operations teams can search by PSP reference (Adyen's payment identifier), view payment details including risk scores and 3D Secure outcomes, and initiate refunds with an approval workflow. A summary bar shows total successful transactions, total refunded amount, and current chargeback count for the selected period.
Build a payment operations dashboard that queries Adyen's Reporting API for transactions over a selected date range. Show PSP reference, merchant reference, payment method, amount, currency, status, and result code in a Table. Add filters for merchant account, payment method, and status. Include a Refund button for selected rows that calls the Checkout API with the refund endpoint.
Copy this prompt to try it in Retool
Automate chargeback and dispute management
Build a Retool chargeback management panel that pulls open disputes from Adyen's Disputes API and surfaces the required response information for each case. Payment operations staff can view dispute reason codes, the evidence deadline, the disputed amount, and the original transaction details. They can upload evidence documentation and submit dispute defenses directly from Retool, with status tracking showing which disputes are open, defended, and resolved.
Create a chargeback management panel that fetches open disputes from Adyen's Disputes API. Display dispute PSP reference, reason code, disputed amount, currency, deadline date, and current status in a Table. Sort by deadline date ascending so the most urgent disputes appear first. Add an Accept Chargeback button and a Defend Dispute button that submits evidence to the Disputes API.
Copy this prompt to try it in Retool
Build a settlement reconciliation dashboard
Create a Retool reconciliation tool that fetches Adyen settlement reports and compares each settlement record against your internal order database. The tool identifies matched transactions, unmatched settlement entries (payments in Adyen with no corresponding internal order), and unmatched internal orders (orders in your system with no Adyen settlement). Finance teams can review discrepancies, add notes, and export the reconciliation data for accounting.
Build a settlement reconciliation panel that fetches the latest Adyen settlement report from the Reporting API and joins it with an internal PostgreSQL orders table on the merchant reference field. Show three sections: matched records, Adyen-only records (no internal order), and internal-only records (no Adyen settlement). Flag rows where amounts differ by more than $0.01.
Copy this prompt to try it in Retool
Troubleshooting
API requests return 403 Forbidden even though the API key is correctly configured
Cause: The Adyen API key credential does not have the required roles enabled for the API you are calling. Adyen uses a granular role-based permission system — the same API key will return 403 on endpoints for which it lacks the specific role, even if authentication succeeds.
Solution: In Adyen Customer Area → Developers → API credentials, click on your API credential and review the Roles section. Enable the specific roles required: 'Merchant Payments' for Checkout API, 'Merchant Report Download' for Reporting, and 'Merchant Chargeback Management' for Disputes. After adding roles, there may be a short propagation delay before the permissions take effect.
Transaction amounts appear 100x too large (e.g., $299 shows as $29900)
Cause: Adyen stores all amounts as integers in the smallest currency unit (cents for USD/EUR). If the JavaScript transformer does not divide by 100, amounts will appear 100 times larger than the actual value.
Solution: In the JavaScript transformer, divide all amount values by 100 before displaying: (txn.amount.value / 100).toFixed(2). Note that this divisor is currency-specific — JPY has 0 decimal places (divide by 1, not 100), while KWD has 3 decimal places (divide by 1000). Check Adyen's currency list documentation for the correct minor unit for each currency your business processes.
1// Correct Adyen amount conversion for 2-decimal currencies (USD, EUR, GBP)2(txn.amount.value / 100).toFixed(2)Webhook HMAC validation fails even though the HMAC key matches what is in Adyen's Customer Area
Cause: Adyen's HMAC is computed using a specific field ordering and string concatenation format. If any field is missing, in the wrong order, or incorrectly typed (null vs. empty string), the computed HMAC will not match. Common issues include treating null fields as 'null' (string) rather than '' (empty string), or using the wrong field for originalReference.
Solution: Verify that every field in the HMAC signing string is present and in the exact order specified in Adyen's documentation: pspReference, originalReference (empty string if null), merchantAccountCode, merchantReference, amount.value (as string), amount.currency, eventCode, success (as string 'true' or 'false'). Log the signing string in your JavaScript code block to verify it matches the format Adyen describes. Use Adyen's HMAC validator tool in the Customer Area to cross-check your implementation.
1// Correct HMAC signing string construction for Adyen webhooks2const signingString = [3 item.pspReference || '',4 item.originalReference || '', // empty string, NOT null5 item.merchantAccountCode || '',6 item.merchantReference || '',7 item.amount?.value?.toString() || '',8 item.amount?.currency || '',9 item.eventCode || '',10 item.success || ''11].join(':');Settlement report data is incomplete or missing recent transactions
Cause: Adyen's settlement cycle has a processing delay — typically T+2 business days for most payment methods. Transactions processed today will not appear in settlement reports until 2 business days later. Additionally, some payment methods (bank transfers, SEPA Direct Debit) have longer settlement cycles.
Solution: Adjust the date range in your reconciliation query to look back at least 3 business days from today to ensure recently processed transactions have had time to settle. Display the settlement cut-off date in the Retool dashboard so finance teams understand why very recent transactions may not appear. Add a note to the query description: 'Settlement data reflects T+2 processing delay for card transactions and T+5 for bank transfers.'
Best practices
- Store your Adyen API key as a secret configuration variable in Retool Settings — Adyen API keys have broad permissions and exposure would allow unauthorized access to payment and settlement data.
- Create separate Adyen API credentials with minimal required roles for each Retool use case — a read-only reporting dashboard does not need the Merchant Payments role that enables refunds and payment modifications.
- Use Adyen's test environment for all development and testing — configure separate Retool resources pointing to test endpoints and use test API credentials to avoid any risk of modifying production payment data.
- Always validate HMAC signatures on Adyen webhook notifications before processing them — forged webhooks without HMAC validation could allow attackers to falsely mark fraudulent orders as authorized.
- Implement cursor-based pagination for Adyen's Transactions API — the API returns a nextCursor in responses when more results are available, and not implementing pagination means your dashboard only shows the first page of results.
- Convert Adyen amounts from minor units (cents) to display units (dollars) in JavaScript transformers, not in the Table column formatting — this ensures calculated fields (totals, averages) also use the correct values.
- Restrict chargeback accept and defend actions in Retool to senior payment operations roles using Retool permission groups — accidental acceptance of a chargeback or incorrect evidence submission can result in financial loss.
- Log all payment operations (refunds, chargeback actions) to an internal audit table with the initiating Retool user's email, timestamp, and PSP reference, providing a compliance record separate from Adyen's own logs.
Alternatives
Choose Stripe if you need a developer-first payment platform with a native Retool connector (no REST API Resource setup needed) and are processing primarily online payments without unified in-store requirements.
Choose Braintree if you need PayPal's payment ecosystem with a REST API that has simpler authentication (no HMAC webhook setup) and is better suited for mid-market payment volumes.
Choose 2Checkout if your business focuses on SaaS subscription billing with built-in international tax handling rather than enterprise-scale unified commerce.
Frequently asked questions
Does Adyen have a native Retool connector or does it require a REST API Resource?
Adyen does not have a native Retool connector with pre-built action dropdowns. You connect using REST API Resources configured with Adyen's API key header authentication. Since Adyen has multiple distinct API families (Checkout, Management, Reporting, Disputes, Issuing), you will typically create one REST API Resource per API family, each with the same API key but different base URLs.
What is the difference between Adyen's Checkout API, Management API, and Reporting API for Retool integrations?
The Checkout API handles payment initiation, authorization, and refunds — use this for building payment operations tools that process or reverse transactions. The Management API handles merchant account configuration, balance accounts, and transaction data retrieval — use this for operations dashboards and reconciliation. The Reporting API (accessed via the Management API's transactions endpoint or report download endpoints) provides settlement and financial report data — use this for finance reconciliation and accounting integrations.
How do I handle Adyen's cursor-based pagination in Retool queries?
Adyen's Transactions API returns a nextCursor field in the response when additional pages of data are available. Store this value in a Retool state variable and include it as a cursor parameter in the next request body. In Retool, add pagination buttons (Next Page / Previous Page) that update a cursor state variable and trigger the query to re-run. Maintain a stack of previous cursors in another state variable to enable going back to previous pages.
Can Retool receive Adyen webhook notifications for real-time payment events?
Yes. Create a Retool Workflow with a Webhook trigger to receive Adyen notifications. The Workflow provides a public HTTPS endpoint that you configure in Adyen's Customer Area under Developers → Webhooks. The Workflow should validate the HMAC signature on each incoming notification, then process valid events — updating your database, triggering Slack alerts, or running downstream workflows. Always return HTTP 200 with body '[accepted]' to confirm receipt to Adyen.
What Adyen account level is required to access the Reporting and Disputes APIs?
Adyen's API access depends on your commercial agreement with Adyen. The Disputes API (chargebacks) and full Reporting API are generally available to merchants on Adyen's Advanced (formerly Enterprise) plan. Basic transaction views may be available at lower tiers. Check with your Adyen account manager or review your contract to confirm which APIs your agreement covers before building Retool integrations that depend on those endpoints.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation