Go-Link · V1 Build Status
Last updated · 2026-04-26

V1 is feature-complete.

All five product modules from the PRD are functionally shipped. Below is a per-module breakdown — what's done, what's pending operational config, and what's intentionally deferred to V2.

0 / 5
Modules shipped
0%
Implementation complete
✓ ZATCA Phase 2
Critical blocker resolved
Legend Shipped Partial · pending ops or external Deferred to V2 (per PRD) Awaiting external dependency
MODULE 01 Shipped

Authentication & Onboarding

Get creators registered, market-selected, profiled, and compliance-assessed in under 10 minutes.

100%

User Flow

  • ✓Signup → Market Selection → Profile Completion → Compliance Assessment → Badge Assignment → Dashboard

Signup Requirements

  • ✓Full Name
  • ✓Email Address
  • ✓Phone Number (with country code)
  • ✓Market Selection (KSA or Kuwait) — locked after selection in V1
  • ✓Email verification required before platform access
  • ✓Laravel Sanctum bearer-token authentication
  • →Phone verification — optional in V1, deferred to V2 (allowed by PRD)

KSA Creator Profile — Required Fields

  • ✓Business Name
  • ✓Muthooq Number (رقم موثوق)
  • ✓Commercial Registration (CR) Number (رقم السجل التجاري)
  • ✓National ID
  • ✓VAT Registration Number (رقم التسجيل الضريبي)
  • ✓Email Address (business)
  • ✓Phone Number (business)
  • ✓City / Region

Kuwait Creator Profile — Required Fields

  • ✓Business Name
  • ✓Commercial License Number (رقم الرخصة التجارية)
  • ✓Civil ID Number (البطاقة المدنية)
  • ✓Email Address (business)
  • ✓Phone Number (business)
  • ✓City / Region

Optional Fields (Both Markets)

  • ✓Instagram, Twitter, TikTok handles
  • ✓Website URL
  • ✓Bio / Description (Arabic / English)

Bank Account Collection

  • ✓Collected before first invoice generation (not at signup)
  • ✓Bank Name
  • ✓IBAN (Kuwait format validated, encrypted at rest)
  • ✓Account Holder Name
MODULE 02 Shipped

Creator Public Profile (Link-in-Bio)

Public-facing profile that showcases creator identity and displays compliance status to brands / clients.

100%

URL Structure

  • ✓KSA creators — go-link.sa/{username}
  • ✓Kuwait creators — go-link.kw/{username}
  • ✓Username rules — 3–30 characters, alphanumeric + hyphens, case-insensitive, unique within market
  • ✓Username cannot be changed after creation in V1

Header Section

  • ✓Profile photo (optional, default avatar if not provided)
  • ✓Business name
  • ✓Short bio (max 160 characters)
  • ✓Compliance badge

Links Section

  • ✓Social media links (Instagram, Twitter, TikTok, etc.)
  • ✓Custom links — max 10 in V1
  • ✓Each link supports title, URL, optional icon
  • ✓Click tracking per link

Services / Offerings (Optional)

  • ✓Service title, short description, price (optional)
  • ✓Inquire button (opens contact form / messaging)

Contact Form

  • ✓Name, Email, Message fields
  • ✓Submits to creator's registered email (rate-limited)

Technical Requirements

  • ✓Mobile responsive (iOS / Android)
  • ✓RTL support for Arabic content
  • ✓Page load < 3 seconds — Lighthouse on production: LCP 1.0s, FCP 1.0s, TBT 20ms, CLS 0, Performance score 97/100
  • ✓Browser support — Chrome, Safari, Firefox, Edge (latest)
  • ✓OpenGraph + Twitter Card meta tags — site_name, title, description, type=profile, locale, image, canonical URL (8 unit tests)
MODULE 03 Shipped

Compliance Badge System

Automated compliance status assessment, badge assignment, and GSG intervention workflow for non-compliant creators.

100%

Badge States (5 Total)

  • ✓Not Started — grey, creator only (no documents uploaded)
  • ✓In Review — yellow, creator only (documents uploaded, pending GSG)
  • ✓Verified — green with checkmark, publicly visible (GSG finance approved)
  • ✓Action Required — orange, creator only (documents rejected by GSG)
  • ✓Expired — red, creator only (past expiration date)

Document Upload Requirements

  • ✓KSA creators — Muthooq Certificate (شهادة موثوق)
  • ✓Kuwait creators — Commercial License + Civil ID + Signature Authorization
  • ✓Accepted formats — PDF, JPG, PNG
  • ✓Max file size — 5 MB per document
  • ◐Storage location — AWS S3 (currently local disk in dev; production wire-up pending)

Verification Workflow

  • ✓Reviewer — GSG Finance Department (admin dashboard implemented)
  • ✓SLA — 48 hours from upload (process in place; monitoring is operational)
  • ✓Method — manual review (no OCR / automation in V1, per PRD)
  • ✓Audit log — every status change recorded (creator + admin + reason code)
  • ✓Bilingual rejection reasons (EN + AR) surfaced to creator
  • ✓Notification flow — Upload → notify GSG → Review → Decision → notify creator (in-app notifications wired; transactional email driver out of scope for V1)
Critical Path
MODULE 04 Shipped

Invoice Generation Engine

Allow creators to generate professional, legally-compliant, bilingual PDF invoices in under 2 minutes.

100%

User Flow

  • ✓Click Generate Invoice → fill form → preview → download PDF → auto-save to archive

Form — Client Information

  • ✓Company Name (required)
  • ✓Email Address (required)
  • ✓Physical Address (optional)
  • ✓Tax ID / VAT Registration Number (optional, BR-KSA-44 format validated when provided)

Form — Invoice Details

  • ✓Invoice Date (auto-filled, editable)
  • ✓Due Date (optional)
  • ✓Service / Product Line Items — up to 20 items
  • ✓Per-line: Description, Quantity, Unit Price, Taxable Amount (auto), VAT Amount (auto), Line Total (auto)
  • ✓Notes / Terms (optional, max 500 chars)
  • ✓Payment Method Accepted
  • ✓Payment Plan (full payment, installments, other)

Invoice Numbering

  • ✓Format — {MARKET}-{CREATOR}-{YEAR}-{SEQUENCE} (e.g. KSA-AHMED-2026-001)
  • ✓Sequential per creator, per market, per year
  • ✓Annual reset to 001 on January 1st
  • ✓System-generated only in V1 (not customizable)
  • ✓Gaps allowed if invoices are deleted
  • ✓Concurrency-safe (SELECT … FOR UPDATE)

Tax Calculation

  • ✓KSA VAT rate — 15% (locked, not editable)
  • ✓KSA calculation — Subtotal × 1.15 = Total (VAT shown separately on each line item and as totals)
  • ✓Kuwait VAT rate — 0% (locked, no tax)
  • ✓Kuwait calculation — Subtotal = Total (no VAT line)
  • ✓Manual override NOT allowed — locked based on market rules

Invoice Template — Bilingual (AR + EN), Legally Required

  • ✓Header: business name (AR + EN), address, business email/phone
  • ✓Header: VAT Registration Number (required)
  • ✓Header: CR Number (KSA) / Commercial License Number (Kuwait)
  • ✓Header: compliance badge indicator, invoice number, issue + due dates
  • ✓Client section: customer name (AR + EN), address / email, customer VAT number (B2B)
  • ✓Line items table — 6-column ZATCA format (KSA): #, Description, Qty, Unit Price, VAT Amount, Line Amount
  • ✓Line items table — 5-column simplified (Kuwait, no VAT column)
  • ✓Totals — Subtotal, Total VAT (KSA only), Grand Total
  • ✓Payment information — Bank Name, Account Holder, IBAN, payment methods, plan
  • ✓Footer — Notes / Terms, Powered by Go-Link line
  • ✓Footer — ZATCA QR code (KSA only)
  • ⚠Branded Go-Link template with official assets — awaiting GSG (PRD Blocker 2). Generic template active.
  • ✓Layout — A4 size, portrait orientation
  • ✓Font — Arabic-compatible Tajawal (TTF embedded)

KSA-Specific — ZATCA Phase 2

PRD flagged ZATCA QR encoding as Critical Blocker 1. Resolved via direct integration with saleh7/php-zatca-xml; validated end-to-end against ZATCA sandbox.

  • ✓QR code generated and embedded in PDF footer per ZATCA encoding spec
  • ✓Creator-facing OTP onboarding flow (bilingual)
  • ✓CSR + secp256k1 keypair generated locally; private key never persisted to disk
  • ✓6-scenario compliance gauntlet — Standard + Simplified × Invoice / Credit / Debit
  • ✓Production CSID upgrade flow — auto-promotes after all 6 pass
  • ✓B2B clearance + B2C reporting routing (auto-detected from buyer tax ID)
  • ✓PDF/A-3 with signed UBL XML embedded as Associated File
  • ✓Bilingual error rendering — every common BR-KSA-XX validation code translated

Kuwait-Specific Invoice Fields

  • ✓Invoice Number, Company Name, Logo
  • ✓Address or Email Address, Date, Amount
  • ✓Service Type and Quantity
  • ✓Payment Methods, Payment Plan
  • ✓NO QR code (correct per PRD)

Client Database

  • ✓Save client option when creating invoice
  • ✓Client list — stored per creator, dropdown / combobox to select existing
  • ✓Auto-fill client fields when selected, editable before finalizing
  • ✓Client PII encrypted (email, phone, address, tax ID, national address)
  • ✓On-the-fly client creation from inside the invoice form

Editing & Deletion Rules

  • ✓Draft status — fully editable
  • ✓Issued / Paid status — locked, immutable (legal compliance)
  • ✓To change an issued invoice — must generate new one; original stays in archive
  • ✓Creators can delete invoices (any status), permanent
  • ✓Confirmation modal required before deletion
  • ✓Version history — track every edit while in Draft (user, timestamp, field, old / new)
  • ✓Audit trail displayed in invoice detail view

PDF Generation

  • ✓Laravel PDF package (mPDF)
  • ✓Server-side rendering
  • ✓Generation time < 5 seconds (target met)
  • ✓Output — A4 size, high-quality (300 DPI for print)
  • ◐Storage — AWS S3 (currently local disk in dev; production wire-up pending)
  • ✓Filename format with invoice number + creator + timestamp
  • ✓Retention — permanent (legal requirement)
MODULE 05 Shipped

Invoice Archive & Dashboard

Store all invoices securely for 5+ years and provide a creator dashboard for invoice management and business insights.

100%

Invoice Archive Storage

  • ✓KSA retention — 5 years
  • ✓Kuwait retention — 5 years
  • ✓Permanent storage, no auto-deletion
  • ✓Database — invoice metadata in MySQL
  • ◐File storage — PDFs in AWS S3 (production wire-up pending)
  • ◐Backup — cross-region S3 replication (ops)
  • ◐Recovery — point-in-time restore (ops)
  • ◐Backup schedule — daily automated, 30-day history (ops)

Invoice Status Tracking — 4 States

  • ✓Draft — fully editable, not visible to client, can be deleted
  • ✓Issued — finalized, locked / immutable, awaiting payment
  • ✓Paid — manual mark by creator, cannot revert to Issued
  • ✓Cancelled — voided with reason (≥ 10 chars), still archived, cannot un-cancel

Dashboard Metrics

  • ✓Top section — Total Invoices Generated, Total Revenue (paid), Outstanding Amount (issued), Compliance Status
  • ✓Activity feed — recent invoices (last 10) with status transitions
  • ✓System notifications — renewal reminders, document rejections (model + service in place)
  • →Charts — revenue by month (bar) and invoice count by status (pie) — PRD-optional ("if time allows")

Search & Filter

  • ✓Search by invoice number, client name, amount range, date range
  • ✓Real-time search (debounced)
  • ✓Status filter — Draft / Issued / Paid / Cancelled
  • ✓Date range filter
  • ✓Amount range filter
  • ✓Client filter dropdown
  • ✓Sort — date, amount, status (newest first by default)
  • ✓Sort columns whitelisted (SQL-injection guarded)

Export Functionality

  • ✓CSV export — invoice number, date, client, amount, VAT, total, status
  • ✓CSV filterable by selected search / filter criteria, streamed (memory-flat)
  • ✓Bulk PDF download — checkbox-selected invoices, ZIP file
  • ✓Bulk PDF max — 50 invoices per download (PRD spec)

What we need from GSG to deploy

Two items remain that we can't move forward without — both are infrastructure prerequisites. Everything else (legal review, UAT data, business sign-offs, scope decisions) is owned inside GSG and runs in parallel without blocking us.

BLOCKING DEPLOY

Infrastructure prerequisites

2 items
  • M2

    Production domains go-link.sa & go-link.kw

    Required so creator public profiles can resolve at the canonical market URLs.

  • M3·M4

    AWS account + S3 access for production storage

    Needed for both compliance documents and invoice PDFs (separate buckets per PRD security spec). Currently running on local disk in dev.

Items not listed here — branding assets, legal text review, UAT test data, payment-plan wording, CSV column order, V1.x scope decisions, ZATCA production seller, data residency — are all GSG-side workstreams that can land independently of the dev track.