Worldline - Bambora Reconciliation

Modified on Mon, 6 Oct, 2025 at 11:03 AM

When reconciling transactions in Benji Pays, there are two distinct processes—one for ACH/EFT payments and another for Credit Card (CC) payments. Below is a detailed breakdown of each process.


TABLE OF CONTENTS

ACH/EFT Transactions Automated Reconciliation (Beta Release)  

Currently, this feature supports ACH/EFT transactions only and is available in beta. The current version only handles simple settlements. i.e., those without rejected or returned transactions. Compatible Accounts: Undeposited Funds, or a dedicated Settlement Account.


Step-by-Step Setup

1. Configure Your Payment Gateway

  • Navigate to: Settings → Payment Gateway Settings
  • Locate your payment gateway and click Edit.
  • Scroll to find the Settlement Deposit Bank Account (This is the bank accounts funds are actually deposited into)
  • Save

2. Create a Deposit from a Settlement

  • Go to the Transactions page.
  • Look for a new report labeled “Settlement Report *” (name will change in future versions).

    • ? This feature is available to beta users only. Please contact us if you would like to be part of this beta group. 

  • Click Create Deposit, this will need to be done per batch.

    • This action sends data to your connected accounting system (e.g., QuickBooks).

  • A confirmation will appear with a link to view the deposit. If you're logged in to QuickBooks, it will open the deposit details:

    • Deposit Account: Matches the configured bank account.

    • Date: Reflects the actual settlement date.

    • Amount: Total of all transactions included in the settlement.

    • Memo: Includes a breakdown of the transaction details

  • If multiple transactions are included, Benji Pays will automatically group and associate them within the deposit.


  • If a deposit has already been created, the system will not recreate it again, and an error pops up. 


If a transaction is created incorrectly, you can always delete it directly in QuickBooks and attempt the process again.


Troubleshooting Errors


If there are any issues with your deposits and you receive an error, the system will email our support team with the details. We will investigate, update the reconciliation process if needed, and notify you once resolved.


ACH/EFT Transactions Manual 

The following step-by-step process outlines how ACH/EFT payments are handled on the Benji Pays platform, whether initiated through auto-processing, the merchant portal, or the customer portal:


Step 1: Transaction Queued for Submission

  • When an ACH/EFT payment is initiated, a corresponding payment is automatically created in QuickBooks, using the deposit account specified during your payment gateway setup at onboarding. To avoid accidental reprocessing the invoice is marked as paid in QuickBooks at this time, just as if you received a paper cheque that has not been deposited to the bank yet.  In order to ease reconciliation, we recommend selecting Undeposited Funds as the deposit account.
  • The status in Benji Pays appears as Queued.

Step 2: Daily Batch Submission to Bambora

  • Queued transactions are batched and submitted to Bambora once daily, typically around 10 AM PST.
  • At this point, the transaction status in Benji Pays changes to Pending/Submitted.

Step 3: Settlement Process (3 to 4-Day Lag)

  • Bambora deposits the funds into your bank account approximately 3-4 business days after Batch Submission depending on your account and geography. (this delay is controlled by Bambora).  
  • On the settlement day, Benji Pays automatically polls Bambora to confirm transaction status, which is then updated to Complete/Approved (This is done few times throughout the day).  

Step 4: Viewing ACH/EFT Batches in Benji Pays

  • Settlement reports, which include total deposit amounts and associated transactions, are available in Benji Pays under: Transactions > ACH/EFT Settlements.
  • This report helps reconcile your bank deposits by matching them to transactions recorded in QuickBooks under payment account selected when setting up your payment gateway (from Step 1).


Credit Card Transactions

Unlike ACH/EFT transactions, credit card payments operate differently due to limited data received from Bambora. Below is how credit card reconciliation works:


Key Differences for Credit Card Payments

  • Benji Pays does not receive detailed deposit breakdowns from Bambora.
  • However, payment method details (e.g., Visa, Mastercard) are captured in the transaction records, which can assist during reconciliation.
  • Bambora determines the time lag between the charge date and the deposit date.
    • There is typically a consistent delay of three business days (next business day in the USA) before funds are deposited into your bank account. This processing time is fixed and does not vary by transaction. Please note that weekends and holidays are not included in this timeframe.

Since deposit breakdowns are not provided, a practical approach for reconciling credit card transactions is:

  1. Identify the Bambora deposit date in your bank account.
  2. Determine the corresponding transaction dates based on the three-day lag (next business day in the USA).
  3. Match the total deposit amount with credit card transactions from the matching period.

Example:

  • If you receive a credit card deposit on January 5th, look at transactions from January 2nd.
  • The total of all credit card payments from January 2nd should align with the deposit amount received on January 5th.


This video will provide some guidance for credit card reconciliation. Keep in mind that reconciliation processes may vary depending on a business's internal bookkeeping practices. If you're unsure about the best approach for your specific situation, it's recommended to consult with your bookkeeper or accountant for guidance.



Reconciliation using Worldline/Bambora Transaction Details 


For proper reconciliation of settlement deposits and fees you will need to access your transaction details directly through Worldline/Bambora based on your location:

  • For Canadian Businesses:

    • All transaction details, including settlements, should be available directly in Bambora.
  • For U.S. Businesses:

    • Credit card settlement data is accessible through Business Insider (Bambora’s U.S. reporting portal).
    • To gain access, you will need to register using the link provided in the "Account is Live" email you originally received from Bambora/Worldline. This detailed guide will assist you in enrolling with Business Track to access your reports.
    • To access your reports, please follow the steps outlined in the Bambora/Worldline article.


If you need further assistance, consider reaching out to Bambora/Worldline support for guidance on accessing your transaction data.


Email: support.na@worldline.com

Phone #: 1-833-226-2672


Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article

(function () { 'use strict'; /* ========================================================================== CATEGORY ICON MAP Keys are lowercased category names (what's rendered in data-cat-name). Values are inline SVG strings. Stroke color comes from CSS via currentColor, so the icon automatically picks up the Benji Pays navy defined on .bp-cat-icon { color: #0e4c8e; }. To change an icon: replace the SVG string for that category. To add a new category: add a new key/value pair below. Any category whose name doesn't match a key falls back to DEFAULT_ICON. SVGs here are Lucide icons (lucide.dev). To swap one, copy the SVG from Lucide and remove its stroke/color attributes (we set those via CSS). Keep the viewBox="0 0 24 24" so sizing stays consistent. ========================================================================== */ var CAT_ICONS = { 'benji pays support': '', 'self-serve onboarding': '', 'frequently asked questions': '', 'benji pays user guides': '', 'reports': '', 'features': '', 'payments': '', 'payment gateways': '', 'integrations (psa & quotes)': '', 'troubleshooting': '', 'v2_benji pays feature offerings': '', /* --- Home page top-row action cards --- Keys are the card labels as shown in Freshdesk admin (portal.home_cards). If a label is renamed in admin, update the matching key here. */ 'browse articles': '', 'view all tickets': '', 'submit a ticket': '' }; var DEFAULT_ICON = ''; function injectCatIcons() { var placeholders = document.querySelectorAll('.bp-cat-icon[data-cat-name]'); for (var i = 0; i < placeholders.length; i++) { var el = placeholders[i]; if (el.firstChild) continue; // already populated (defensive re-init guard) var key = (el.getAttribute('data-cat-name') || '').toLowerCase().trim(); el.innerHTML = CAT_ICONS[key] || DEFAULT_ICON; } } function toggle(node) { if (!node) return; var isOpen = node.classList.toggle('is-open'); var btn = node.querySelector(':scope > .bp-cat-header, :scope > .bp-folder-header'); if (btn) btn.setAttribute('aria-expanded', isOpen ? 'true' : 'false'); } function init() { var sidebar = document.querySelector('.bp-sidebar'); if (!sidebar) return; // Populate category icons before wiring up interaction handlers. injectCatIcons(); sidebar.addEventListener('click', function (e) { // If the user clicked the actual link text, let navigation happen. var link = e.target.closest('.bp-cat-link, .bp-folder-link'); if (link) return; // Lazy-render mode: non-current rows render as // wrapping the chevron + icon + name. We must NOT preventDefault on // those — the entire row IS the link, and any click should navigate // to the category/folder page. Without this guard, the toggle below // would block navigation and the chevron click would do nothing. var linkHeader = e.target.closest('.bp-cat-header--link, .bp-folder-header--link'); if (linkHeader) return; // Otherwise, if the click was inside a button-style header row, // toggle its parent (only used for the current branch). var header = e.target.closest('.bp-cat-header, .bp-folder-header'); if (!header) return; e.preventDefault(); var row = header.parentElement; // .bp-cat or .bp-folder toggle(row); }); // Keyboard: Enter/Space on a focused header toggles it. sidebar.addEventListener('keydown', function (e) { if (e.key !== 'Enter' && e.key !== ' ') return; // Don't intercept keyboard activation on link-variant headers — // the browser will trigger the navigation natively. var linkHeader = e.target.closest('.bp-cat-header--link, .bp-folder-header--link'); if (linkHeader) return; var header = e.target.closest('.bp-cat-header, .bp-folder-header'); if (!header) return; // Don't hijack Enter when focus is on the inner if (e.target.tagName === 'A') return; e.preventDefault(); toggle(header.parentElement); }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } /* ========================================================================== PERCEIVED SPEED BOOST — prefetch on hover When the user hovers any help-center nav link for a moment, we quietly kick off a for that URL. By the time they actually click, the browser has usually already downloaded the page from its cache, so the click feels near-instant. Harmless if the URL ends up not being visited — prefetch is low-priority and the browser throws it away. ========================================================================== */ (function () { var prefetched = {}; function doPrefetch(url) { if (!url || prefetched[url]) return; prefetched[url] = true; var l = document.createElement('link'); l.rel = 'prefetch'; l.href = url; document.head.appendChild(l); } function onHover(e) { var a = e.target.closest( '.bp-cat-link, .bp-folder-link, .bp-article-link, ' + '.bp-sidebar-home, .bp-nav-btn' ); if (!a || !a.href) return; // Only prefetch same-origin URLs if (a.origin !== location.origin) return; doPrefetch(a.href); } document.addEventListener('mouseover', onHover, { passive: true }); // Also listen for touch-start as a hint on mobile document.addEventListener('touchstart', onHover, { passive: true }); })(); })();