--- tags: Payment --- # Activity Diagram Get Payment Method List Existing ```plantuml @startuml :Handler __clientCode__ = basic(username:password) __paymentToken__ = basic(username:) __deviceId__ = ; :Service PaymentMethodList; :get __client__ by __clientCode__; :get __paymentData__ and __excludePaymentMethod__ by __paymentToken__; :get __clientProvidersPaymentMethods__ by __client__.id; if (__clientProvidersPaymentMethods__) then (empty) stop else :filter __clientProvidersPaymentMethods__ by isActive -> __activeClientProvidersPaymentMethods__; :get __providersPaymentMethods__ by __activeClientProvidersPaymentMethods__.ProvidersPaymentMethodId -> ; group remove duplication provider of __providersPaymentMethods__; while (for __providersPaymentMethods__?) :map[__providersPaymentMethods__.PaymentMethodId] = __providersPaymentMethods__; endwhile end group :get __providerIds__ and __paymentMethodIds__ from __providersPaymentMethods__; :get __providerData__ by __providerIds__; :get __paymentMethods__ by __paymentMethodIds__; :get __instructions__ by __paymentMethodIds__; :get rules from ruleEngine; while (for __paymentMethods__) if (exclude) then else :providerName = providersPaymentMethods[paymentMethod.Id]; :build method model; :exception for aladin_dd; :build metadata; :build instruction; :method.isEligible = evaluate(rules); endif endwhile :response all methods; stop @enduml ```