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
  • Maroof 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 — Maroof 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.