Brick, initially a data and verification service provider, identified a demand from businesses seeking a more efficient way to manage incoming payments. Companies face operational inefficiencies due to fragmented payment systems and manual reconciliation processes. To address this, Brick developed a Payment Acceptance API, allowing businesses to integrate multiple payment methods, automate billing, and streamline reconciliation with a single API.
<aside> 💡
The Indonesian digital payments market is projected to grow at a CAGR of 22.3% from 2021-2026, driven by rising smartphone adoption and e-commerce penetration.
Major Players | M*** | X**** | D**** | O****** |
---|---|---|---|---|
Strength | Wide range of payment methods, strong brand recognition | Modern API, good documentation, focus on developer experience | Long-standing presence in the market, trusted by large enterprises | Specializes in alternative payment methods, strong in e-wallet integrations |
Weakness | Complex pricing structure, occasional downtime issues | Higher prices for some services, limited coverage in rural areas | Outdated user interface, slower adoption of new technologies | Limited traditional banking integrations, smaller merchant base |
Competitive Landscape
Feature | M*** | X**** | D**** | O****** | Brick (Proposed) |
---|---|---|---|---|---|
Bank Transfer Support | ✓✓✓ | ✓✓✓ | ✓✓ | ✓ | ✓✓✓✓ |
E-wallet Integration | ✓✓ | ✓✓ | ✓ | ✓✓✓ | ✓✓✓ |
Virtual Account | ✓✓ | ✓✓✓ | ✓ | ✘ | ✓✓✓ |
Real-time Processing | ✓ | ✓✓ | ✘ | ✓ | ✓✓✓ |
API Documentation | ✓✓ | ✓✓✓ | ✓ | ✓ | ✓✓✓ |
Pricing | ✓✓ | ✓ | ✓✓ | ✓✓ | ✓✓✓ |
Customer Support | ✓✓ | ✓✓ | ✓ | ✓ | ✓✓ |
Additional Services | ✓✓ | ✓✓ | ✓ | ✓ | ✓✓✓ |
Legend: ✓ = Basic offering or limited capability ✓✓ = Good offering or capability ✓✓✓ = Excellent offering or capability ✓✓✓✓ = Industry-leading offering or capability ✘ = Feature not offered
Based on this analysis, there's a clear opportunity for Brick to enter the market with a solution that addresses these pain points:
Persona | Medium to Large Enterprises (CFO, CTO) | SMEs (Founders, Developers) | Traditional Businesses: |
---|---|---|---|
Use Cases | Process large volumes of transactions via virtual accounts and QR codes. | Simple API to manage payments through payment links and virtual accounts with limited technical resources. | Automate billing and payment reconciliation to reduce manual workloads |
Frustrations | Multiple integrations with different payment providers increase operational overhead. | High development costs and complicated reconciliation processes. | Time-consuming manual invoicing and high payment processing costs. |
Users demand a solution that:
There is a clear market need for a unified payment API that allows businesses to accept payments through multiple methods (virtual accounts, QRIS, payment links) and provides real-time reconciliation. Businesses want automation, flexibility, and cost efficiency in payment processing.
<aside> 💡
To create a Payment Acceptance API that enables businesses to accept payments through multiple methods, automate reconciliation, and reduce operational costs through easy integration and scalable usage.
</aside>
Brick Payment API offering:
sequenceDiagram
participant Client
participant BrickAPI as Brick API Gateway
participant BrickAuth as Brick Auth Service
participant BrickPM as Brick Payment Manager
participant BrickCB as Brick Callback Service
participant ThirdParty as Third Party System
participant Bank as Bank/E-Wallet
%% Client to Brick Flow (Payment In)
Client->>BrickAPI: 1. API Request (with token)
BrickAPI->>BrickAuth: 2. Validate Token
BrickAuth-->>BrickAPI: 3. Token Valid
BrickAPI->>BrickPM: 4. Process Payment
BrickPM->>Bank: 5. Initiate Payment
Bank-->>BrickPM: 6. Payment Confirmation
BrickPM->>BrickCB: 7. Trigger Callback
BrickCB->>Client: 8. Send Callback
%% Brick to Third Party Flow (Payment Out)
Client->>BrickAPI: 9. Request Payment Out
BrickAPI->>BrickAuth: 10. Validate Token
BrickAuth-->>BrickAPI: 11. Token Valid
BrickAPI->>BrickPM: 12. Process Payment Out
BrickPM->>ThirdParty: 13. Initiate Transfer
ThirdParty-->>BrickPM: 14. Transfer Confirmation
BrickPM->>BrickCB: 15. Trigger Callback
BrickCB->>Client: 16. Send Callback
Key Components
Component | Descriptions |
---|---|
Client Applications | Including mobile apps, web dashboard, and third-party systems integrating with our API. |
Load Balancer | Ensures high availability and distributes traffic across multiple API servers. |
API Gateway | The entry point for all API requests, handling routing, composition, and protocol translation. |
Authentication Service | Manages user authentication, authorization, and access token generation. |
Payment Manager | Core service for processing payment transactions across various methods. |
Transaction Manager | Tracks and manages the lifecycle of all transactions. |
Ledger Manager | Maintains financial ledgers and handles balance inquiries. |
Notification Manager | Manages system notifications, including emails and webhooks. |
Data Store | Consists of a main database for persistent storage and a cache for frequently accessed data. |
External Systems | Connections to banks, e-wallets, and BIFAST for processing transactions. |
Pub/Sub Service | Facilitates asynchronous communication between services, enabling event-driven architecture. |
Bulldozer Service | Handles bulk operations and data processing tasks. |
Subscriber Services | Process events from the Pub/Sub service, allowing for decoupled and scalable event handling. |
Scheduler Service | Manages scheduled tasks such as recurring payments or periodic reports. |
Callback Service | Manages the delivery of callbacks to client systems, ensuring reliable communication of transaction statuses and other important events. |
graph TB
subgraph Client Applications
MobileApp[Mobile App]
WebApp[Web App]
ThirdPartySystem[Third-Party System]
end
subgraph Brick Payment API Platform
LB[Load Balancer]
API[API Gateway]
Auth[Authentication Service]
Security[Security Service]
PM[Payment Manager]
TM[Transaction Manager]
LM[Ledger Manager]
NM[Notification Manager]
PubSub[Pub/Sub Service]
Bulldozer[Bulldozer Service]
Subscriber[Subscriber Services]
Scheduler[Scheduler Service]
Callback[Callback Service]
subgraph Data Store
DB[(Main Database)]
Cache[(Cache)]
end
end
subgraph External Systems
Banks[Banks]
EWallets[E-Wallets]
BIFAST[BIFAST]
end
MobileApp --> LB
WebApp --> LB
ThirdPartySystem --> LB
LB --> API
API --> Auth
API --> Security
API --> PM
API --> TM
API --> LM
API --> NM
PM <--> PubSub
TM <--> PubSub
LM <--> PubSub
NM <--> PubSub
PubSub --> Bulldozer
PubSub --> Subscriber
Scheduler --> PM
Scheduler --> TM
Callback --> API
PM <--> Banks
PM <--> EWallets
PM <--> BIFAST
Auth <--> DB
PM <--> DB
TM <--> DB
LM <--> DB
NM <--> DB
Auth <--> Cache
PM <--> Cache
TM <--> Cache
Virtual Account is unique bank account number that the user c an generate to receive money