0.0.1 • Published 3 years ago

ut-transfer v0.0.1

Weekly downloads
5
License
Apache-2.0
Repository
-
Last release
3 years ago

UT Transfer

Scope

Integrations

Implement the business logic for reliable transfers, while integrating with the following modules:

  • Anti Money Laundering module (ut-aml)
  • Alerts and notifications module (ut-alert)
  • Rules module (ut-rule)
  • Core Banking System
  • ATM module (ut-atm)
  • POS module (ut-pos)
  • Utility companies for bill payments
  • Mobile Network Operators for top up
  • EFT switches via ISO 8583
  • Card transactions pre-processing module (ut-ctp)

Transfer types

The following minimum set of transfer types should be supported:

  • cash in / deposit
  • cash out / withdrawal
  • funds transfer / push transfer to own account
  • funds transfer / push transfer to account in the same ledger
  • funds transfer / push transfer to account in foreign ledger
  • mobile airtime top up
  • bill payment
  • cheque deposit / payment / etc...
  • loan disbursement
  • loan repayment
  • currency exchange
  • group collection sheet
  • sale
  • receive money
  • till transactions

Pending transactions

Standing / scheduled / periodic transactions

Enquiries

  • balance
  • mini statement

Reversals

Reconciliation

Settlement

Store And Forward (SAF) / Stand-in mode

API

Definitions

  • Acquirer - the front end that captured the transfer parameters, for example:
    • agent application
    • teller application
    • end user application
    • ATM
    • POS
  • Issuer - the institution of the account holder of the source account of the transfer, for example:
    • local core banking system
    • remote core banking system
  • Merchant - third party participating in the transfer, for example:
    • MNO
    • electricity company
    • ISP
    • cable operator
    • retailer

transfer.push.execute(params)

  • params.transferType - type of the transfer. Transfer types are items in the core.itemName table, with itemTypeId pointing to table core.itemType and row with alias='operation'. The follwing values for core.itemName.itemTypeCode are predefined:
    • deposit - Deposit / cash in
    • withdraw - Withdraw / cash out
    • withdrawOtp - Withdraw with OTP
    • transfer - Funds transfer to account
    • transferOtp - Funds transfer with OTP
    • balance - Balance enquiry
    • ministatement - Mini statement enquiry
    • topup - Top up
    • bill - Bill payment
    • sale - Sale
    • sms - SMS registration
    • changePin - PIN change
    • loanDisburse - Loan disbursement
    • loanRepay - Loan repayment
    • forex - Foreign currency exchange
  • params.transferIdAcquirer - id assigned to the transfer by the acquirer
  • params.transferDateTime - the time transfer was recorded in the database
  • params.channelId - actor id of the channel
  • params.channelType - type of the channel: atm, pos, teller, agent,
  • params.ordererId - id of the actor ordering the transaction. In case of card transaction this is the card holder.
  • params.merchantId - identifier of the merchant (partnerId from the transfer.partner table)
  • params.merchantInvoice - identifier suitable to be sent to the merchant for processing the operation. In addition to invoice number, can also be phone number, contract numner, etc.
  • params.merchantType - type of merchant (for ISO use)
  • params.cardId - card id of the card (in case of card transaction)
  • params.sourceAccount - account number of the source account
  • params.destinationAccount - account number of the destination account
  • params.issuerId - identifier of the issuer (partnerId from the transfer.partner table)
  • params.ledgerId - identifier of the ledger, where transfer should also be posted (defaults to 'cbs')
  • params.transferCurrency - alphabetic currency code
  • params.transferAmount - amount of the transfer
  • params.acquirerFee - fee to be paid to the acquirer, debited from the source account in addition to the transfer amount
  • params.issuerFee - fee to be paid to the issuer, debited from the source account in addition to the transfer amount
  • params.transferFee - fee to be paid to the switch, debited from the source account in addition to the transfer amount
  • params.description - text description for the transfer
  • params.udfAcquirer - additional user defined fields related to the acquirer. Example of such fields are:
    • terminalId - ATM/POS terminal id, ISO 8583 field 41
    • identificationCode - ISO 8583 field 42r
    • terminalName - name and location of the terminal, ISO 8583 field 43
    • opcode - ATM operation code buffer
    • processingCode - ISO 8583 field 3
    • merchantType - ISO 8583 field 18
    • institutionCode - ISO 8583 field 32
  • params.udfIssuer - additional user defined fields related to the issuer
  • params.udfTransfer - additional user defined fields related to the transfer

Upon success returns similar result object with the following additional fields:

  • result.transferId - id assigned to the transfer in the transfer module database
  • result.transferTypeId - id of the transfe type
  • result.localDateTime - same as transferDateTime, but formatted as YYYYMMDDhhmmss
  • result.balance - balance of the source account after successful completion
  • result.transferIdIssuer - id assigned to the transfer by the issuer
  • result.transferIdMerchant - id assigned to the transfer by the merchant

In addition the following fields are maintained in the database

  • expireTime - time at which the transfer can be reversed if not yet completed
  • expireCount - number of reversal attempts
  • reversed - set to 1 for reversed accounts
  • retryTime - time of the last retry (store and forward)
  • retryCount - count of retries (store and forward)
  • issuerTxState - transfer state at issuer
  • acquirerTxState - transfer state at acquirer
  • merchantTxState - transfer state at merchant
  • issuerErrorType - error type that happened when executing the operation at the issuer
  • issuerErrorMessage - error message returned when the executing the operation at the issuer
  • reversalErrorType - error type that happened when reversing the operation at the issuer
  • reversalErrorMessage - error message returned when the reversing the operation at the issuer
  • acquirerErrorType - error type that happened when executing the operation at the acquirer
  • acquirerErrorMessage - error message returned when the executing the operation at the acquirer
  • merchantErrorType - error type that happened when processing at the merchant
  • merchantErrorMessage - error message returned when the executing the operation at the merchant
0.0.1

3 years ago

6.32.0-agency.0

5 years ago

6.27.2-accu.7

5 years ago

6.31.2

5 years ago

6.31.1

5 years ago

6.31.0

5 years ago

6.28.2-ib.2

5 years ago

6.30.0

5 years ago

6.29.7

5 years ago

6.27.2-accu.6

5 years ago

6.29.6

5 years ago

6.29.5

5 years ago

6.29.4

5 years ago

6.27.2-accu.5

5 years ago

6.27.2-accu.4

5 years ago

6.27.2-accu.3

5 years ago

6.29.3

5 years ago

6.29.2

5 years ago

6.27.2-accu.2

5 years ago

6.29.1

5 years ago

6.29.0

5 years ago

6.28.7

5 years ago

6.27.2-accu.1

5 years ago

6.28.6

5 years ago

6.28.5

5 years ago

6.28.4

5 years ago

6.28.3

5 years ago

6.28.2

5 years ago

6.28.2-ib.1

5 years ago

6.28.1

5 years ago

6.28.0

5 years ago

5.5.1-mpay.3

5 years ago

6.27.2-accu.0

5 years ago

6.27.1

5 years ago

5.5.1-mpay.2

5 years ago

5.5.1-mpay.1

5 years ago

5.5.1-mpay.0

5 years ago

6.27.0

6 years ago

6.26.1

6 years ago

6.26.0

6 years ago

6.7.5-nbv.18

6 years ago

6.7.5-nbv.17

6 years ago

6.7.5-nbv.16

6 years ago

6.25.0

6 years ago

6.7.5-nbv.15

6 years ago

6.24.1

6 years ago

6.24.0

6 years ago

6.23.1

6 years ago

6.23.0

6 years ago

6.7.5-nbv.14

6 years ago

6.7.5-nbv.13

6 years ago

6.7.5-nbv.12

6 years ago

6.7.5-nbv.11

6 years ago

6.7.5-nbv.10

6 years ago

6.22.0

6 years ago

6.21.0

6 years ago

6.7.5-nbv.8

6 years ago

6.7.5-nbv.7

6 years ago

6.7.5-nbv.6

6 years ago

6.7.5-nbv.5

6 years ago

6.20.0

7 years ago

6.15.11-mc.1

7 years ago

6.20.0-rc.2

7 years ago

6.7.5-nbv.4

7 years ago

6.15.11-mc.0

7 years ago

6.7.5-nbv.3

7 years ago

6.20.0-rc.1

7 years ago

6.20.0-rc.0

7 years ago

6.7.5-nbv.2

7 years ago

6.7.5-nbv.1

7 years ago

6.7.5-nbv.0

7 years ago

6.15.10

7 years ago

6.15.9

7 years ago

6.19.1

7 years ago

6.19.0

7 years ago

6.19.0-wp3.1

7 years ago

6.18.1

7 years ago

6.18.0

7 years ago

6.17.4

7 years ago

6.17.3

7 years ago

6.17.2

7 years ago

6.18.0-wp3.0

7 years ago

6.17.1

7 years ago

6.17.0

7 years ago

6.16.0

7 years ago

6.15.8

7 years ago

6.15.7

7 years ago

6.15.6

7 years ago

6.15.5

7 years ago

6.15.4

7 years ago

6.15.3

7 years ago

6.15.2

7 years ago

6.15.1

7 years ago

6.15.0

7 years ago

6.14.2

7 years ago

6.14.1

7 years ago

6.14.0

7 years ago

6.13.6

7 years ago

6.13.5

7 years ago

6.13.4

7 years ago

6.13.3

7 years ago

6.13.3-joiFix.0

7 years ago

6.13.2

7 years ago

6.13.1

7 years ago

6.13.0

7 years ago

6.12.6

7 years ago

6.12.5

7 years ago

6.12.4

7 years ago

6.12.3

7 years ago

6.12.2

7 years ago

6.12.1

7 years ago

6.12.0

7 years ago

6.11.6

7 years ago

6.11.5

7 years ago

6.11.4

7 years ago

6.11.3

7 years ago

6.11.2

7 years ago

6.11.1

7 years ago

6.11.0

7 years ago

6.10.10

7 years ago

6.10.9

7 years ago

6.10.8

7 years ago

6.10.7

7 years ago

6.10.6

7 years ago

6.10.5

7 years ago

6.10.4

7 years ago

6.10.3

7 years ago

6.10.2

7 years ago

6.10.1

7 years ago

6.10.0

7 years ago

6.9.5

7 years ago

6.9.4

7 years ago

6.9.3

7 years ago

6.9.2

7 years ago

6.9.1

7 years ago

6.9.0

7 years ago

6.8.1

7 years ago

6.8.0

7 years ago

6.7.4

7 years ago

6.7.3

7 years ago

6.7.2

7 years ago

6.7.1

7 years ago

6.7.0

7 years ago

6.6.9

7 years ago

6.6.8

7 years ago

6.6.7

7 years ago

6.6.6

7 years ago

6.6.5

7 years ago

6.6.4

7 years ago

6.6.3

7 years ago

6.6.2

7 years ago

6.6.1

7 years ago

6.6.0

7 years ago

6.5.2

7 years ago

6.5.1

7 years ago

6.5.0

7 years ago

6.4.1

7 years ago

6.4.0

7 years ago

6.3.1

7 years ago

6.3.0

7 years ago

6.2.0

7 years ago

6.1.1

7 years ago

6.1.0

7 years ago

6.0.3

7 years ago

6.0.2

7 years ago

6.0.1

7 years ago

6.0.0

7 years ago

5.17.3

7 years ago

5.17.2

7 years ago

5.17.1

7 years ago

5.17.0

7 years ago

5.16.1

7 years ago

5.16.0

7 years ago

5.15.5

7 years ago

5.15.4

7 years ago

5.15.3

7 years ago

5.15.2

7 years ago

5.15.1

7 years ago

5.15.0

7 years ago

5.14.2

7 years ago

5.14.1

7 years ago

5.14.0

7 years ago

5.13.0

7 years ago

5.12.0

7 years ago

5.11.14

7 years ago

5.11.13

7 years ago

5.11.12

7 years ago

5.11.11

7 years ago

5.11.10

7 years ago

5.11.9

7 years ago

5.11.8

7 years ago

5.11.7

7 years ago

5.11.6

7 years ago

5.11.5

7 years ago

5.11.4

7 years ago

5.11.3

7 years ago

5.11.2

7 years ago

5.11.1

7 years ago

5.11.0

7 years ago

5.10.3

7 years ago

5.10.2

7 years ago

5.10.1

7 years ago

5.10.0

7 years ago

5.9.2

7 years ago

5.9.1

7 years ago

5.9.0

7 years ago

5.8.0

7 years ago

5.7.3

7 years ago

5.7.2

7 years ago

5.7.1

7 years ago

5.7.0

7 years ago

5.6.0

7 years ago

5.5.33

7 years ago

5.5.32

7 years ago

5.5.31

7 years ago

5.5.30

7 years ago

5.5.29

7 years ago

5.5.28

7 years ago

5.5.27

7 years ago

5.5.26

7 years ago

5.5.25

7 years ago

5.5.24

7 years ago

5.5.23

7 years ago

5.5.22

7 years ago

5.5.21

7 years ago

5.5.20

7 years ago

5.5.19

7 years ago

5.5.18

7 years ago

5.5.17

7 years ago

5.5.16

7 years ago

5.5.15

7 years ago

5.5.14

7 years ago

5.5.13

7 years ago

5.5.12

7 years ago

5.5.11

7 years ago

5.5.10

7 years ago

5.5.9

7 years ago

5.5.8

7 years ago

5.5.7

7 years ago

5.5.6

7 years ago

5.5.5

7 years ago

5.5.4

7 years ago

5.5.3

7 years ago

5.5.2

7 years ago

5.5.1

7 years ago

5.5.0

7 years ago