/
Flow of fiat funds

Flow of fiat funds

In current version registration of deposits and withdrawals is carried out manually by the administrator through the admin panel.

1. Deposit flow

Current flow:

Administrator from AdminPanel sends following mutation

type Mutation { adminDeposit( currencyId: String!, paymentInterfaceId: String!, address: String!, amount: Float!, documentId: String ): String }

Service "paymentGateway" receive this mutation and call action “processTransaction” of service "paymentGateway"

await ctx.call('paymentGateway.processTransaction', { txid: String(ctx.params.documentId || new Date().getTime()), // # bank transaction or if it is Null - unix time amount: Number(ctx.params.amount), // deposit amount paymentInterfaceId: piId, // fiat payment interface ID currencyId: ctx.params.currencyId, // deposit currency ID address: ctx.params.address, // user ref No });

Deposit flow without administrator participation:

To do this, in the payment interface it is necessary to implement the receipt of information from the bank. And if a deposit has arrived from the client, call the action processTransaction of service “paymentGateway” with parameters:

  • txid - String - original bank document ID

  • amount - Number - amount of payment

  • paymentInterfaceId - String

  • currencyId - String

  • address - String - user refNo from payment description

Example call:

await ctx.call('paymentGateway.processTransaction', { txid: String(documentId), amount: Number(amount), paymentInterfaceId: 'FIAT-PI', currencyId: 'EUR', address: 'C03457' // user ref No });

If the bank uses webhooks following docs can be used https://moleculer.services/docs/0.12/moleculer-web.html

Or use schedule for receive bank statement and analyse it.

2. Withdrawal flow

Current flow:

N.B. Set minimum withdrawal amount = 0 for Currency/Bank-PI. This will definitely pause the withdrawal operation until the administrator approves it.

Withdrawal flow without administrator participation:

You need to add a code to the action {Bank-PI}.transfer - send new payment to bank

Related content

Enduser Guides & Docs
Enduser Guides & Docs
More like this
Frontend Queries, Mutations and Subscriptions
Frontend Queries, Mutations and Subscriptions
Read with this
Deposit to Proxy address
Deposit to Proxy address
More like this
Developer Guides
Developer Guides
Read with this
Using networks for deposits & withdrawals
Using networks for deposits & withdrawals
More like this
Auth Service
Read with this