Sorry - either this article does not exist or you haven't been given permission to view it.
Knowledgebase

Support Desk

We have a dedicated in-house support team ready to help with all your enquiries on any of our products.

  •          Application & Services - All products in our RemitONE suite.
  •          Accounts & Billing - Get help with your accounts, subscriptions and payments.

Our technical support team are readily available to help with all your Money Transfer Engine (MTE) related issues and enquiries. They can be reached via the following contact:

Online Helpdesk: https://support.remitone.com/

Telephone: +44 (0)20 8099 5795

Telephone support is provided to customers on Professional & Enterprise Editions only, please consult your agreement if you are unsure if you qualify for telephone support.

 

 

Loyalty Points - Refer and Earn

This feature allows to enable a referral code for remitter in the registration process and assign a number of loyalty points, which will be assigned to the referral member as soon as the newly-registered remitter will be verified manually or automatically.

Activation

In Configuration Settings search for CONFIG_ENABLE_REMITTER_REFERRAL_CODE and change its value to True.

After this, in ARM, in the page for Loyaylty Points, it is possible to assign a certain number of loyalty points to assign for a successful referral for each source country.

More than that, in config_notification.json add the following sections for non-realtime subscribers:


"VERIFY_REMITTER": [
    "business/remitter/SuccessfulReferralEmailEventSubscriber"    
],
"CREATE_REMITTER": [
    "business/remitter/SuccessfulReferralEmailEventSubscriber"    
]

These subscriber will send an emal to the referral membe,r to notify that they got loyalty points for referring someone.

At the end of the file, also, add the following section, to activate the cron job connected to this subscriber.


    "SUCCESSFUL_REFERRAL_CRON": {
        "enabled": true,
        "frequency": "*/15 * * * *"
    }

If the client has got already a set of existing remitters already registered, you can create a referral code for each of them by running the following script


    php bin/console scripts:members-referral-code-creation

How it works

After this settings has been enabled, a new field Referral Code will be displayed in ORM, in the registration form.

This field is not mandatory but, if a code is provided, this code will be validated and checked against any existing registered member.

The code can also be provided in the query string of the url, when a remitter is typically sharing their referring code with friends and family; a shared code will have the form

<orm_url>/registraton?ref=<referral_code>

When the remitter will be verified, an event will be enqueued for the verification, and an email will be sent to the referral member, as previously mentioned.

During the registration process, a referral code will be automatically generated for the newly-registered remitter; this code is visible in ARM (member profile page), ORM (profile page) and in WS and RWS, in the calls to return the profile of a specific remitter.

In ORM, in the profile page, the logged remitter will be able to see also the full url to share to friends and family.

Please note that

  • In ARM the referral code of a remitter is not editable by any user
  • In ORM the referral code textfield is editable only when a code is not provided via GET parameter in the registration page; if a code is provided via url, then the textfield will be readonly

This integration involves the following parts :

  • Middleware Configuration
  • MTMS Configuration

Middleware Configuration

From the Middleware the steps are as follows:

Middleware Setup

Terrapay API Base URL

UAT: https://uat-connect.terrapay.com:21211/ 

Production: https://connect.terrapay.com:21211/

Please make sure to update .env.local file in the hydra system as below for production URL update. This is a ONE time setup only.

//ssh into Hydra production 

ssh hydra@rayyanuk.remitone.com
cd public_hydra/current
vi .env.local

###> Application ###
TERRAPAY_BASE_API_URL=https://connect.terrapay.com:21211/
###< Application ###

1.1. Create a client connected to the MTMS system

To create a new client, you have to log into the middleware, go to the Clients menu from the sidebar, click on "Add Client" and fill the fields in. The URL is the URL of the MTMS system to pull the transactions from.

1.2. Create an association between the client and the integration, and set the correct values for the configuration parameters

Go to the Client Integrations menu from the sidebar then click on Add Client Integrations.

On the next screen, select the Client and Integration.

Create a super bank in any of the countries that the client wants for Terrapay.

Create a web service user for this super bank and add it to the next step.To do so, connect as admin in ARM, go to Admin menu Web Service Users and click on Add Web Service User. Give all the permissions. Make sure to make a note of the username and password we need this in the next step.

Afterward, set the right values in the textareas:

(Client Auth Configs will host the information relative to the web service user that will connect to the MTMS system, Integration Configs will have the parameters to export the transactions to Terrapay.)

Client Configs - MTMS Web Service User configs

{
  "ws_auth": {
    "pin": 12345,
    "password": "XXX",
    "username": "XXX",
    "super_bank": true
  },
  "two_step_cancellation": {
    "enabled": false,
    "transition_state": "DELETED"
  }
}

Integration Configs - Terrapay Configs

{
  "headers": {
    "X-PASSWORD": "XXX",
    "X-USERNAME": "XXX",
    "X-ORIGINCOUNTRY": "XXX"
  },
  "organisation_prefix": "XXX",
  "settlement_currency": "XXX"
}

The X-PASSWORD and X-USERNAME fields will be provided by Terrapay.

X-ORIGINCOUNTRY corresponds to the ISO code of the source country, which in this case is GN (Guinea).

organisation_prefix corresponds to the client's name prefix for Terrapay in this integration. You can call it WelyWely

As for settlement_currency, it refers to the source currency code, which will default to "EUR" for this integration.

Tick the enabled checkbox to activate the association.

To finish, click the Create button on the top right corner.

 

1.3 Create an Middleware API user to connect from MTMS to Middleware

Go to the API Users menu from the sidebase then click on Add API User.

On the screen, select the Client Integration created from Step 1.2 above.

Then provide a desired username and password. Please make sure provide a strong password. And finally click Enabled tick box to enable the API user. Keep these details handy as you will need them.

Please make sure ROLE_API_USER is selected.

To finish, click the Create button on the top right corner.

 

MTMS Configuration

2.1. Configuring entities

Supported Transfer Types

  • Account transfer
  • Mobile Transfer

To configure the MTMS for the Terrapay integration, you need to import entities from Middleware system. The middleware system will import entities from Terrapay and send to MTMS system to create necessary delivery entities.

NOTE: Terrapay operates on different corridors and before you setup the integration please check with client and get a list of supporter destination countries required for this integration, if you have not done so already.

// Supported countries - BF, CM, SN, CI, FR, ES, CA, US, TN, EG, MA

To run entity import configure the Terrapay config under MTMS custom/config/config_3rdparty.json. Sample config as follows

"CONFIG_TERRAPAY": {
        "enabled": true,
        "processing_bank_prefix": "TERRAPAY-",
        "entity_import_countries": ["SN"],
        "hydra_credentials": {
          "base_url": "https://hydra.remitone.com/api/",
          "username": "XXX",
          "password": "XXX"
        }
    }

Please update the config as necessary. The entity_import_countries are the supported countries mentioned above. You can set array of countries here.

The hydra credentials are the API user credentials for the middleware. You need to setup the integration and create an API user and use those configs to update here in MTMS. (step 1.3)

Enable following UI settings. CONFIG_FORMS_BASE

Hydra Base URl

Test: https://hydratest.remitone.com/api/

Production: https://hydra.remitone.com/api/

To import the entities, please type the following command on terminal : 

php bin/integration terrapay:import-entities

Once you import the entities please make sure to check entities are imported correctly and have data as follows.


The entity import command will automatically create Proc banks and necessary delivery entities based on the results of Terrapay API results. You can see the logs in logs/terrapay_import_entities.log

2.2. Link the new proc banks to the super bank

The new proc banks that were imported will need to be linked to the super bank we created in step 1.2.

For all the countries that we imported entities for we will need to edit the proc bank and add the super bank as their parent bank.

2.3. Update state machine configurations

To update all the Terrapay transactions to HQ_OK, add a record to custom/config/config_state_machine.json under modify_state_machine

{
  "modify_state_machine": {
     "BANKS_TO_HQOK": [
        "TERRAPAY-"
     ]
   }

}

2.4. Realtime ABORT Subscriber 

Terrapay integration required realtime transaction ABORT subscriber to delete the transaction at partner level. Please enable the subscriber under custom/config/config_notifications.json as follows

{
    "CONFIG_NOTIFICATION":{
       // real-time subscriptions :
       "realtime_subscriptions":{
          "ABORTED_TRANSACTION": [
            "remitone\\integration\\Terrapay\\TerrapayRealtimeDeleteTransactionSubscriber"
          ]
            }
       }
}

make sure to update the configs after the changes, php config_update.php

2.5. Update System settings

Please make sure following options to be enabled/true.

If the cron jobs are running automatically, transactions pulled from the MTMS will be visible in the Transactions menu.

Al Habib Hydra Integration
 
  1. Go to Client Integrations (Hydra)
    1. Select Al-Habib as the integration
    2. Complete the configuration setup required
  2. Go to API Users (Hydra)
    1. Select the Client Integration that you just created
    2. Create a username and password
  3. Go to the backend of the clients system (server)
    1. Copy over CONFIG_ALHABIB from 3rdparty.json.in to 3rdparty.json
    2. Add the hydra credentials to that config, the username and password that you created in step 3 is what should be entered here
  4. In the project root folder, run the following command (server)
    1. php bin/integration alhabib:import-entities
  5. Go to the Clients R1 System (R1 Front End)
    1. Add a WS_User, this needs to be a Bank user that is linked to Al-Habib Processing Bank that has been created
  6. Go to Client Integrations (Hydra)
    1. Add the WS_User to the details you created in Step 1
  7. Add the Processing Bank to the BanksToHQOK setting in config_state_machine.json
  8. Enable the following configurations in System Configuration Settings:
    1. BANK_SEE_SOURCE_DETAILS
    2. BANK_SEE_FULL_SOURCE_DETAILS
    3. BANK_SEE_SOURCE_AMOUNT_DETAILS
  9. Also need to enable the "View unprocessed Cash Collection Transactions" setting on the Al-Habib processing bank.

Mastercard Corporate Remitters via File Upload


This guide should give you information on how to setup file upload for mastercard corporate remitters. This is mainly being used by JMMB at the moment but it may be used by anyone else later. This guide will be tailored to how it is set-up according to JMMB's wishes.


Client Side Setup (This is the instructions that the client is meant to follow)

  1. Enable batch reference of transactions.
    • CONFIG_TAG_BATCH_UPLOAD_TRANSACTIONS
    • Enable the above configuration setting in System Configuration Settings
  2. Whenever they add another Corporate Remitter, They should inform R1 of the Agent it is linked to so we can perform the below setup.

RemitONE Side Setup

  1. In config_3rdparty.json, do the following:
    • CONFIG_FILE_IMPORT
      1. Ensure the configuration setting is enabled
      2. Add the agents provided by the client to the following settings
        • "agent_auto_submit": set to false
        • "agent_import_class": set to TransFast
  2. In config_state_machine.json, do the following:
    • In the CREATE_TRANSACTION state
      1. "agent_name=[agent_provided_by_client]":{
            "TRANSACTION_CREATE_SUCCESS_ROUTED":"ENTERED",
            "TRANSACTION_CREATE_SUCCESS_ROUTED_TO_BRANCH":"ENTERED",
            "TRANSACTION_CREATE_SUCCESS_NOT_ROUTED":"ENTERED",
            // dont change:
            "TRANSACTION_CREATE_SUCCESS_PENDING_CLEARANCE":"ENTERED",
            // should not be beyond AGENT_OK:
            "TRANSACTION_CREATE_SUCCESS_ADMIN_CHECK_REQUIRED":"ENTERED"
        },
    • In the TRANSACTION_PAYMENT_CLEARED state
      1. "agent_name=[agent_provided_by_client]":{
            "PAYMENT_CLEARED_SUCCESS_ADMIN_CHECK_REQUIRED":"AGENT_OK",
            // should not be further than AGENT_OK :
            "PAYMENT_CLEARED_SUCCESS_NOT_ROUTED":"AGENT_OK",
            // should not be further than SENT_FOR_PAY :
            "PAYMENT_CLEARED_SUCCESS_ROUTED":"HQ_OK",
            // should not be further than SENT_FOR_DELIVERY 
            "PAYMENT_CLEARED_SUCCESS_ROUTED_TO_BRANCH":"HQ_OK"
        },
        "proc_bank=MASTERCARD":{
            "PAYMENT_CLEARED_SUCCESS_ADMIN_CHECK_REQUIRED":"AGENT_OK",
            // should not be further than AGENT_OK :
            "PAYMENT_CLEARED_SUCCESS_NOT_ROUTED":"AGENT_OK",
            // should not be further than SENT_FOR_PAY :
            "PAYMENT_CLEARED_SUCCESS_ROUTED":"HQ_OK",
            // should not be further than SENT_FOR_DELIVERY :
            "PAYMENT_CLEARED_SUCCESS_ROUTED_TO_BRANCH":"HQ_OK"
        },
    • In the AGENT_SUBMIT_TRANSACTION state
      1. "agent_name=[agent_provided_by_client]":{
            "AGENT_SUBMIT_SUCCESS_NOT_ROUTED":"PENDING_CLEARANCE",
            "AGENT_SUBMIT_SUCCESS_ROUTED":"PENDING_CLEARANCE",
            "AGENT_SUBMIT_SUCCESS_ROUTED_TO_BRANCH":"PENDING_CLEARANCE",
            // dont change
            "AGENT_SUBMIT_SUCCESS_ADMIN_CHECK_REQUIRED":"PENDING_CLEARANCE"
        },
    • In the ADMIN_CHECK_COMPLIANCE state
      1. "agent_name=[agent_provided_by_client]":{
            "ADMIN_CHECK_COMPLIANCE_SUCCESS":"AGENT_OK",
            "ADMIN_CHECK_COMPLIANCE_SUCCESS_ROUTED":"HQ_OK",
            "ADMIN_CHECK_COMPLIANCE_SUCCESS_ROUTED_TO_BRANCH":"HQ_OK"
        },
    • In the ERROR_CORRECT_TRANSACTION state
      1. "agent_name=[agent_provided_by_client]":{
            "ERROR_CORRECTION_NOT_ROUTED":"AGENT_OK",
            // HQ_OK, SENT_FOR_PAY:
            "ERROR_CORRECTION_NEW_BANK_NO_BRANCH":"HQ_OK",
            // HQ_OK, SENT_FOR_PAY, SENT_FOR_DELIVERY :
            "ERROR_CORRECTION_NEW_BANK_AND_BRANCH":"HQ_OK",
            //HQ_OK, HQ_OK_PAID, SENT_FOR_PAY, SENT_FOR_DELIVERY :
            "ERROR_CORRECTION_SAME_BANK_SAME_BRANCH":"HQ_OK",
            //HQ_OK, HQ_OK_PAID, SENT_FOR_PAY :
            "ERROR_CORRECTION_SAME_BANK_NO_BRANCH":"HQ_OK",
            //HQ_OK, HQ_OK_PAID, SENT_FOR_PAY, SENT_FOR_DELIVERY :
            "ERROR_CORRECTION_SAME_BANK_NEW_BRANCH":"HQ_OK",
            //HQ_OK
            "ERROR_CORRECTION_SAME_BANK_NOT_ACCEPTED":"HQ_OK"
        },
    • In the BANKS_TO_HQOK setting, remove MASTERCARD-

Transaction Workflow

Client

  1. Corporate Remitter will upload transaction (Limited_Agent User)
  2. Transactions should go to ENTERED status
  3. Parent Agent for Limited_Agent -> they approve from ENTERED --> PENDING_CLEARANCE

Back Office

  1. Approve Payments (PENDING_CLEARANCE -> HQ_OK)
  2. Mastercard cron job should run and release the transactions on Mastercard (HQ_OK -> SENT_FOR_PAY)
  3. Transactions flow as normal from here

Other Configuration Settings that may be used

  1. TWO_STEP_PAYMENT_CLEARANCE in System Configuration Settings
  2. CONFIG_MAIN_LOGO_2 in config.json
  3. CONFIG_SINGLE_EMAIL_ON_BATCH_UPLOAD in config_notification.json, remember to add the notification to realtime_subscription too
  4. Corporate Agent/Remitter can assign their own logo to see when logging in on the parent agent profile.

Add New Agent to ClearBank Account (USI)

I have recorded video guide how to do this when USI request to add an agent to the ClearBank account.

NOTE: Please make sure to disable the clear bank account management after the change you make.

Clearbank-add-new-agent-to-cb-account2025-05-22.mp4

Before we start:

Before you can start the integration you need a to get a few details from the customer.

1. Get the Live API credentials for MTN Liberia API

2. Create the Proc bank and Mobile network operator.

MTMS Configuration

1.1. Configuring entities 

MTN allows mobile transfers in Liberia.

To configure the MTMS for the MTN integration, the following entities need to be created.

  • a processing bank for Liberia,
  • A Mobile Network Operator (MNO)

Supported Transfer Types

  • Mobile transfer

1.2. Web Service user

A web service user needs to be created for the processing bank. 

To do so, connect as admin in ARM, go to Admin menu → Web Service Users and click on Add Web Service User. Give all the permissions. Make sure to make a note of the username and password we need this to update Middleware system

1.3. Update state machine configurations

To update all the WHISH transactions to HQ_OK, add a record to custom/config/config_state_machine.json under modify_state_machine

{
    "modify_state_machine": {
        "BANKS_TO_HQOK": [
            "MTNLBR-"
        ]
    }
}

1.4. Update System settings

Please make sure following options to be enabled/true.

Middleware Configuration

From the Middleware the steps are as follows:

Middleware Setup

1.1. Create a client connected to the MTMS system

To create a new client, you have to log into the middleware, go to the Clients menu from the sidebar, click on "Add Client" and fill the fields in. The URL is the URL of the MTMS system to pull the transactions from.

1.2. Create an association between the client and the integration, and set the correct values for the configuration parameters

Go to the Client Integrations menu from the sidebar then click on Add Client Integrations.

On the next screen, select the Client and Integration.

Afterward, set the right values in the textareas:

(Client Auth Configs will host the information relative to the web service user that will connect to the MTMS system, Integration Configs will have the parameters to export the transactions to MTN Liberia.)

Client Auth Configs - MTMS Web Service User configs

{
    "ws_auth": {
        "pin": 12345,
        "password": "XXXXXXXXX",
        "username": "XXXXXXXXX",
        "super_bank": false
    },
    "two_step_cancellation": {
        "enabled": false,
        "transition_state": "DELETED"
    }
}

Integration Configs

{
  "password": "XX",
  "username": "XX",
  "X-Callback-Url": "XXX",
  "X-Target-Environment": "mtnliberia",
  "Ocp-Apim-Subscription-Key": "XX"
}

The username, password and X-Target-Environment and Ocp-Apim-Subscription-Key fields will be provided by MTN.

Add the Processing bank prefix what you have created in MTMS for MTN.

Tick the enabled checkbox to activate the association.

To finish, click the Create button on the top right corner.

If the cron jobs are running automatically, transactions pulled from the MTMS will be visible in the Transactions menu.

This feature allows an MTO to capture signatures from the remitter and/or beneficiary on transaction creation and/or payout at an agent.

Setup

To enable transaction signatures, you have to enable the following configurations in config.json

Signature Type/Method

This setting allows you to choose which type or method of signature will be used for capturing the signature from the user.

"TRANS_SIGNATURE_UPLOAD_TYPE": "EmailLink", 

// ["ImageUpload", "Topaz", "EmailLink"] Only acceptable signature upload type
  1. ImageUpload
    • This allows the upload of an image as a signature onto the transaction
  2. Topaz
  3. EmailLink
    • This sends an email to the customer, the customer then clicks the link in the email
    • This link will open up a page in the browser where they sign in a box
    • They save the signature and then that is it from the customer.

Signature Field Settings

These settings specify how the signature field(s) is configured on transaction creation and/or payout and whether it is a required field or optional.

"TRANS_SIGNATURE_SETTINGS": {
      "create": {
          "display": true,
          "required": false,
      },
      "payout": {
          "display": true,
          "required": false,
      }
},
  1. Create
    • This will add the signature box on the Confirm Transaction screen.
    • You can set display/required to true or false
  2. Payout
    • This will add the signature box on the Payout Cash Collection screen.
    • You can set display/required to true or false

In config.json, add the following configuration from config.json.in

"CONFIG_LOYALTY_POINTS": {
	"enabled":true,
	"show_fields": {
		"points": true,
		"monetary_value": true,
	},
	"discount_type":"total_to_pay", // can only be [fees] (discount on total_charges only) or [total_to_pay] (discount on remitter to pay amount)
	"allow_use_with_promotions":false,
	"allow_multiple_loyalty_point_rules":false,
},
Enabling the configuration will allow clients to setup the loyalty points so that customers can now earn loyalty points using the Loyalty Points Rules
in Admin -> Set Loyalty Points.
discount_type - The loyalty points discount can be applied to either just the fees ("fees") or on the full total to pay amount ("total_to_pay").
show_fields.points & show_fields.monetary_value:
For how the user specifies the amount of discount to apply, we have two options. This is selected by setting either the show_fields.points or show_fields.monetary_value to true. Please note it is possible to set both of these to true but this is not recommended as this will be confusing for users. Also one of these must be set to true otherwise the user will not be able to apply loyalty points discount.
1. User specifies the number of loyalty points to use and the system converts the points to the amount the client has set and allows a discount using the points.
2. User specifies the monetary amount of discount to apply and the system converts the amount the customer wishes to discount to the amount of points that discount would equate to. Please note if the amount entered by the user coverts to a decimal number for the points then the system will round the points to a whole number and adjust the amount based on the rounded number of points.
 
allow_use_with_promotions: The allow use with promotions is to allow discount with the loyalty points and promotion codes
allow_multiple_loyalty_points_rules: The allow multiple loyalty point rules allows the customer to earn many loyalty points if the transaction they do triggers multiple rules.

  1. Setup the LIVE_ID_VERIFICATION configuration in config_3rdparty.json as follows, this config can be copied over from config_3rdparty.json.in
    • "LIVE_ID_VERIFICATION": {
              "enabled": enabled,
              "service_provider": "Sikoia Live ID Verification", // Live ID Service Provider, the name here should match the name of the service provider in LiveIDVerificationFactory.php
              "service_provider_name": "SIKOIA", // GBG, VERIFF, SIKOIA
              "verify_remitter_on_registration": false,
              "verify_remitter_with_document_verification": false, // will also carry out document verification for the remitter on registration, along with the liveness check
              "default_restricted_countries":  ["DE", "CY"], // Default restricted countries for all agents. Keep the list empty if no restricted country required
              "agents":  {
                "0001": {
                  "restricted_countries":  [] // Restricted countries for this agent. Keep the list empty if no restricted country required
                }
              },
              "max_retry_attempts": 3, //this is the number of times the system will retry the verification process if it FAIL/REFER
              "retry_time_period": "24 hours", //User can retry max_retry_attempts with in this time period
              "review_status_settings": { //when REFER/REVIEW status returned from LiveID service
                    "send_email_on_review": false,
                    "email_addresses": ["test@test.com"], //email address of admins who want to receive review email
                    "creation_channels": ["RemitterWebService"]
              },
              "require_id2_scan_on_verification_failure": false, //if true, the system will require the user to scan the ID2 document if the verification fails
      		"has_webhook": true, // if true, the id verification service has a webhook enabled and linked to the application,
      		"ARM": {
      			"enabled": false, // if true, there will be a button that allows the agent/admin to send the id verification link as an email to the remitter to perfom Live ID Verification
      			"session_timeout": 60, // timeout in minutes.
      		},
      },
  2. Setup the SIKOIA_USER_VERIFICATION configuration in config_3rdparty.json as follows, this config can also be copied over from config_3rdparty.json.in, comment out the url/scope that is not necessary, if you are setting this up for live system, comment out the test url/scope, if you are setting up for test system, comment out the production url/scope
    • "SIKOIA_USER_VERIFICATION": {
      		"enabled": true,
      		"client_id": "", // get from sikoia portal
      		"client_secret": "", // get from sikoia portal
      		//"token_url": "https://oauth2-staging.sikoia.com", // test url
      		//"scope": "https://api-staging.sikoia.com/.default", // test scope
      		"token_url": "https://oauth2.sikoia.com", // production url
      		"scope": "https://api.sikoia.com/.default", // production scope
      		"api_url": "https://api.sikoia.com",
      		"risk_scoring": {
      			"adverse_media": {
      				"matches": 10,
      				"no-matches": 0,
      			},
      			"peps_sanctions": {
      				"matches": 10,
      				"no-matches": 0,
      			},
      		},
      		"id_type_mapping": {
      			"DRIVERS_LICENSE": "Driving_License",
      		},
      },
  3. In config_notification.json, copy over the following realtime subscriptions into config_notification.json
    • "CREATE_REMITTER":[
      	"remitone\\integration\\Sikoia\\Subscribers\\SikoiaCreateMembersSubscriber"
      ],
      "UPDATE_REMITTER":[
      	"remitone\\integration\\Sikoia\\Subscribers\\SikoiaUpdateUnverifiedMembersSubscriber"
      ],
  4. Run the update command to update the system config files. Then run the below script.
    • php bin/integration sikoia:configure-webhook

Please note that Sikoia Live ID Verification is written so that even if the ID is verified on registration while also passing the adverse media and pep sanctions checks, the user still needs to be manually verified by the client system. The only time ID verification is automated in terms of verification is through profile update.

Remittee Export Integration

This integration involves the following parts :

  • Middleware Configuration

  • MTMS Configuration

Middleware Configuration

From the Middleware the steps are as follows:

Middleware Setup

Setup REMITTEE API Base URL

Remittee has two API endpoints. One for authentication and others for export operations.

UAT

https://remitee-identity-preprod.azurewebsites.net/ 
https://remitee-moneytransfer-preprod.azurewebsites.net/api/ 

Production:

https://remitee-identity.azurewebsites.net/ 
https://remitee-moneytransfer.azurewebsites.net/api/ 

Please make sure to update .env.local file in the hydra system as below for production URL update. This is a ONE time setup only.

//ssh into Hydra production 

ssh hydra@rayyanuk.remitone.com
cd public_hydra/current
vi .env.local

###> Application ###
REMITTEE_IDENTIFY_URL=https://remitee-identity-preprod.azurewebsites.net/
REMITTEE_TRANSFER_BASE_API_URL=https://remitee-moneytransfer-preprod.azurewebsites.net/api/
###< Application ###

1.1. Create a client connected to the MTMS system

To create a new client, you have to log into the middleware, go to the Clients menu from the sidebar, click on "Add Client" and fill the fields in. The URL is the URL of the MTMS system to pull the transactions from.

1.2. Create an association between the client and the integration, and set the correct values for the configuration parameters

Go to the Client Integrations menu from the sidebar then click on Add Client Integrations.

On the next screen, select the Client and Integration.

Create a super bank in any of the countries that the client wants for Remittee.

Create a web service user for this super bank and add it to the next step.To do so, connect as admin in ARM, go to Admin menu → Web Service Users and click on Add Web Service User. Give all the permissions. Make sure to make a note of the username and password we need this in the next step.

Afterward, set the right values in the textareas:

(Client Auth Configs will host the information relative to the web service user that will connect to the MTMS system, Integration Configs will have the parameters to export the transactions to Remittee.)

Client Configs

{
 "ws_auth": {
   "pin": 12345,
   "password": "Password1!",
   "username": "remittee_ws_user",
   "super_bank": true
},
 "two_step_cancellation": {
   "enabled": true,
   "transition_state": "DELETED"
}
}

Integration Configs

{
 "client_id": "xxxxxxxxxxxxxxxxxxxxxxx",
 "client_secret": "xxxxxxxxxxxxxxxxxxx",
 "benef_ac_types": {
   "AH": "SVGS",
   "CC": "CACC"
},
 "benef_id_types": {
   "SOS": "SSN",
   "ARNU": "ARNU",
   "CCPT": "Passport",
   "CUST": "CUST",
   "DRLC": "DRIVINGLICENSE",
   "NIDN": "NATIONALID",
   "TXID": "TAXID"
},
 "retry_interval": 30,
 "max_retry_attempts": 10,
 "settlement_currency": "USD"
}

The client_id and client_secret fields will be provided by Remittee.

benef_ac_types are these values :

"AH": "SVGS",

"CC": "CACC"

and benef_id_types :

"SOS": "SSN",

"ARNU": "ARNU",

"CCPT": "Passport",

"CUST": "CUST",

"DRLC": "DRIVINGLICENSE",

"NIDN": "NATIONALID",

"TXID": "TAXID"

 

If super_bank is TRUE, there's no need to set the processing bank. Leave it empty

Tick the enabled checkbox to activate the association.

To finish, click the Create button on the top right corner.

Two Step Cancellation

The Remittee integration requires a two-step cancellation process, also known as deferred cancellation. In this mode, when a transaction is cancelled through the Middleware API (invoked by the MTMS real-time subscriber), the Middleware sends a cancellation request to Remittee. However, at this stage, Remittee only initiates the cancellation process without immediately cancelling the transfer.

To determine the final status, the system must periodically poll the Remittee service until confirmation is received that the transaction has been successfully cancelled.

In MTMS, the transaction is initially marked as ABORTED upon sending the first cancellation request. Once Remittee confirms that the transaction has been fully cancelled, the transaction status is updated to DELETED in MTMS.

Please ensure that the two-step cancellation mode is enabled in the client configuration as outlined above.

1.3 Create an Middleware API user to connect from MTMS to Middleware

Go to the API Users menu from the sidebase then click on Add API User.

On the screen, select the Client Integration created from Step 1.2 above.

Then provide a desired username and password. Please make sure provide a strong password. And finally click Enabled tick box to enable the API user. Keep these details handy as you will need them.

Please make sure ROLE_API_USER is selected.

To finish, click the Create button on the top right corner.

 

MTMS Configuration

2.1. Configuring entities

Supported Transfer Types

  • Account transfer

  • Mobile Transfer

  • Cash Collection

To configure the MTMS for the Remittee integration, you need to import entities from Middleware system. The middleware system will import entities from Remittee and send to MTMS system to create necessary delivery entities.

NOTE: Remittee operates on different corridors and before you setup the integration please check with client and get a list of supporter destination countries required for this integration, if you have not done so already.

To run entity import configure the Remittee config under MTMS custom/config/config_3rdparty.json. Sample config as follows

"CONFIG_REMITEE": {
        "enabled": true,
        "processing_bank_prefix": "REMITEE-",
        "entity_import_countries": [
            "DO",
            "HT",
            "PE",
            "VE"
        ],
        "hydra_credentials": {
            "base_url": "https://hydratest.remitone.com/api/",
            "username": "remittee_user",
            "password": "Password1!"
        }
    }

Please update the config as necessary. The entity_import_countries are the supported countries mentioned above. You can set array of countries here.

The hydra credentials are the API user credentials for the middleware. You need to setup the integration and create an API user and use those configs to update here in MTMS.

 

Hydra Base URl

Test: https://hydratest.remitone.com/api/

Production: https://hydra.remitone.com/api/

To import the entities, please type the following command on terminal :

php bin/integration remitee:import-entities

The entity import command will automatically create Proc banks and necessary delivery entities based on the results of Remittee API results. You can see the logs in logs/remitee_import_entities.log

2.2. Link the new proc banks to the super bank

The new proc banks that were imported will need to be linked to the super bank we created in step 1.2.

For all the countries that we imported entities for we will need to edit the proc bank and add the super bank as their parent bank.

2.3. Update state machine configurations

To update all the Remittee transactions to HQ_OK, add a record to custom/config/config_state_machine.json under modify_state_machine

{
"modify_state_machine": {
  "BANKS_TO_HQOK": [
   "REMITEE-"
  ]
}
}

Realtime ABORT Subscriber 

Remittee integration required realtime transaction ABORT subscriber to delete the transaction at partner level. Please enable the subscriber under custom/config/config_notifications.json as follows

{
    "CONFIG_NOTIFICATION":{
       // real-time subscriptions :
       "realtime_subscriptions":{
          "ABORTED_TRANSACTION": [
            "remitone\\integration\\Remitee\\Subscribers\\RemitteeRealtimeCancelTransactionSubscriber"
          ]
            }
       }
}

make sure to update the configs after the changes, php config_update.php

2.4. Update System settings

Please make sure following options to be enabled/true.

If the cron jobs are running automatically, transactions pulled from the MTMS will be visible in the Transactions menu.

Quick description

  • This is a payment gateway for the ORM v2 and Mobile App via the Remitter WebServices.
  • The payment gateway can be used for remitter transactions and wallet transfers.
  • PAYNT has different types of Payment options and we are using their Copy & Pay API to show checkout form as described in the documentation.
  • The acknowledgment and clearing of the payment is handled during the redirection to ORM.
  • This integration supports Webhook functionality. The payment clearance can be handle via the Webhook notification if the payment delay in clearing from PAYNT.
  • Webhook handling is now via the queue which is processed via the queue processing cron.
  • There is an additional cron command under Crunz which runs every 30 minutes to clear the payment as failover solution.

Useful Resources

Configuration

  • The main configuration is called CONFIG_PAYNT and is in config_3rdparty.json where the "enabled" flag needs to be set to true and the main credentials need to be changed.
  • The client needs to provide 2 information:
    • bearer_token - This is the auth token.
    • entity_id - This is the unique client ID
    • payment_methods - Client should tell us what payment methods required for their integration. You can find all the supported payment method here https://paynt.docs.oppwa.com/integrations/widget# 
  • webhook_secret - R1 should provide to the client. The PAYNT webhook payload is encrypted and use this secret to decrypt the payload.
  • All these configuration can be obtained/set in the PAYNT backend interface. Please ask the client to provide these details if possible so we can get those details directly.

The full configuration example

"CONFIG_PAYNT": {
    "enabled": true,
    "base_url": "https://eu-test.oppwa.com/",
    "bearer_token": "OGFjN2E0Yzk5NGZmOTZmYzAxOTUwM2I0MjlkMTA0Y2N8SiNBTXc/cXA3VFFmPzVjcCFRVXc=",
    "entity_id": "8ac7a4ca9720f3a0019721456a340020",
    "payment_methods": [
      "VISA",
      "VISADEBIT",
      "MASTER",
      "MAESTRO",
      "APPLEPAY",
      "GOOGLEPAY"
    ],
    "webhook_secret": "E8E1007BBC64A48A75276F227FFE944D65643F7EF6E9BE923DD823E5F445DD1F"
  }

Enable the payment gateway for ORM and Wallet as required under config_orm.json. 

{
    "CONFIG_ORM": {
        "source_country_settings": {
            "01": {
                "payment_methods": {
                    "Paynt": {
                        "enabled": true,
                        "id": "XX"
                    }
                }
            }
        },
        "load_wallet_payment_methods": {
            "Paynt": {
                "enabled": true,
                "id": "XX"
            }
        }
    }
}
Replace the id: XX with correct payment method id from payment_methods table.
RWS
"allowed_card_payment_methods":[
			"ORMPaynt"
]

Cron Jobs - Crunz

There is a crunz task running every fifteen minutes to clear the payments if payment is not cleared by redirect or webhook. This is a fail over script.

php bin/integration paynt:payment-clearance

Logs

Logs are written to

logs/paynt_payment.log

logs/paynt_webhook.log - All the webhooks are written into this log.

Permissions on the log files should be 664 apache:<username> otherwise the callback processing will fail and wallet credits will not occur.



This article (attachment) explains in depth how our billing function operates and to give examples of how transaction and support incident costs are calculated, our customisation (bespoke development) payment and delivery process and how we allocate your payments made to us. The final sections cover how and when we send out reminders, suspension of service (due to non-payment), late payment fees, disputed items and VAT charges.

Please read this article carefully. If you have any questions regarding this article or your business circumstances please feel free to contact billing@remitone.com

To make any fields display or required based on your own needs please follow the information below.

Go to the ARM > Settings > System Configuration Settings > Configuration Classification : UI > Expand "Field Settings"

Just a little recap about the configuration UI settings -

1- the whole system looks at  This includes the ARM, ORM and RWS.

2- The ORM and RWS then look at for any overrides. If you change anything in point 1 and it doesn't reflect on the apps/ORM then you will need to change it here as well.

3- For any country overrides you will need to add them to . "Country Name-Destination" for the ARM , "ORM-Country Name-Destination" for the the ORM/apps. "Country Name" for the source country. "Country Name" will be the exact spelling you use for said country in the Destination/Source country list.

Eg

Please see the information below about the fields:

a- If a field starts with "remitter.registered" then this is for the remitter profile with registration type "Registered". For Edit and Create remitter page.

b- If a field starts with "remitter.basicregistered" then this is for the remitter profile with registration type "Basic registered". For Edit and Create remitter page.

c- If a field starts with "benef" then this is for the beneficiary profile (create and edit page).

d- If a field starts with "trans_new" then it is for the transaction creation page.

e- If a field starts with "trans_payout" then it is for the transaction payout screen (when the bank pays out the transaction).

If there are any further questions please do not hesitate to get in touch.

Dear RemitONE customer, let us know how we can help support you with your platform! Best wishes, Reza.

Most popular articles 
 
Newest articles