Log yesterday's Checkout.com payments to Google Sheets
Every morning we copy yesterday's Checkout.com payments into a Google Sheet, one clean row each, so finance can reconcile against the bank statement.
Every morning at 6am, run a deterministic sync that logs the previous day's Checkout.com payments to a Google Sheet for reconciliation and bookkeeping. This is an append-only job: pull exactly one day's window, write one row per payment, and never modify existing rows, so finance can pivot the log and match it against the bank.
Use Checkout.com Search Payments to retrieve every payment from yesterday's window. Build the window as the full previous calendar day (00:00:00 to 23:59:59) in our reporting timezone and filter on the payment's created/requested timestamp. Search Payments is cursor-paginated, so page through all results until the cursor is exhausted and collect the complete set of the day's payments before writing anything.
For each payment, build one row capturing: payment id, the payment date, the amount, currency, status, card scheme, client reference (the reference field), and customer (customer id or email). Convert the amount from Checkout.com minor units to a decimal before writing. Checkout.com amounts are integers in the currency's smallest unit (1000 = 10.00 GBP), so divide by 100 for standard two-decimal currencies, do not divide for zero-decimal currencies like JPY and KRW, and divide by 1000 for three-decimal currencies like BHD, KWD, and OMR. Write the amount as a plain decimal value so finance can sum and pivot it.
Append the rows to our finance spreadsheet with Google Sheets Append Values, which appends rows after the last row of the table. Write one row per payment in a stable column order matching the header (payment id, date, amount, currency, status, card scheme, client reference, customer). Append only; never overwrite or clear existing rows.
Because each run pulls only a single day's window and appends, the daily log is naturally deduplicated across runs. If a run is retried, key on the payment id so the same payment isn't written twice (for example, read the existing id column and skip ids already present). Keep the mapping deterministic: every payment in the window becomes exactly one row.
Additional information
What does this prompt do?
- Each morning, automatically gathers all of the previous day's Checkout.com payments.
- Adds one row per payment to your finance spreadsheet, with the amount shown as a normal decimal instead of raw pennies.
- Captures the details finance needs on every row: payment ID, date, amount, currency, status, card type, your reference, and the customer.
- Only ever appends new rows, so your running log stays intact and easy to pivot or match against the bank.
What do I need to use this?
- A Checkout.com account with access to your payments.
- A Google account and a spreadsheet to collect the log.
- A tab set aside for the daily payment rows, ideally with a header row already in place.
How can I customize it?
- Change the run time, for example later in the morning once the prior day has fully settled.
- Choose which spreadsheet and tab the rows land in.
- Adjust which columns you capture or the order they appear in.
Frequently asked questions
Which payments get logged each day?
Are amounts shown as real currency values?
Will it create duplicate rows if it runs more than once?
Does this change my Checkout.com data?
Can I use this to reconcile against my bank?
Related templates
Stop exporting Checkout.com payments by hand.
Wake up to yesterday's transactions already logged in your finance sheet, ready to reconcile.