Payment Flow #
1. Payment Status Flowchart #
stateDiagram-v2
state "Payment Request (1)" as 1
state "Payment Complete (2)" as 2
state "Payment Cancel (3)" as 3
state "Payment Fail (4)" as 4
state "Payment Pending (5)" as 5
state "Pending Cancel (6)" as 6
state "Partial Cancel (7)" as 7
state "Payment Register (9)" as 9
[*] --> 1
1 --> 4
1 --> 5
1 --> 2 : Domestic credit cards complete immediately
1 --> 9
1 --> [*]
5 --> 6
5 --> 2 : Capture / Deposit in pending state
5 --> [*]
6 --> [*]
2 --> 3 : Cancel entire payment
2 --> 7 : Cancel part of payment
2 --> [*]
7 --> 7 : Continue partial cancellation until fully cancelled
7 --> 3 : Becomes 'Payment Cancel' when fully cancelled
7 --> [*]
3 --> [*]
4 --> [*]
9 --> [*]
2. General Payment Flow #
Key Steps Description #
- Create Payment Intent: The store server acquires session and authentication information from the PG via EBP in advance.
- User Authentication: Perform authentication by redirecting to the EBP payment screen (2-1) or by directly implementing the PG SDK at the store (2-2).
- Payment Creation: The stage where the actual payment is created and authorized based on the authenticated data.
- 3-1. API Method: The store server calls EBP's Payment Creation API after acquiring auth data from the browser to complete authorization. Finally, the Store redirects the user to the Success URL.
- 3-2. Webhook Method: The user approves the payment directly on the PG screen (or SDK), and the PG finalizes the authorization. The user is then redirected to the Store's Success URL by the PG.
- Authorization Result (Webhook): Regardless of the finalization method, EBP processes the authorization result received from the PG and sends an Authorization Webhook to the store. The store receives this notification to finalize the order processing and present the payment completion to the user.
sequenceDiagram
autonumber
actor User as User
participant Store as Store
participant EBP as EBP
participant PG as PG
rect var(--mermaid-rect-gray)
Note over User, PG: 1. Create Payment Intent
User->>Store: Click checkout button
Store->>EBP: Create Payment Intent (POST /api/v2/payment-intents)
activate EBP
EBP->>PG: Request payment session
PG-->>EBP: Response session & keys (pgResponse)
EBP-->>Store: Response paymentUrl & pgResponse
deactivate EBP
end
rect var(--mermaid-rect-blue)
Note over User, PG: 2. User Authentication
alt 2-1. EBP Redirect Page (Wrapping)
Store-->>User: Redirect to EBP payment page (paymentUrl)
User->>EBP: Access EBP page & enter auth info
EBP->>PG: Request payment authentication
else 2-2. Merchant Direct SDK Implementation
Store->>User: Render PG UI on Store page
User->>PG: Enter auth info & request authentication via PG components
end
end
rect var(--mermaid-rect-green)
Note over User, PG: 3. Payment Creation
alt 3-1. API Method (Store calls Payment Creation API)
PG-->>User: Deliver authentication data
User->>Store: Deliver auth data & request completion
Store->>EBP: Request Payment Creation (POST /api/v2/payments)
EBP->>PG: Final approval request
PG-->>EBP: Response approval result
EBP-->>EBP: Process authorized data
EBP-->>Store: Response approval result
Store-->>User: Redirect to Success URL
else 3-2. Webhook Method (User creates payment directly via PG)
PG->>PG: Approve payment
PG-->>User: Redirect to Store Success URL
end
end
rect var(--mermaid-rect-brown)
Note over User, PG: 4. Authorization Result (Webhook)
PG->>EBP: Authorization notice (Webhook)
EBP->>EBP: Process authorized data
EBP->>Store: Authorization notification (Webhook)
Store-->>User: Display final payment complete page
end
2.2. Payment Result Notification (Async) #
PGI Async Section: Retry 3 times on timeout, then call Notification Fail API (EBP_API_239).
Core Payment Completion Processing:
- Validate payment completion.
- Parse PG response data.
- Process EBP payment completion.
- Generate store response data.
- Send store purchase history.
sequenceDiagram
autonumber 1
participant Store2 as Store
participant Core as Core (EBP)
participant PGI as PGI (EBP)
participant PG as PG
PG->>PGI: Payment Complete Webhook
activate PG
activate PGI
PGI->>Core: Payment Complete Notification
activate Core
Note over Core: Notification (EBP_API_238)
Note right of Core: Payment Pending: PG('5')
Core->>Store2: Create Purchase History (Async)
activate Store2
Store2-->>Core: Response
deactivate Store2
Core-->>PGI: Response
deactivate Core
PGI-->>PG: Webhook Response
deactivate PGI
deactivate PG
Pending state (before capture) may require partial cancellation processing.
2.3. Final Payment Completion via Capture #
sequenceDiagram
autonumber 1
participant Store2 as Store
participant Core as Core (EBP)
participant PGI as PGI (EBP)
participant PG as PG (PG)
Store2->>Core: Request Capture
activate Store2
activate Core
Note over Core: Request (EBP_API_228)
Core->>PGI: Request Capture
activate PGI
PGI->>PG: Request Capture
activate PG
PG-->>PGI: Response Capture Result
deactivate PG
PGI-->>Core: Response Capture Result
deactivate PGI
Note right of Core: Payment Complete: ('2')
Core-->>Store2: Response Capture Result
deactivate Core
deactivate Store2
2.4. Purchase Confirmation #
Effect of Purchase Confirmation:
- Settlement proceeds for confirmed purchases.
Conditions for Purchase Confirmation: - User confirms purchase in order history.
- Automatically confirmed by batch job a certain period after delivery completion.
sequenceDiagram
autonumber 1
actor USER as User
participant Store as Store
participant Core as Core (EBP)
USER->>Store: Confirm Purchase
Store->>Core: Request Confirmation
activate Store
activate Core
Note over Store, Core: Request (EBP_API_214)
Core-->>Store: Response Purchase History Creation
deactivate Core
deactivate Store
Store->>USER: Purchase Confirmation Alert
3. Token Payment Flow #
3.1. Token Registration Flow #
Token Registration: The user requests token registration from the Store, which calls the PG screen via Core.
sequenceDiagram
actor USER as User
participant Store as Store
participant Core as EBP(Core)
participant PGI as EBP(PGI)
participant PG as PG (PG)
autonumber
rect var(--mermaid-rect-blue)
Note over USER, Core: 1. Token Registration Initialization
USER->>Store: Request Token Registration
activate Store
Store->>Core: Prepare Registration (EBP_API_120)
activate Core
Core-->>Store: Response Registration URL
deactivate Core
Store-->>USER: Redirect to Registration URL (HTTP 3xx)
deactivate Store
end
rect var(--mermaid-rect-beige)
Note over USER, PG: 2. User Authentication & Registration
USER->>PGI: Redirect to Registration URL (HPP)
activate PGI
Note over PGI: EBP HPP (Redirect)
PGI->>PG: Call PG Registration Screen
activate PG
Note over USER, PG: 3. User Input & Registration Authorization
PG-->>PGI: Transfer Result (Callback/Redirect)
deactivate PG
end
rect var(--mermaid-rect-gray)
Note over USER, Store: 4. Notification
PGI-->>USER: Redirect to Store Return URL (HTTP 3xx)
deactivate PGI
USER->>Store: Return to Complete Page
Note over PG, Store: Asynchronous Processing (Webhook)
PG->Core: Token Registration Webhook
Core->>Store: Token Registration Webhook
end
rect var(--mermaid-rect-pink)
Note over USER, Core: 5. PIN Registration (Optional: If required by Store)
USER->>Store: Register PIN
Store->>Core: Register Encrypted PIN (EBP_API_131)
end
3.2. Token Payment #
3.2.1. Customer-Initiated Payment #
sequenceDiagram
actor USER as User
participant Store as Store
participant Core as EBP(Core)
participant PG as PG (PG)
autonumber
rect var(--mermaid-rect-green)
Store ->> Core: Request Payment (EBP_API_230)
activate Store
Note over USER, Core: PIN Verification (Optional: If a PIN is registered)
Store-->>USER: Request PIN Verification
USER->>Store: Enter PIN
Store->>Core: Verify Encrypted PIN (EBP_API_126)
Core-->>Store: PIN Verification Result
end
rect var(--mermaid-rect-pink)
Store ->> Core: Request Payment (EBP_API_230)
activate Core
Note right of Core: State: Payment Request('1')
Core ->> PG : Process Payment Request
PG -->> Core: Payment Complete Notification (Callback/Redirect)
Core -->> Store: Create Purchase History & Deliver Data
deactivate Core
deactivate Store
Store -->> USER: Display Order Complete Page
end
3.2.2. Merchant‑Initiated Subscription Payment #
sequenceDiagram
actor USER as User
participant Store as Store
participant Core as EBP(Core)
participant PGI as EBP(PGI)
participant PG as PG (PG)
autonumber
rect var(--mermaid-rect-blue)
activate Store
Store ->> Core: Request Payment (EBP_API_230)
activate Core
Note right of Core: State: Payment Request('1')
Core ->> PG : Process Payment Request
PG -->> Core: Payment Complete Notification (Callback/Redirect)
Core -->> Store: Create Purchase History & Deliver Data
deactivate Core
deactivate Store
end
3.3. Delete Registered Token #
Delete Token: Deletes a registered token upon user request.
sequenceDiagram
autonumber 1
actor USER as User
participant Store as Store
participant Core as Core (EBP)
participant PGI as PGI (EBP)
USER->>Store: Request Token Deletion
activate Store
Note over Store, Core: Delete Token (EBP_API_124)
Store->>Core: Call Delete Token API
activate Core
Core->>PGI: Request Deletion
activate PGI
PGI-->>Core: Response
deactivate PGI
Core-->>Store: Response Result
deactivate Core
Store-->>USER: Token Deletion Completion Message
deactivate Store
3.4. Query Registered Tokens #
Query Token: The user queries the list of previously registered tokens.
sequenceDiagram
autonumber 1
actor USER as User
participant Store as Store
participant Core as Core (EBP)
USER->>Store: Request Token List
activate Store
Note over Store, Core: Query Token (EBP_API_109)
Store->>Core: Call Query Token API
activate Core
Core-->>Store: Response Token List
deactivate Core
Store-->>USER: Deliver Token List
deactivate Store