@startuml SalesReceipt
participant "Payment APP"        as 01_PayAPI   #ffffff
participant "xECM API"           as 02_xECMAPI  #9e9eff
participant "OT SS"              as 03_OTSS     #9e9eff
participant "DocID API"          as 031_DocIDAPI  #9e9eff
participant "OT CS"              as 04_OTCS     #9e9eff
participant "DB"                 as 05_Db       #9e9eff
participant "DEEP.IO"            as 06_DEEP.IO  #ffffff


==SalesReceipt: National Retailers & Payment Consolidation== 

01_PayAPI -> 02_xECMAPI    : Generation for Receipt
activate 01_PayAPI 


Note right of 02_xECMAPI #9e9eff
[[http://flows.corporate.t-mobile.com/all-swaggers/swagger/ce.cfs.documents/salesreceipt.swagger.json/ API for Receipt]]
end note

activate 02_xECMAPI
02_xECMAPI -> 02_xECMAPI : Validating Input JSON
02_xECMAPI --> 01_PayAPI : Return with Error Code

02_xECMAPI -> 03_OTSS     : Generation for PDF

activate 03_OTSS
03_OTSS -> 02_xECMAPI     : Return PDF
deactivate 03_OTSS

02_xECMAPI -> 031_DocIDAPI : Request to Generate Doc Id
activate 031_DocIDAPI
031_DocIDAPI -> 02_xECMAPI : Doc Id
deactivate 031_DocIDAPI

02_xECMAPI -> 05_Db       : Receipt transaction data saved in DB

activate 05_Db
05_Db -> 05_Db            : DB store

05_Db -> 02_xECMAPI 
deactivate 05_Db

02_xECMAPI ->  01_PayAPI   : Return PDF with Doc Id

deactivate 01_PayAPI
activate 06_DEEP.IO

02_xECMAPI -> 06_DEEP.IO: DocGenerationCompleted Event (Type and Doc ID)
deactivate 02_xECMAPI

06_DEEP.IO -> 06_DEEP.IO: ConsumeDocGeneration\nCompleteEvent
06_DEEP.IO -> 06_DEEP.IO: match up Event from\nxECM API & Doc Generated Event

06_DEEP.IO -> 06_DEEP.IO: \nGeneratedEmailNotification
deactivate 06_DEEP.IO


==  SCHEDULER  == 
loop Frequency Configurable

02_xECMAPI -> 05_Db : Fetch Data
activate 02_xECMAPI
activate 05_Db

05_Db -> 02_xECMAPI : DB Response
deactivate 05_Db

02_xECMAPI -> 04_OTCS: \nCall Preserve API to Ingest Document
02_xECMAPI -> 05_Db : \nUpdate DB with INGESTION_SUCCESS
deactivate 02_xECMAPI

end
@enduml