API Reference

Use Cases

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