From be6b3bbf89eff0be48e31a6fb5c3f022f74ee501 Mon Sep 17 00:00:00 2001 From: Henk Kodde Date: Fri, 24 Jan 2020 19:08:34 +0200 Subject: [PATCH] =?UTF-8?q?Updated=20as=20per=20feedback=20received=20for?= =?UTF-8?q?=20issue=20#10.=20=E2=80=A2=20Fixed=20-=205.1.6.9=20ATM-Initiat?= =?UTF-8?q?ed=20Cash-Out**=20<--=20two=20stars=20(*)=20after=20section=20n?= =?UTF-8?q?ame=20=E2=80=A2=20Fixed=20-=20two=20delays=20added=20in=20Figur?= =?UTF-8?q?e=2034,=20between=20"Payer=20fee=20is=201=20USD=20in=20Payer=20?= =?UTF-8?q?FSP=20=20for=20ATM=20Cash-Out,=20total=20fee=202=20USD"=20and?= =?UTF-8?q?=20"OTP=20is=20pre-generated",=20and=20similarly=20between=20"V?= =?UTF-8?q?alidate=20OTP=20sent=20by=20Payee=20FSP,=20OTP=20OK"=20and=20"R?= =?UTF-8?q?eserve=20102=20USD=20from=20Payer=20account,=20101=20USD=20to?= =?UTF-8?q?=20Switch=20account,=201=20USD=20to=20fee=20account".=20There?= =?UTF-8?q?=20should=20not=20be=20any=20delays.=20This=20seems=20to=20be?= =?UTF-8?q?=20present=20in=20other=20figures=20as=20well=20(for=20example?= =?UTF-8?q?=20Figure=2036,=2046,=2051,=2052,=2066).=20=E2=80=A2=20Fixed=20?= =?UTF-8?q?-=20Some=20extra=20whitespace=20in=20at=20least=20Figure=2034?= =?UTF-8?q?=20and=2036=20in=20"PUT=20/transfers/"=20between=20the=20"PUT?= =?UTF-8?q?=20/transfers/"=20and=20"".=20=E2=80=A2=20Fixed=20-=20Misspelli?= =?UTF-8?q?ng=20in=20Figure=2036,=20"Generated=20OTP,=20"12345""=20should?= =?UTF-8?q?=20be=20"Generate=20OTP,=20"12345""=20=E2=80=A2=20Fixed=20-=20L?= =?UTF-8?q?isting=2012=20is=20strange=20with=20double=20*=20instead=20of?= =?UTF-8?q?=20bold.=20=E2=80=A2=20Fixed=20-=206.3.4.1,=20"Alternative=20UR?= =?UTF-8?q?I:=20PUT=20/parties/{Type}/{ID}/{SubId}/error**"=20<--=20double?= =?UTF-8?q?=20*=20=E2=80=A2=20Fixed=20-=207.2.3.1=20Regular=20Expression**?= =?UTF-8?q?=20<--=20double=20**=20=E2=80=A2=20Fixed=20-=207.2.4.1=20Regula?= =?UTF-8?q?r=20Expression**=20<--=20double=20**=20=E2=80=A2=20Fixed=20-=20?= =?UTF-8?q?7.2.5.1=20Regular=20Expression**=20<--=20double=20**?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/diagrams/sequence/figure1.plantuml | 3 ++- assets/diagrams/sequence/figure2.plantuml | 3 ++- assets/diagrams/sequence/figure34.plantuml | 14 ++++++----- assets/diagrams/sequence/figure36.plantuml | 16 +++++++++---- assets/diagrams/sequence/figure40.plantuml | 2 ++ assets/diagrams/sequence/figure43.plantuml | 2 ++ assets/diagrams/sequence/figure46.plantuml | 5 +++- assets/diagrams/sequence/figure48.plantuml | 2 ++ assets/diagrams/sequence/figure49.plantuml | 2 ++ assets/diagrams/sequence/figure50.plantuml | 2 ++ assets/diagrams/sequence/figure51.plantuml | 14 +++++++++-- assets/diagrams/sequence/figure52.plantuml | 10 ++++++-- assets/diagrams/sequence/figure54.plantuml | 2 ++ assets/diagrams/sequence/figure58.plantuml | 2 ++ assets/diagrams/sequence/figure63.plantuml | 11 +++++---- assets/diagrams/sequence/figure63a.plantuml | 3 ++- assets/diagrams/sequence/figure64a.plantuml | 6 ++--- assets/diagrams/sequence/figure65.plantuml | 26 +++++++++++++++------ assets/diagrams/sequence/figure65a.plantuml | 19 +++++++++++---- assets/diagrams/sequence/figure66.plantuml | 9 ++++--- assets/diagrams/sequence/figure66a.plantuml | 5 +++- assets/diagrams/sequence/figure68.plantuml | 3 ++- assets/diagrams/sequence/figure69.plantuml | 3 ++- documents/API Definition v1.0.md | 12 ++++------ 24 files changed, 125 insertions(+), 51 deletions(-) diff --git a/assets/diagrams/sequence/figure1.plantuml b/assets/diagrams/sequence/figure1.plantuml index ab4bed5d..69df89d4 100644 --- a/assets/diagrams/sequence/figure1.plantuml +++ b/assets/diagrams/sequence/figure1.plantuml @@ -64,5 +64,6 @@ FSP <<- Switch: **PUT /service/**////\n(Service object information) FSP -->> Switch: **HTTP 200** (OK) deactivate Switch FSP -> FSP: Handle service object information -' deactivate FSP +FSP -[hidden]> Switch +deactivate FSP @enduml diff --git a/assets/diagrams/sequence/figure2.plantuml b/assets/diagrams/sequence/figure2.plantuml index be903fab..0b4089a0 100644 --- a/assets/diagrams/sequence/figure2.plantuml +++ b/assets/diagrams/sequence/figure2.plantuml @@ -64,5 +64,6 @@ FSP <<- Switch: **PUT /service/**////\n(Service object information) FSP -->> Switch: **HTTP 200** (OK) deactivate Switch FSP -> FSP: Handle service object\ninformation update -' deactivate FSP +FSP -[hidden]> FSP +deactivate FSP @enduml diff --git a/assets/diagrams/sequence/figure34.plantuml b/assets/diagrams/sequence/figure34.plantuml index ab2aa5a8..baf58cf3 100644 --- a/assets/diagrams/sequence/figure34.plantuml +++ b/assets/diagrams/sequence/figure34.plantuml @@ -155,10 +155,11 @@ Switch ->> PayerFSP: **PUT /quotes/**\n(transferAmount=101 USD,\npaye Switch <<-- PayerFSP: **HTTP 200** (OK) deactivate Switch PayerFSP -> PayerFSP: Payer fee is 1 USD in Payer FSP\nfor ATM Cash-Out, total fee 2 USD +PayerFSP -[hidden]> Switch deactivate PayerFSP -'... -PayerFSP -> PayerFSP: OTP is pre-generated +PayerFSP -[hidden]> Switch activate PayerFSP +PayerFSP -> PayerFSP: OTP is pre-generated Payer <<- PayerFSP: Use you pre-generated OTP to accept\ntransaction of 100 USD, 2 USD\nin fees. PayerFSP ->> Switch: **GET /authorizations/**\n{TransactionRequestID}/\n(amount=100 USD, fees=2 USD,\nretriesLeft=2, type=OTP) activate Switch @@ -177,10 +178,11 @@ PayerFSP <<- Switch: **PUT /authorizations/**\n{transactionRequestID}\n(o PayerFSP -->> Switch: **HTTP 200** (OK) deactivate Switch PayerFSP -> PayerFSP: Validate OTP sent by Payee FSP,\nOTP OK +PayerFSP -[hidden]> Switch deactivate PayerFSP -'... -PayerFSP -> PayerFSP: Reserve 102 USD from Payer\naccount, 101 USD to Switch\naccount, 1 USD to fee account +PayerFSP -[hidden]> Switch activate PayerFSP +PayerFSP -> PayerFSP: Reserve 102 USD from Payer\naccount, 101 USD to Switch\naccount, 1 USD to fee account PayerFSP ->> Switch: **POST /transfers**\n(amount=101 USD) activate Switch PayerFSP <<-- Switch: **HTTP 202** (Accepted) @@ -191,11 +193,11 @@ Switch <<-- PayeeFSP: **HTTP 202** (Accepted) PayeeFSP -> PayeeFSP: Transfer 101 USD from Switch\naccount, 100 USD to Payee,\n1 USD to fee account PayeeFSP ->> PayeeATM: Dispense 100 USD in Cash PayeeATM ->> PayerOTC: Here is your 100 USD in cash -Switch <<- PayeeFSP: **PUT /transfers/** +Switch <<- PayeeFSP: **PUT /transfers/** Switch -->> PayeeFSP: **HTTP 200** (OK) deactivate PayeeFSP Switch <- Switch: Commit reserved transfer -Switch ->> PayerFSP: **PUT /transfers/** +Switch ->> PayerFSP: **PUT /transfers/** Switch <<-- PayerFSP: **HTTP 200** (OK) deactivate Switch PayerFSP <- PayerFSP: Commit reserved transfer diff --git a/assets/diagrams/sequence/figure36.plantuml b/assets/diagrams/sequence/figure36.plantuml index ba0df8f9..29317f79 100644 --- a/assets/diagrams/sequence/figure36.plantuml +++ b/assets/diagrams/sequence/figure36.plantuml @@ -150,8 +150,11 @@ Switch ->> PayerFSP: **PUT /quotes/**\n(transferAmount=99 USD,\npayee Switch <<-- PayerFSP: **HTTP 200** (OK) deactivate Switch PayerFSP -> PayerFSP: Payer FSP uses the\nFSP commission as\na transaction fee -... -PayerFSP -> PayerFSP: Generated OTP, "12345" +PayerFSP -[hidden]> Switch +deactivate PayerFSP +PayerFSP -[hidden]> Switch +activate PayerFSP +PayerFSP -> PayerFSP: Generate OTP, "12345" Payer <<- PayerFSP: Use OTP "12345" to accept\ntransaction to Merchant of 100 USD,\n0 USD in fees. PayerFSP ->> Switch: **GET /authorizations/**\n{TransactionRequestID}/\n(amount=100 USD, fees=0 USD,\nretriesLeft=2, type=OTP) PayerFSP <<-- Switch: **HTTP 202** (Accepted) @@ -166,7 +169,10 @@ Switch -->> PayeeFSP: **HTTP 200** (OK) PayerFSP <<- Switch: **PUT /authorizations/***\n{transactionRequestID}\n(otp="12345") PayerFSP -->> Switch: **HTTP 200** (OK) PayerFSP -> PayerFSP: Validate OTP sent by Payee FSP,\nOTP OK -... +PayerFSP -[hidden]> Switch +deactivate PayerFSP +PayerFSP -[hidden]> Switch +activate PayerFSP PayerFSP -> PayerFSP: Reserve 100 USD from Payer\naccount, 99 USD to Switch\naccount, 1 USD to fee account PayerFSP ->> Switch: **POST /transfers**\n(amount=99 USD) activate Switch @@ -178,11 +184,11 @@ Switch <<-- PayeeFSP: **HTTP 202** (Accepted) PayeeFSP -> PayeeFSP: Transfer 99 USD from Switch\naccount, 1 USD from\ncommission account\nto Payee account PayeeFSP ->> PayeePOS: You have received 100 USD\nfrom Payer. Please give goods\nor service to Payer. PayeePOS ->> PayerOTC: Here is your goods or service -Switch <<- PayeeFSP: **PUT /transfers/** +Switch <<- PayeeFSP: **PUT /transfers/** Switch -->> PayeeFSP: **HTTP 200** (OK) deactivate PayeeFSP Switch <- Switch: Commit reserved transfer -Switch ->> PayerFSP: **PUT /transfers/** +Switch ->> PayerFSP: **PUT /transfers/** Switch <<-- PayerFSP: **HTTP 200** (OK) deactivate Switch PayerFSP <- PayerFSP: Commit reserved transfer diff --git a/assets/diagrams/sequence/figure40.plantuml b/assets/diagrams/sequence/figure40.plantuml index 8b0ff914..94d07342 100644 --- a/assets/diagrams/sequence/figure40.plantuml +++ b/assets/diagrams/sequence/figure40.plantuml @@ -135,4 +135,6 @@ userfsp <<- fsp2: **PUT /participant/MSISDN/123456789/error** userfsp -->> fsp2: **HTTP 200** (OK) deactivate fsp2 userfsp -> userfsp: +123456789 found\nin FSP 2 +userfsp -[hidden]>fsp2 +deactivate userfsp @enduml diff --git a/assets/diagrams/sequence/figure43.plantuml b/assets/diagrams/sequence/figure43.plantuml index e3f513f5..1e38eccf 100644 --- a/assets/diagrams/sequence/figure43.plantuml +++ b/assets/diagrams/sequence/figure43.plantuml @@ -133,4 +133,6 @@ Switch ->> payeefsp: **PUT /transactionRequest/**\n(Received status) Switch <<-- payeefsp: **HTTP 200** (OK) deactivate Switch payeefsp -> payeefsp: Wait for either quote and\ntransfer, or rejected\ntransaction request by Payer +payeefsp <[hidden]- payeefsp +deactivate payeefsp @enduml diff --git a/assets/diagrams/sequence/figure46.plantuml b/assets/diagrams/sequence/figure46.plantuml index 61ab71b4..a96c0df4 100644 --- a/assets/diagrams/sequence/figure46.plantuml +++ b/assets/diagrams/sequence/figure46.plantuml @@ -120,7 +120,10 @@ actor "<$actor>\nPayee" as Payee Payer ->> PayerFSP: I would like to pay 100 USD\nto +123456789 activate PayerFSP PayerFSP -> PayerFSP: Lookup +123456789\n(process not shown here) -... +PayerFSP -[hidden]> Switch +deactivate PayerFSP +PayerFSP -[hidden]> Switch +activate PayerFSP PayerFSP -> PayerFSP: Rate Payer FSP quote\n(depending on fee model) PayerFSP ->> Switch: **POST /quotes/**\n(Transaction details) activate Switch diff --git a/assets/diagrams/sequence/figure48.plantuml b/assets/diagrams/sequence/figure48.plantuml index 6731d77d..bb7900be 100644 --- a/assets/diagrams/sequence/figure48.plantuml +++ b/assets/diagrams/sequence/figure48.plantuml @@ -152,4 +152,6 @@ PayerFSP <<- Switch: **PUT /authorizations/**\n\n(O PayerFSP -->> Switch: **HTTP 200** (OK) deactivate Switch PayerFSP -> PayerFSP: Validate OTP sent by Payee FSP +PayerFSP -[hidden]> Switch +deactivate PayerFSP @enduml diff --git a/assets/diagrams/sequence/figure49.plantuml b/assets/diagrams/sequence/figure49.plantuml index e74177b7..76126464 100644 --- a/assets/diagrams/sequence/figure49.plantuml +++ b/assets/diagrams/sequence/figure49.plantuml @@ -141,4 +141,6 @@ deactivate Switch PayerFSP -> PayerFSP: Resend OTP (optionally\nregenerate) as customer\ndid not receive it Payer <<- PayerFSP: Use OTP "12345" to accept\ntransaction to Merchant\nof 100 USD,\n0 USD in fees. PayerFSP -> PayerFSP: Resend GET /authorizations\n(not shown here) +PayerFSP -[hidden]> Switch +deactivate PayerFSP @enduml diff --git a/assets/diagrams/sequence/figure50.plantuml b/assets/diagrams/sequence/figure50.plantuml index f136d41c..12dd9bca 100644 --- a/assets/diagrams/sequence/figure50.plantuml +++ b/assets/diagrams/sequence/figure50.plantuml @@ -156,4 +156,6 @@ PayerFSP <<- Switch: **PUT /autorizations/**\n\n(ot PayerFSP -->> Switch: **HTTP 200** (OK) deactivate Switch PayerFSP -> PayerFSP: Validates OTP sent by\nPayee FSP, OTP OK, perform\ntransfer (not shown here) +PayerFSP -[hidden]> Switch +deactivate PayerFSP @enduml diff --git a/assets/diagrams/sequence/figure51.plantuml b/assets/diagrams/sequence/figure51.plantuml index 1ccf0172..242a6a5e 100644 --- a/assets/diagrams/sequence/figure51.plantuml +++ b/assets/diagrams/sequence/figure51.plantuml @@ -120,10 +120,20 @@ actor "<$actor>\nPayee" as Payee Payer ->> PayerFSP: I would like to pay 100 USD\nto +123456789 activate PayerFSP PayerFSP -> PayerFSP: Lookup +123456789\n(process not shown here) -... +PayerFSP -[hidden]> Switch +deactivate PayerFSP +PayerFSP -[hidden]> Switch +activate PayerFSP PayerFSP -> PayerFSP: Quote\n(process not shown here) -... +PayerFSP -[hidden]> Switch +deactivate PayerFSP +PayerFSP -[hidden]> Switch +activate PayerFSP PayerFSP -> PayerFSP: Reserve transfer from Payer\naccount to Switch account +PayerFSP -[hidden]> Switch +deactivate PayerFSP +PayerFSP -[hidden]> Switch +activate PayerFSP PayerFSP ->> Switch: **POST /transfers**\n(Transfer ID, conditions, ILP Packet\nincluding transaction details,\nexpiry=30 seconds) activate Switch PayerFSP <<-- Switch: **HTTP 202** (Accepted) diff --git a/assets/diagrams/sequence/figure52.plantuml b/assets/diagrams/sequence/figure52.plantuml index efcfb4f0..de1eafa3 100644 --- a/assets/diagrams/sequence/figure52.plantuml +++ b/assets/diagrams/sequence/figure52.plantuml @@ -120,9 +120,15 @@ actor "<$actor>\nPayee" as Payee Payer ->> PayerFSP: I would like to pay 100 USD\nto +123456789 activate PayerFSP PayerFSP -> PayerFSP: Lookup +123456789\n(process not shown here) -... +PayerFSP -[hidden]> Switch +deactivate PayerFSP +PayerFSP -[hidden]> Switch +activate PayerFSP PayerFSP -> PayerFSP: Quote\n(process not shown here) -... +PayerFSP -[hidden]> Switch +deactivate PayerFSP +PayerFSP -[hidden]> Switch +activate PayerFSP PayerFSP -> PayerFSP: Reserve transfer from Payer\naccount to Switch PayerFSP ->> Switch: **POST /transfers**\n(Transfer ID, condition, ILP Packet\nincluding transaction details,\nexpiry=30 seconds) activate Switch diff --git a/assets/diagrams/sequence/figure54.plantuml b/assets/diagrams/sequence/figure54.plantuml index 4a98cfcb..0aa731b3 100644 --- a/assets/diagrams/sequence/figure54.plantuml +++ b/assets/diagrams/sequence/figure54.plantuml @@ -143,4 +143,6 @@ PayerFSP -> PayerFSP: Cancel transfer from Payer\naccount to Switch Payer <- PayerFSP: Transaction failure notification deactivate PayerFSP PayeeFSP -> PayeeFSP: Cancel reservation +PayerFSP -[hidden]> Switch +deactivate PayerFSP @enduml diff --git a/assets/diagrams/sequence/figure58.plantuml b/assets/diagrams/sequence/figure58.plantuml index ea68f9e6..0163ad0c 100644 --- a/assets/diagrams/sequence/figure58.plantuml +++ b/assets/diagrams/sequence/figure58.plantuml @@ -143,4 +143,6 @@ Loop #OldLace PayerFSP -> PayerFSP: Rate payer FSP bulk quote\n(depending on fee model) end Loop PayerFSP -> PayerFSP: Handle quote results for\nall Payee FSPs +PayerFSP -[hidden]> Switch +deactivate PayerFSP @enduml diff --git a/assets/diagrams/sequence/figure63.plantuml b/assets/diagrams/sequence/figure63.plantuml index c46a4971..b54bd80b 100644 --- a/assets/diagrams/sequence/figure63.plantuml +++ b/assets/diagrams/sequence/figure63.plantuml @@ -157,8 +157,9 @@ PayerFSP -->> Switch: **HTTP 200** (OK) deactivate Switch deactivate PayerFSP autonumber resume -PayerFSP -> PayerFSP: Rate Payer FSP quote\n(depending on fee model) +PayerFSP -[hidden]> Switch activate PayerFSP +PayerFSP -> PayerFSP: Rate Payer FSP quote\n(depending on fee model) PayerFSP ->> Switch: **POST /quotes**\n(Transaction details) activate Switch autonumber stop @@ -230,23 +231,23 @@ group #OldLace Optional hnote left of PayerFSP #OldLace Get transaction data end hnote - PayerFSP ->> Switch: **GET /transactions/** + PayerFSP ->> Switch: **GET /transactions/** activate Switch autonumber stop PayerFSP <<-- Switch: **HTTP 202** (Accepted) autonumber resume - Switch <<- PayeeFSP: **GET /transactions/** + Switch <<- PayeeFSP: **GET /transactions/** activate PayeeFSP autonumber stop Switch -->> PayeeFSP: **HTTP 202** (Accepted) autonumber resume PayeeFSP -> PayeeFSP: Lookup\ntransaction\ninformation - Switch <<- PayeeFSP: **PUT /transactions/** \n(Transaction details) + Switch <<- PayeeFSP: **PUT /transactions/**\n(Transaction details) autonumber stop Switch -->> PayeeFSP: **HTTP 200** (OK) deactivate PayeeFSP autonumber resume - PayerFSP <<- Switch: **PUT /transactions/** \n(Transaction details) + PayerFSP <<- Switch: **PUT /transactions/**\n(Transaction details) autonumber stop PayerFSP -->> Switch: **HTTP 200** (OK) deactivate Switch diff --git a/assets/diagrams/sequence/figure63a.plantuml b/assets/diagrams/sequence/figure63a.plantuml index b4abfa6b..02b6493b 100644 --- a/assets/diagrams/sequence/figure63a.plantuml +++ b/assets/diagrams/sequence/figure63a.plantuml @@ -143,8 +143,9 @@ autonumber resume PayerFSP <<- Switch: **Return Party Information**\n(Party Information) deactivate Switch deactivate PayerFSP -PayerFSP -> PayerFSP: Rate Payer FSP quote\n(depending on fee model) +PayerFSP -[hidden]> Switch activate PayerFSP +PayerFSP -> PayerFSP: Rate Payer FSP quote\n(depending on fee model) PayerFSP ->> Switch: **Calculate Quote**\n(Transaction details) activate Switch Switch ->> PayeeFSP: **Calculate Quote**\n(Transaction details) diff --git a/assets/diagrams/sequence/figure64a.plantuml b/assets/diagrams/sequence/figure64a.plantuml index 889066cc..9f19d7f6 100644 --- a/assets/diagrams/sequence/figure64a.plantuml +++ b/assets/diagrams/sequence/figure64a.plantuml @@ -134,8 +134,8 @@ Switch <<- PayeeFSP: **Perform Transaction Request**\n(Payee information, transa activate PayeeFSP activate Switch PayerFSP <<- Switch: **Perform Transaction Request**\n(Payee information,\ntransaction details) -activate PayerFSP deactivate Switch +activate PayerFSP PayerFSP -> PayerFSP: Perform optional validation PayerFSP ->> Switch: **Return Transaction**\n**Request Information**\n(Received status) activate Switch @@ -176,11 +176,11 @@ Alt #OldLace Alternatives Payer -> PayerFSP: I reject the\ntransaction request activate PayerFSP PayerFSP ->> Switch: **Return Transaction**\n**Request Information**\n(Rejected state) - activate Switch deactivate PayerFSP + activate Switch Switch ->> PayeeFSP: **Return Transaction Request Information**\n(Rejected state) - activate PayeeFSP deactivate Switch + activate PayeeFSP PayeeFSP -> Payee: Transaction failed\ndue to user\nrejection deactivate PayeeFSP autonumber stop diff --git a/assets/diagrams/sequence/figure65.plantuml b/assets/diagrams/sequence/figure65.plantuml index 8d20d218..e67e6701 100644 --- a/assets/diagrams/sequence/figure65.plantuml +++ b/assets/diagrams/sequence/figure65.plantuml @@ -170,9 +170,12 @@ autonumber stop Switch <<-- PayeeFSP: **HTTP 200** (OK) deactivate Switch deactivate PayeeFSP +PayerFSP -[hidden]> Switch +deactivate PayerFSP +PayerFSP -[hidden]> Switch +activate PayerFSP autonumber resume PayerFSP -> PayerFSP: Rate Payer FSP quote\n(depending on fee model) -activate PayerFSP PayerFSP ->> Switch: **POST /qoutes**\n(Transaction details) activate Switch autonumber stop @@ -205,6 +208,8 @@ PayerFSP -->> Switch: **HTTP 200** (OK) deactivate Switch autonumber resume PayerFSP -> PayerFSP: Rate Payer FSP quote\n(depending on fee model) +autonumber stop +PayerFSP -[hidden]> Switch deactivate PayerFSP Group #Oldlace Option #2 hnote left of Payer #Oldlace @@ -212,9 +217,10 @@ Group #Oldlace Option #2 generated OTP end hnote + PayerFSP -[hidden]> Switch + activate PayerFSP autonumber resume PayerFSP -> PayerFSP: Generate OTP - activate PayerFSP Payer <- PayerFSP: Use OTP\nto confirm end PayerFSP ->> Switch: **GET /authorizations/**\n\n(Amount and fees) @@ -243,19 +249,22 @@ PayerFSP -->> Switch: **HTTP 200** (OK) deactivate Switch autonumber resume PayerFSP -> PayerFSP: Validate OTP sent by Payee FSP -... -'deactivate PayerFSP +autonumber stop +PayerFSP -[hidden]> Switch +deactivate PayerFSP Group #Oldlace Alternatives hnote left of Payer #Oldlace OTP validation failed end hnote + autonumber resume PayerFSP ->> Switch: **PUT /transactionRequests/**\n(Rejected state) -' activate PayerFSP + activate PayerFSP activate Switch autonumber stop PayerFSP <<-- Switch: **HTTP 200** (OK) + deactivate PayerFSP autonumber resume Switch ->> PayeeFSP: **PUT /transactionRequests/**\n(Rejected state) activate PayeeFSP @@ -266,14 +275,15 @@ Group #Oldlace Alternatives PayeeFSP -> Payee: Transaction\nfailed due to\nincorrect OTP deactivate PayeeFSP autonumber stop - ... else hnote left of Payer #Oldlace OTP validation successful end hnote + PayerFSP -[hidden]> Switch autonumber 33 1 + activate PayerFSP PayerFSP -> PayerFSP: Reserve transfer from Payer\naccount to Switch account autonumber stop PayerFSP ->> Switch: **POST /transfers**\n(Transfer ID, condition,\nILP packet including transaction ID) @@ -300,12 +310,14 @@ else deactivate Switch autonumber resume PayerFSP -> PayerFSP: Commits transfer from Payer\naccount to Payee FSP account - ... + autonumber stop + PayerFSP -[hidden]> Switch Group #Lightgrey Optional hnote left of PayerFSP #Lightgrey Get transaction data end hnote + autonumber resume PayerFSP ->> Switch: **GET /transactions/** activate Switch autonumber stop diff --git a/assets/diagrams/sequence/figure65a.plantuml b/assets/diagrams/sequence/figure65a.plantuml index 849e705f..6f97dd11 100644 --- a/assets/diagrams/sequence/figure65a.plantuml +++ b/assets/diagrams/sequence/figure65a.plantuml @@ -156,8 +156,11 @@ autonumber resume Switch ->> PayeeFSP: **Return Transaction Request Information**\n(Received status) deactivate Switch deactivate PayeeFSP -PayerFSP -> PayerFSP: Rate Payer FSP quote\n(depending on fee model) +autonumber stop +PayerFSP -[hidden]> Switch activate PayerFSP +autonumber resume +PayerFSP -> PayerFSP: Rate Payer FSP quote\n(depending on fee model) autonumber stop PayerFSP ->> Switch: **Calculate Quote**\n(Transaction details) activate Switch @@ -181,6 +184,8 @@ deactivate PayeeFSP PayerFSP <<- Switch: **Return Quote Information**\n(Payee FSP fee/commission,\ncondition) deactivate Switch PayerFSP -> PayerFSP: Rate Payer FSP quote\n(depending on fee model) +autonumber stop +PayerFSP -[hidden]> Switch deactivate PayerFSP Group #Oldlace Option #2 hnote left of Payer #Oldlace @@ -188,9 +193,10 @@ Group #Oldlace Option #2 generated OTP end hnote + PayerFSP -[hidden]> Switch + activate PayerFSP autonumber resume PayerFSP -> PayerFSP: Generate OTP - activate PayerFSP Payer <- PayerFSP: Use OTP\nto confirm end PayerFSP ->> Switch: **Perform Authorization**\n(Amount and fees) @@ -210,6 +216,8 @@ PayerFSP -->> Switch: **HTTP 200** (OK) deactivate Switch autonumber resume PayerFSP -> PayerFSP: Validate OTP sent by Payee FSP +autonumber stop +PayerFSP -[hidden]> Switch deactivate PayerFSP Group #Oldlace Alternatives hnote left of Payer #Oldlace @@ -217,8 +225,10 @@ Group #Oldlace Alternatives validation failed end hnote - PayerFSP ->> Switch: **Return Transaction Request Information**\n(Rejected state) + PayerFSP -[hidden]> Switch activate PayerFSP + autonumber resume + PayerFSP ->> Switch: **Return Transaction Request Information**\n(Rejected state) activate Switch deactivate PayerFSP Switch ->> PayeeFSP: **Return Transaction Request Information**\n(Rejected state) @@ -233,9 +243,10 @@ else validation successful end hnote + PayerFSP -[hidden]> Switch autonumber 33 1 - PayerFSP -> PayerFSP: Reserve transfer from Payer\naccount to Switch account activate PayerFSP + PayerFSP -> PayerFSP: Reserve transfer from Payer\naccount to Switch account autonumber stop PayerFSP ->> Switch: **Perform Transfer**\n(Transfer ID, condition, ILP packet\nincluding transaction ID) activate Switch diff --git a/assets/diagrams/sequence/figure66.plantuml b/assets/diagrams/sequence/figure66.plantuml index 4ac3ad2a..64125f74 100644 --- a/assets/diagrams/sequence/figure66.plantuml +++ b/assets/diagrams/sequence/figure66.plantuml @@ -128,21 +128,24 @@ Loop #Oldlace in bulk file end hnote PayerFSP -> PayerFSP: Locate Payee, if not\nwithin Payer FSP\nuse Account Lookup - PayerFSP ->> ALS: **GET /participants/** **/** + PayerFSP ->> ALS: **GET /participants/****/** activate ALS autonumber stop PayerFSP <<-- ALS: **HTTP 202** (Accepted) autonumber resume ALS -> ALS: Lookup FSP for\nrequested Type/ID autonumber stop - PayerFSP ->> ALS: **PUT /participants/** **/** + PayerFSP ->> ALS: **PUT /participants/****/** PayerFSP <<-- ALS: **HTTP 202** (Accepted) deactivate ALS autonumber resume PayerFSP -> PayerFSP: Place transaction\nin bulk file\nper Payee FSP autonumber stop end Loop -... +PayerFSP -[hidden]> Switch +deactivate PayerFSP +PayerFSP -[hidden]> Switch +activate PayerFSP Loop #Oldlace hnote left of PayerFSP #Oldlace For each diff --git a/assets/diagrams/sequence/figure66a.plantuml b/assets/diagrams/sequence/figure66a.plantuml index 587538d5..01951014 100644 --- a/assets/diagrams/sequence/figure66a.plantuml +++ b/assets/diagrams/sequence/figure66a.plantuml @@ -135,8 +135,9 @@ Loop #Oldlace autonumber stop deactivate ALS PayerFSP -> PayerFSP: Place transaction\nin bulk file\nper Payee FSP + PayerFSP -[hidden]> Switch + deactivate PayerFSP end Loop -... Loop #Oldlace hnote left of PayerFSP #Oldlace For each @@ -144,6 +145,8 @@ Loop #Oldlace file per Payee FSP end hnote + PayerFSP -[hidden]> Switch + activate PayerFSP PayerFSP -> PayerFSP: Rate Payer FSP bulk quote\n(depending on fee model) autonumber resume PayerFSP ->> Switch: **Calculate Bulk Quote**\n(Bulk info and list\nof individual quotes) diff --git a/assets/diagrams/sequence/figure68.plantuml b/assets/diagrams/sequence/figure68.plantuml index 6fa60f86..a520b3b3 100644 --- a/assets/diagrams/sequence/figure68.plantuml +++ b/assets/diagrams/sequence/figure68.plantuml @@ -77,5 +77,6 @@ autonumber stop PayerFSP -->> Switch: **HTTP 200** (OK) deactivate Switch PayerFSP -> PayerFSP: Cancel transfer from Payer\naccount to Payee FSP account -'deactivate PayerFSP +PayerFSP -[hidden]> Switch +deactivate PayerFSP @enduml diff --git a/assets/diagrams/sequence/figure69.plantuml b/assets/diagrams/sequence/figure69.plantuml index 8a36d028..9b5147ee 100644 --- a/assets/diagrams/sequence/figure69.plantuml +++ b/assets/diagrams/sequence/figure69.plantuml @@ -77,5 +77,6 @@ autonumber stop PayerFSP -->> Switch: **HTTP 200** (OK) deactivate Switch PayerFSP -> PayerFSP: Cancel each transfer\nfrom Payer account\nto Payee FSP account -'deactivate PayerFSP +PayerFSP -[hidden]> Switch +deactivate PayerFSP @enduml diff --git a/documents/API Definition v1.0.md b/documents/API Definition v1.0.md index f9a7e626..ca26f6f4 100644 --- a/documents/API Definition v1.0.md +++ b/documents/API Definition v1.0.md @@ -1043,7 +1043,7 @@ See [Figure 33](#figure-33) for a highly simplified view of the movement of mone **Figure 33 -- Simplified view of the movement of money for the Merchant-Initiated Merchant Payment example** -#### 5.1.6.9 ATM-Initiated Cash-Out** +#### 5.1.6.9 ATM-Initiated Cash-Out An ATM-Initiated Cash-Out is typically a receive amount, in which the Payer FSP is not disclosing any fees to the Payee FSP. See [Figure 34](#figure-34) for an example. In the example, the Payer would like to Cash-Out so that they will receive 100 USD in cash. The Payee FSP would like to have 1 USD in fees to cover any ATM fees and the Payer FSP would like to have 1 USD in fees. 101 USD is transferred from the Payer FSP to the Payee FSP. @@ -1574,7 +1574,7 @@ This section describes the error callbacks that are used by the server under the #### 6.3.4.1 PUT /parties/_{Type}_/_{ID}_/error -Alternative URI: **PUT /parties/_{Type}_/_{ID}_/_{SubId}_**/error** +Alternative URI: **PUT /parties/**_{Type}_/_{ID}_/_{SubId}_**/error** Logical API service: **Return Party Information Error** @@ -1781,7 +1781,6 @@ The fulfilment and condition are generated in accordance with the algorithm defi ###### Listing 12 -``` Generation of the fulfilment and condition **Inputs:** @@ -1799,7 +1798,6 @@ Generation of the fulfilment and condition - Fulfilment (32-byte binary string) - Condition (32-byte binary string) -``` **Listing 12 -- Algorithm to generate the fulfilment and the condition** @@ -2659,7 +2657,7 @@ The API data type **Enum** is a restricted list of allowed JSON String (see [Sec The API data type **UndefinedEnum** is a JSON String consisting of 1 to 32 uppercase characters including an underscore character (**\_**). -##### 7.2.3.1 Regular Expression** +##### 7.2.3.1 Regular Expression The regular expression for restricting the **UndefinedEnum** type appears in [Listing 13](#listing-13). @@ -2675,7 +2673,7 @@ The regular expression for restricting the **UndefinedEnum** type appears in [Li The API data type **Name** is a JSON String, restricted by a regular expression to avoid characters that are generally not used in a name. -##### 7.2.4.1 Regular Expression** +##### 7.2.4.1 Regular Expression The regular expression for restricting the **Name** type appears in [Listing 14](#listing-14). The restriction does not allow a string consisting of whitespace only, all Unicode32 characters are allowed, as well as the period (**.**) (apostrophe (**'**), dash (**-**), comma (**,**) and space characters ( ). The maximum number of characters in the **Name** is 128. @@ -2693,7 +2691,7 @@ The regular expression for restricting the **Name** type appears in [Listing 14] The API data type **Integer** is a JSON String consisting of digits only. Negative numbers and leading zeroes are not allowed. The data type is always limited to a specific number of digits. -##### 7.2.5.1 Regular Expression** +##### 7.2.5.1 Regular Expression The regular expression for restricting an Integer appears in [Listing 15](#listing-15).