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