Reza Nur

← back

PJP Compliance Readiness: Service Flows, Test Strategy, and UAT Evidence

Doitpay·

Overview

CompanyDoitpay (Payment Gateway)
InitiativeBank Indonesia PJP Category 1 Bundle 2 submission readiness
StatusSubmitted and currently under review
DurationApproximately 6 months
RoleProduct Manager, leading delivery across Compliance, Engineering, QA, and Operations

Problem

Doitpay needed to demonstrate PJP operational readiness in a way that auditors could review efficiently. That required more than describing product behavior. It required clear service flows, repeatable testing, and defensible evidence that links scenarios to system outcomes.

At the same time, Doitpay was still in its early stages. Several flows were evolving, and the system did not yet capture all the data points typically expected for audit evidence.

Constraints

What I Delivered

1. Auditor friendly service flow documentation

Objective: Create a clear end to end view of how money moves, who acts at each step, and where evidence should exist.

Deliverable highlights:

Why it worked:

The flow documentation became the source of truth that aligned Compliance, Engineering, QA, and Ops. It also surfaced observability gaps early, which reduced surprises during evidence collection.

QRIS service flow diagram
QRIS service flow diagram

2. Test strategy for PJP readiness

Objective: Convert compliance expectations into an executable testing program with clear acceptance criteria.

Key decisions and structure:

Included modules:

FDS Rules

CodeDescriptionTrigger
VEL_SPIKESudden surge in transaction volume for a merchant relative to historical, and amount averageReal-time
ODD_HOURSFollow VEL_SPIKE rules, with average times historicalReal-time
DORMANTMerchant inactive ≥ 6 monthsDaily batch
HIGH_VALUE_DISBCumulative disbursement transactions >= IDR 500 million/day to the same beneficiary account30 minutes before closing
Fraud detection dashboard
Fraud detection dashboard
FDS rule configuration
FDS rule configuration

3. UAT plan and evidence pack

Objective: Produce UAT scenarios and an evidence pack that can withstand audit review.

Coverage:

Evidence pack format:

UAT evidence pack
UAT evidence pack

The hardest part and how I addressed it

The most difficult challenge was the evidence format in an immature system. Some flows did not consistently generate the artifacts auditors typically expect, such as stable IDs, complete event logs, or reliable state transitions.

I addressed this with three pragmatic moves.

  1. Standardize what counts as acceptable evidence by scenario type, such as UI proof, API proof, and log proof.
  2. Created an evidence mapping approach that links each critical step to expected evidence, then marks whether it exists and what remediation is needed.
  3. Turned evidence gaps into a prioritized observability backlog so the platform could mature systematically.

Results

What I would improve next

The next maturity step is to make evidence generation consistent by design, not assembled after the fact. This is where a Payment Intents architecture becomes a core enabler.

1. Introduce Payment Intents as the canonical state machine

Why: Payment Intents create a single lifecycle that standardizes state transitions across payment methods, including asynchronous flows.

What to implement:

2. Evidence readiness as a product requirement

Why: Evidence gaps usually come from features shipped without a defined evidence contract.

What to implement: