Pay By Bank Payment
Endpoint: POST /v2/moneyins/paybybank/transfer/init
To view the diagram copy and paste the code on the following site:
title Pay By Bank
participant Customer
participant Partner
participant Lemonway_API_Public
participant Lemonway_Webkit (Webkit PHP)
participant Lemonway_API_Private (Webkit Webservice)
participant PISP
participant Banks
Partner->Lemonway_API_Public:**NEW CALL GetBankList or GET/Moneyins/transfers/**\n\nOptional : ListCountryCode
Lemonway_API_Public->PISP:GET /api/v1/providers/{market}\n\n\n
PISP->Lemonway_API_Public:{\n ...,\n "name": "se-bink-thirdpartyapp",\n ...\n}
Lemonway_API_Public->Partner:**OUTPUTS**\n\n{\n CountryCode : FR,\n ParentName : BNP,\n BankName : BNP Paribas Privée,\n logoURL : https://web.bankin.com/img/banks-logo/350_bnp.png,\n BankId : se-bink-thirdpartyapp,\n<color:#red>Filtre pro ?</color>\n}
Customer->Partner:Selects Pay by Bank & chooses his bank on the partner's page.\nIf he can't find his bank, the partner shows him an option (VIBAN/classic transfer)
Partner->Lemonway_API_Public:**NEW CALL MoneyInPayByBank or POST/v2/moneyins/transfer/PayByBank**\n\n{\n AccountId,\n amount,\n returnUrl: "http://1000mercis.fr"\n cancelUrl: "http://1000mercis.fr"\n errorUrl: "http://1000mercis.fr"\n comment, <color:#red>>> 35 characters as for moneyouts ?</color>\n CountryCode,\n BankId, (example: se-bink-thirdpartyapp)\n}
Lemonway_API_Public->Lemonway_API_Public:Check lists \n<color:#red>>> could we have the full list ? ?</color>\n- if the account is blocked\n- threshold\n- Create a new error message : Incorrect BankId
Lemonway_API_Public->Lemonway_API_Public:Create pending transaction id = 1234
Partner<-Lemonway_API_Public:http://webkit-url/?MoneyInToken=Webkit token
Customer<-Partner:url\n
Customer->Lemonway_Webkit (Webkit PHP):http://webkit-url/?MoneyInToken=Webkit token
Lemonway_Webkit (Webkit PHP)->Lemonway_API_Private (Webkit Webservice):BuildPaymentTransferForm
Lemonway_API_Private (Webkit Webservice)->PISP:**PAYMENT REQUEST**\n\n{\n "amount": 10,\n "currency": "SEK", <color:#red>>> devise compte acquéreur </color> >> errors if no bank account attached to environment + currency not supported by TINK\n "destinations": [\n {\n "accountNumber": "4578-3748", >> Lemonway\n "type": "se-pg" >>iban\n }\n ],\n "executionDate": "2019-11-20",\n "market": "SE", >> mandatory, if we provide input_provider ?\n "paymentScheme": "SEPA_CREDIT_TRANSFER",\n "recipientName": "Test AB", >> Lemonway\n "remittanceInformation": {\n "type": "OCR", <color:#red>>> check with Tink</color>\n "value": "3245928392092" >> SolutionId.TransId + Partner Comment >> nb of guaranteed characters ?\n },\n "sourceMessage": "Payment for Gym Equipment" >> Only for Sweden, leave empty\n}
Lemonway_API_Private (Webkit Webservice)<-PISP:**PAYMENT RESPONSE**\n\n{\n "id": "18408f41163f4748b87da9b9a68b6df8",\n ...\n}
Lemonway_API_Private (Webkit Webservice)->Lemonway_API_Private (Webkit Webservice):Set real_ref of 1234 to tink transaction id: 18408f41163f4748b87da9b9a68b6df8
Lemonway_API_Private (Webkit Webservice)->Lemonway_Webkit (Webkit PHP):**RESPONSE**\n\n action = https://link.tink.com/1.0/pay/\n method = GET \n content = {client_id: {YOUR_CLIENT_ID}, \n redirect_uri: http://LEMONWAY_WEBKIT_URL/payline/1234, \n market: {MARKET},\n input_provider: se-bink-thirdpartyapp, (optional)\n payment_request_id: 18408f41163f4748b87da9b9a68b6df8
Partner->PISP:https://link.tink.com/1.0/pay/?client_id={YOUR_CLIENT_ID}&redirect_uri=http://LEMONWAY_WEBKIT_URL/webhook/paybybank&scope=user:read,credentials:read&market={MARKET}&locale=en_GB&input_provider=se-bink-thirdpartyapp, &payment_request_id=18408f41163f4748b87da9b9a68b6df8
PISP->Banks:Payer is redirected to his bank
Lemonway_Webkit (Webkit PHP)<-PISP:http://LEMONWAY_WEBKIT_URL/webhook/paybybank?payment_request_id=18408f41163f4748b87da9b9a68b6df8
Lemonway_Webkit (Webkit PHP)->Lemonway_API_Private (Webkit Webservice):Confirm transaction received\nWebhookHandle (leave transaction in pending)
Lemonway_API_Private (Webkit Webservice)->PISP:** Check payment status **\n\nhttps://api.tink.com/api/v1/payments/requests/18408f41163f4748b87da9b9a68b6df8/transfers \\n -H 'Authorization: Bearer {YOUR_CLIENT_ACCESS_TOKEN}' \\n -H 'Content-Type: application/json'
Lemonway_API_Private (Webkit Webservice)<-PISP:{\n "paymentRequestCreatedTransfers": [\n {\n ...\n "status": "SENT", // CANCELLED / FAILED\n "statusMessage": "Payment is sent to your bank",\n ...\n },\n {\n ...\n }\n ]\n}
Lemonway_API_Private (Webkit Webservice)->Lemonway_API_Private (Webkit Webservice):Update status of 1234 cancelled or refused if tink is status is cancelled or failed
Lemonway_Webkit (Webkit PHP)<-Lemonway_API_Private (Webkit Webservice):WebPaymentForm { \n action url: returnUrl or cancelUrl or errorUrl \n method: GET \n}\n\n
Partner<-Lemonway_Webkit (Webkit PHP):Redirect to action url
Updated about 1 month ago