Takealot Integration — Automation SOP
By user_fullname on July 26, 2026
BeginnerTakealot Integration — Automation SOP
Version: 1.0 | Effective Date: 26 July 2026 Owner: Tsakane Sebone (Bookkeeper) | Approver: Chomba Chuma (GM) System: ERPNext (erp.velobiotics.com) + Base44 Deno Backend Functions
1. Architecture Overview
The Takealot integration runs on a three-tier reconciliation model:
DAILY (Automated) WEEKLY (Semi-Automated) MONTHLY (Manual)
───────────────────── ───────────────────── ─────────────────
Takealot API → CASHFOCUS 29830898 → Takealot PDF Statement →
Draft Sales Invoice Payment Entry Purchase Invoice
(one per day) (allocated to invoices) (fees reconciliation)
Key Entities
| Entity | Name | Role |
|---|---|---|
| Customer | Takealot B2C Customer | Single B2B customer for all marketplace sales |
| Supplier | TAKEALOT MAIN | Supplier for monthly platform fees |
| Warehouse | Takealot - V | Stock sent to Takealot for fulfillment |
| Vendor ID | 29830898 | Takealot's bank remittance identifier |
| Bank Ref | CASHFOCUS 29830898 | How Takealot payments appear in FNB bank feed |
2. Daily Sales Import (AUTOMATED)
Trigger
- Workflow: "Takealot Daily Sync (00:01 SAST)" — runs daily at 00:01 Africa/Johannesburg
- Function:
takealotDailySync(Base44 Deno backend function) - API: Takealot Marketplace API
/v1/sales
What It Does
- Fetches previous day's sales from Takealot API
- Groups all order lines into ONE consolidated Sales Invoice per day
- Each line item = one order, with PO number as reference
- Creates Draft Sales Invoice (docstatus=0) for review
Invoice Structure
- Customer: Takealot B2C Customer
- Posting Date: Order date (not import date)
- Invoice Source: Takealot
- Warehouse: Takealot - V (stock deduction)
- Due Date: Posting Date + 14 days
- VAT: 15% inclusive (line items are VAT-inclusive)
- Payment Terms: 14 days
- PO Number:
TA-DAILY-YYYY-MM-DD
Bundle Logic
- SKUs prefixed
TA4L-orT4L-= 3-unit bundles of the base SKU - The sync expands these to 3 units of the base item code
What Happens After Import
- Draft invoice is created for Chomba/Tsakane to review
- Once verified, the draft is SUBMITTED (docstatus=1)
- This posts the invoice to the GL: DR Debtors / CR Sales + CR Output VAT
3. Weekly Payment Reconciliation (SEMI-AUTOMATED)
How Takealot Pays
- Takealot remits every Friday to our FNB account
- Bank narrative:
CASHFOCUS 29830898(vendor # 29830898) - The payment covers sales from the previous week (Mon-Sun)
- Takealot deducts fees before paying (commission, fulfillment, shipping)
- Payment amount < Invoice total (the difference = Takealot fees)
Current Bank Feed Handling
- The daily Bank Feed Sync catches CASHFOCUS deposits
- Creates a DRAFT JE: DR Bank / CR Unallocated Income
- This is a placeholder — it records the cash but doesn't allocate to the customer
Reconciliation Steps (Every Friday)
Step 1: Identify the CASHFOCUS deposit - Check bank feed / ERPNext for JEs with remark containing "CASHFOCUS" - Note the amount and date
Step 2: Delete the placeholder DRAFT JE
- The DRAFT JE (DR Bank / CR Unallocated Income) is a placeholder
- Delete it before creating the Payment Entry
- API: DELETE /api/resource/Journal Entry/{name}
Step 3: Create Payment Entry - Payment Type: Receive - Party Type: Customer - Party: Takealot B2C Customer - Posting Date: The CASHFOCUS deposit date - Mode of Payment: Wire Transfer - Reference No: CASHFOCUS 29830898 - Paid From: 300201 - Debtors (Customers) - ZAR - V - Paid To: 300300 - Payment Deposit - Online E-Commerce - V - Amount: The exact CASHFOCUS deposit amount
Step 4: Allocate against outstanding invoices (FIFO) - Allocate the payment against the oldest outstanding daily invoices first - Continue until the payment is fully allocated - The last invoice in the range will likely be partially paid - The remaining balance on that invoice = Takealot's fees for those days
Step 5: Submit the Payment Entry - Submit (docstatus=1) to post to GL - GL impact: DR Bank / CR Debtors (Takealot B2C Customer)
Reconciliation Example
Week of July 17-21:
Daily invoices: R14,107 + R12,014 + R14,644 + R19,704 + R18,079 = R78,548
CASHFOCUS payment (July 23): R83,667.97
Allocation:
ACC-SINV-2026-13742 (Jul 17): R14,107.00 → PAID
ACC-SINV-2026-13744 (Jul 18): R12,014.00 → PAID
ACC-SINV-2026-13745 (Jul 19): R14,644.00 → PAID
ACC-SINV-2026-13746 (Jul 20): R19,704.00 → PAID
ACC-SINV-2026-13747 (Jul 21): R18,079.00 → PAID
ACC-SINV-2026-13748 (Jul 22): R5,119.97 → PARTIAL
Remaining on Jul 22: R10,770.03 = Takealot fees for this period
SMTLC Settlement Deposits
Some Takealot deposits have reference SMTLC19ex0146 or SMTLC19ex0148 instead of CASHFOCUS.
- These are settlement batch deposits from Takealot
- Handle the same way: delete placeholder JE → create Payment Entry
- May include combined Shopify + Takealot settlements — verify amounts before allocating
4. Monthly Fee Reconciliation (MANUAL)
When
- Takealot issues a PDF fee statement on the 2nd of each month
- The statement covers the previous month's platform fees
Fees NOT in the API
The Takealot sales API only includes order-level fees (success fees, fulfillment fees, stock fees). The PDF statement includes additional platform fees: - Ad Credits (advertising spend) - Storage Fees (warehouse storage) - Subscription Fees (platform subscription) - Removal Fees (stock removal from Takealot warehouse) - Reversals (refunds/chargebacks)
Reconciliation Steps
Step 1: Receive the PDF statement - Download from Takealot Seller Portal → Reports → Invoices - Verify the total against API-derived fees
Step 2: Create Purchase Invoice
- Supplier: TAKEALOT MAIN
- Posting Date: 2nd of the month
- Bill No: TA-FEES-YYYY-MM (e.g., TA-FEES-2026-06)
- Bill Date: Date on the PDF statement
Step 3: Add line items for each fee category
| Fee Type | Expense Account | VAT |
|---|---|---|
| Success Fees | 700801 - Marketplace Fees - V | 15% |
| Fulfillment Fees | 700801 - Marketplace Fees - V | 15% |
| Stock Fees | 700801 - Marketplace Fees - V | 15% |
| Ad Credits | 500200 - Digital Marketing & Advertising - V | 15% |
| Storage Fees | 700801 - Marketplace Fees - V | 15% |
| Subscription | 700315 - Dues And Subscription - V | 15% |
| Removal Fees | 700801 - Marketplace Fees - V | 15% |
| Reversals | 700801 - Marketplace Fees - V | 15% (if negative, credit) |
Step 4: Verify the reconciliation
Sum of daily invoice totals (month) = R X (sales)
Sum of weekly CASHFOCUS payments (month) = R Y (cash received)
Purchase Invoice total = R Z (fees)
Check: X - Y ≈ Z (fees deducted from payments)
If X - Y ≠ Z, investigate the gap
Step 5: Submit the Purchase Invoice - Submit to post to GL: DR Expense + DR Input VAT / CR Trade Payables (TAKEALOT MAIN) - Pay the PI when Takealot deducts from the next remittance
5. Returns Processing
When
- Customer returns item to Takealot
- Takealot notifies via API (return_status in sales data)
- Returned stock arrives at Takealot warehouse (may be damaged)
Steps
- Identify the return in the daily sync (negative quantity or return_status)
- Create Credit Note against the original daily Sales Invoice
- Customer: Takealot B2C Customer
- Against: Original daily SI
- Amount: Refund value
- Write off returned stock if unusable:
- Stock Entry: Material Issue from "Takealot - V" warehouse
- Reason: "Takealot return — damaged/unsellable"
- If stock is sellable: Transfer back to "Finished Goods - V" warehouse
6. Stock Transfer to Takealot
When
- When sending inventory to Takealot's warehouse for fulfillment
Steps
- Create Stock Entry (Material Transfer)
- From: Finished Goods - V
- To: Takealot - V
- Items and quantities as per dispatch note
- Verify in ERPNext that stock levels are correct
- Update the Takealot Seller Portal with dispatch confirmation
7. Accounting Flow Summary
Daily Sales (Automated)
DR 300201 - Debtors (Customers) - ZAR - V [gross]
CR 400000 - Cost of Goods (Cost of Sales) [net]
CR 200300 - Standard Rate VAT - 15% - V [VAT]
Weekly Payment (Semi-Automated)
DR 300101 - Velobiotics FNB Current Account [payment]
CR 300201 - Debtors (Customers) - ZAR - V [payment]
Monthly Fees (Manual)
DR 700801 - Marketplace Fees - V [net fees]
DR 200300 - Standard Rate VAT - 15% - V [input VAT]
CR 500100 - Trade Payables - ZAR - V [gross fees]
Returns
DR 400000 - Cost of Goods (Cost of Sales) [credit note]
CR 300201 - Debtors (Customers) - ZAR - V [refund]
8. Outstanding Items (as of 26 July 2026)
Invoices
- 9 daily invoices submitted (July 17-25): R143,609.06 total
- July 17-21: Fully paid by CASHFOCUS (July 23)
- July 22: Partially paid (R10,770.03 outstanding = fees)
- July 23-25: Outstanding (R49,171.00) — awaiting next CASHFOCUS payment
Payments
- 1 Payment Entry created: ACC-PAY-2026-00098 (R83,667.97)
Pending CASHFOCUS Deposits (DRAFT JEs to convert)
| Date | Amount | Status |
|---|---|---|
| June 25 | R78,639.49 | Draft JE — needs conversion to Payment Entry |
| July 2 | R110,396.46 | Draft JE — needs conversion to Payment Entry |
| July 9 | R98,040.66 | Draft JE — needs conversion to Payment Entry |
| July 16 | R95,356.69 | Draft JE — needs conversion to Payment Entry |
Monthly Purchase Invoices Needed
| Month | Fee Statement | PI Status |
|---|---|---|
| June 2026 | PDF available (R145,967.61) | Not yet created |
| July 2026 | Expected Aug 2 | Pending |
SMTLC Settlement Deposits (DRAFT JEs)
16 settlement deposits totaling ~R1,506,000 — these need to be verified as Takealot or Shopify settlements before conversion to Payment Entries.
9. Automation Roadmap
Already Automated ✅
- Daily sales import (Takealot API → Draft Sales Invoices)
- Bank feed classification (CASHFOCUS → Unallocated Income draft)
- Daily workflow at 00:01 SAST
Semi-Automated (Manual Trigger) 🔧
- Weekly Payment Entry creation (requires: delete JE, create PE, allocate, submit)
- Monthly Purchase Invoice creation (requires: PDF review, manual line items)
Future Automation Targets 🎯
- Weekly auto-reconciliation: Workflow that detects CASHFOCUS deposit, deletes placeholder JE, creates Payment Entry, allocates FIFO
- Monthly fee auto-import: Parse Takealot PDF and auto-create Purchase Invoice
- SMTLC deposit classification: Distinguish Takealot vs Shopify settlements automatically
10. Key Contacts & References
- Takealot Seller Portal: https://seller.takealot.com
- API Key Location: Seller Portal → Settings → API
- Vendor Number: 29830898
- Bank Reference: CASHFOCUS 29830898
- ERPNext Customer: Takealot B2C Customer
- ERPNext Supplier: TAKEALOT MAIN
- ERPNext Warehouse: Takealot - V
- GitHub Repo: chombachuma/vb-shopify-takelot-bank
- Bookkeeper: Tsakane Sebone
- GM Approver: Chomba Chuma
No comments yet. Login to start a new discussion Start a new discussion