This section provides example use cases of how the API you create interacts with the Koin API and what the communication flow with acquirers (PSP) should look like.
Default Flow
%%{init:{'themeCSS':'g rect.activation0{fill:#fff !important};rect.actor[name=Client] { stroke:#E879F9;fill: #FDF4FF;};rect.actor[name=Koin] { stroke:#2ED4BF;fill: #F0FDFA;};rect.actor[name=PSP] { stroke:#FB923D;fill: #FFF7ED;}; text.actor tspan{fill:#4c555a !important};'}}%%
sequenceDiagram
participant Client
participant Koin
participant PSP
Client->>Koin: Create PreEvaluation
activate Koin
Koin-->>Client: PreEvaluation Response
deactivate Koin
Client->>PSP: Authorize Request
activate PSP
PSP-->>Client: Authorized
deactivate PSP
Client-->>Koin: Send Payment Status Notification
Client->>Koin: Create Evaluation
activate Koin
Koin-->>Client: Evaluation Response
deactivate Koin
alt is Accept
Client->>PSP: Capture Authorization
else is InProgress
activate Client
Client->>Client: Display Strategy
deactivate Client
Client->>Koin: Send Strategy Result
activate Koin
Koin-->>Koin: ReEvaluate
Koin-->>Client: ReEvaluation Response
deactivate Koin
alt is Accept
Client->>PSP: Capture Authorization
Client-->>Koin: Send Payment Status Notification
end
else is Reject
Client-->>PSP: Cancel Authorization
Client-->>Koin: Send Payment Status Notification
end
3DS Flow
%%{init:{'themeCSS':'g rect.activation0{fill:#fff !important};rect.actor[name=Client] { stroke:#E879F9;fill: #FDF4FF;};rect.actor[name=Koin] { stroke:#2ED4BF;fill: #F0FDFA;};rect.actor[name=PSP] { stroke:#FB923D;fill: #FFF7ED;}; text.actor tspan{fill:#4c555a !important};'}}%%
sequenceDiagram
participant Client
participant Koin
participant PSP
Client->>Koin: Create Evaluation
activate Koin
Koin-->>Client: Evaluation Response
deactivate Koin
alt is 3DS
activate Client
Client->>PSP: Authorize Request With 3DS
deactivate Client
activate PSP
PSP-->>Client: Authorized With 3DS
deactivate PSP
activate Client
Client-->>Koin: Send Authorized Status Notification
deactivate Client
activate Koin
Koin-->>Client: Evaluation Response (Sync)
deactivate Koin
alt is Accept
activate Client
Client->>PSP: Capture Authorization
deactivate Client
activate PSP
PSP-->>Client: Evaluation Response
deactivate PSP
activate Client
Client->>Koin: Send Capture Status Notification
deactivate Client
else is Reject
activate Client
Client-->>PSP: Cancel Authorization
deactivate Client
end
end
