CYCLOS4 Pro

Version: Cyclos 4.15.9 (for the documentation about another version please click here) Copyright © 2004-2022 Social Trade Organization

# Cyclos 4 PRO Documentation Welcome to the Cyclos 4 PRO Documentation. First, this manual contains the Installation and Maintenance guide. Second, this manual will give a detailed description and some examples of how to connect to Cyclos using the web services. Subsequently, this manual explains the Cyclos scripts, these scripts can be executed by clicking on a menu link, by a scheduled task or by an extension point on a certain function. These scripts make it possible to add new functions to Cyclos and customize Cyclos exactly to the needs of your payment system. Finally, this manual will give an explanation of how to login to Cyclos from an external website. This can be useful if you have a large CMS as a website and you want to have an integrated login to Cyclos in this website. There are some important documentation resources that are not part of this manual, these can be found here: There are two (end user) Cyclos 4 manuals (make sure you are not logged into communities.cyclos.org): **Administrator manual** **User manual**

Next to the manuals some functions are described with much more technical details in our wiki: Configurations Groups Networks Advertisements Users records Transfer_authorization SMS Imports Cyclos instruction videos: Cyclos 4 communities Cyclos 4 PRO

# Table of Contents # 1-- Installation & maintenance 1.1. Install Cyclos using Tomcat 1.1.1. System requirements 1.1.2. Install Java 1.1.3. Install PostgreSQL (database) 1.1.4. Install Tomcat (web server) 1.1.5. Install Cyclos 1.1.6. Startup Cyclos 1.1.7. Upgrading Cyclos 1.1.8. Problem solving 1.2. Install Cyclos as a Docker image 1.3. Adjustments (optional) 1.3.1. Adjust Tomcat/Java memory 1.3.2. Enable SSL/HTTPS 1.3.3. Clustering 1.3.4. Use Apache as frontend for Tomcat 1.3.5. Enable SSL on apache 1.3.6. Configuring Cyclos to work behind a proxy / load balancer 1.3.7. Reserved names that cannot be used in proxy paths 1.3.8. Enabling Google Maps 1.3.9. reCAPTCHA 1.3.10. External content storage 1.3.10.1. Storage types 1.3.10.2. Storage migrator utility class 1.3.11. Using Elasticsearch 1.3.12. Logging 1.4. Maintenance 1.4.1. Backup 1.4.2. Restore 1.4.3. Backup / restore of very large databases 1.4.4. Reset admin password directly on database 1.4.5. Sending database to third parties 1.4.6. Removing all data from a network

# 2-- Full text searches 2.1. Using Elasticsearch 2.1.1. Language processing 2.1.2. Reindexing

# 3-- Web services 3.1. Introduction 3.1.1. REST API 3.1.2. WEB-RPC 3.1.3. Authentication in web services 3.1.3.1. User and password 3.1.3.2. Login with a session 3.1.3.3. Access clients 3.1.4. Channels 3.2. Java clients 3.2.1. Dependencies 3.2.2. Using services from a 3rd party Java application 3.2.3. Examples 3.2.3.1. Configure Cyclos 3.2.3.2. Search users 3.2.3.3. Search advertisements 3.2.3.4. Register user 3.2.3.5. Edit user profile 3.2.3.6. Login user 3.2.3.7. Get account information 3.2.3.8. Perform payment 3.3. PHP clients 3.3.1. Dependencies 3.3.2. Using services from a 3rd party PHP application 3.3.3. Examples 3.3.3.1. Configuration 3.3.3.2. Search users 3.3.3.3. Search advertisements 3.3.3.4. Login user 3.3.3.5. Perform payment from system to user 3.3.3.6. Perform payment from user to user 3.3.4. Error handling 3.4. Other clients 3.4.1. Examples 3.5. Server side configuration to enable web services 3.6. Available services and API Changes

# 4-- Scripting 4.1. Scripting engine 4.1.1. Variables bound to all scripts 4.1.2. Script storage 4.2. Debugging scripts 4.3. Script types 4.3.1. Library 4.3.2. Custom field validation 4.3.2.1. Examples 4.3.3. Load custom field values 4.3.3.1. Examples 4.3.4. Account number generation 4.3.4.1. Examples 4.3.5. Account fee calculation 4.3.5.1. Examples 4.3.6. Transfer fee calculation 4.3.6.1. Examples 4.3.7. Transfer status handling 4.3.7.1. Examples 4.3.8. Session handling 4.3.8.1. Examples 4.3.9. Password handling 4.3.9.1. Examples 4.3.10. Extension points 4.3.10.1. User extension point 4.3.10.2. Operator extension point 4.3.10.3. Address extension point 4.3.10.4. Phone extension point 4.3.10.5. Record extension point 4.3.10.6. Advertisement extension point 4.3.10.7. Transaction extension point 4.3.10.8. Transaction authorization extension point 4.3.10.9. Transfer extension point 4.3.10.10. Voucher extension point 4.3.10.11. Agreement extension point 4.3.10.12. Import extension points 4.3.10.13. Examples 4.3.11. Custom operations 4.3.11.1. Actions 4.3.11.2. Receipt 4.3.11.3. Examples 4.3.11.4. Possibilities for custom operations that return a result page 4.3.11.5. Running custom operations on bulk actions 4.3.12. Custom wizards 4.3.12.1. Examples 4.3.13. Custom web services 4.3.13.1. Examples 4.3.14. Service interceptors 4.3.14.1. Recovering from errors in crucial services 4.3.14.2. Examples 4.3.15. Custom recurring tasks 4.3.15.1. Examples 4.3.16. Custom background tasks 4.3.16.1. Scheduling a custom background task 4.3.16.2. Examples 4.3.17. Custom SMS operations 4.3.17.1. Examples 4.3.18. Inbound SMS handling 4.3.18.1. Examples 4.3.19. Outbound SMS handling 4.3.19.1. Examples 4.3.20. Link generation 4.3.20.1. Examples 4.3.21. Export formats 4.3.21.1. Examples 4.3.22. Notifications 4.3.22.1. Examples 4.4. Solutions using scripts 4.4.1. PayPal Integration 4.4.1.1. Check the root URL 4.4.1.2. Enable transaction number in currency 4.4.1.3. Create a system record type to store the client id and secret 4.4.1.4. Create a user record type to store each payment information 4.4.1.5. Create the library script 4.4.1.6. Create the custom operation script 4.4.1.7. Create the custom operation 4.4.1.8. Configure the system account from which payments will be performed to users 4.4.1.9. Configure the payment type which will be used on payments 4.4.1.10. Grant the administrator permissions 4.4.1.11. Setup the PayPal credentials 4.4.1.12. Grant the user permissions / enable the operation 4.4.1.13. Configuring the script parameters 4.4.1.14. Other considerations 4.4.2. Loan module 4.4.2.1. Enable transaction number in currency 4.4.2.2. Create the transfer status flow 4.4.2.3. Create the payment custom fields 4.4.2.4. Configure the system account from which payments will be performed to users 4.4.2.5. Create the payment type which will be used to grant the loan 4.4.2.6. Configure the user account which will receive loans 4.4.2.7. Create the payment type which will be used to repay the loan 4.4.2.8. Create the library script 4.4.2.9. Create the custom operation script 4.4.2.10. Create two extension point scripts 4.4.2.11. Create the custom operation 4.4.2.12. Create the extension points 4.4.2.13. Grant the administrator permissions 4.4.2.14. Enable the custom operation for users which will be able to receive loans 4.4.3. Integrating with Global USSD 4.4.3.1. Create the USSD channel 4.4.3.2. Enable the USSD channel for users 4.4.3.3. Create a payment type for USSD 4.4.3.4. Grant permissions for users to perform this payment type 4.4.3.5. Create the library script 4.4.3.6. Create the custom web service script 4.4.3.7. Create the custom web service 4.4.3.8. Enable a Global USSD account 4.4.3.9. Start an USSD session 4.4.4. Record edition 4.4.4.1. Create the user record type to work with and give permissions 4.4.4.2. Create the library script 4.4.4.3. Create the custom operation script to send the record email 4.4.4.4. Create the custom operation script to search records 4.4.4.5. Create the custom operation script to create records 4.4.4.6. Create the custom operation script to view records 4.4.4.7. Create the custom operation script to update records 4.4.4.8. Create the custom operation script to remove records 4.4.4.9. Create the custom operation to remove records 4.4.4.10. Create the custom operation to update records 4.4.4.11. Create the custom operation to send the record email 4.4.4.12. Create the custom operation to view records details 4.4.4.13. Create the custom operation to create records 4.4.4.14. Create the custom operation to search records 4.4.4.15. Enable the custom operation for users 4.4.5. User balances 4.4.5.1. Create the script to load user account types 4.4.5.2. Create the script to load user groups 4.4.5.3. Create the custom operation script to search users balances 4.4.5.4. Create the custom operation to search users balances 4.4.5.5. Enable the custom operation 4.5. Running scripts directly 4.5.1. Examples 4.5.1.1. Remove all users, transactions and related data 4.5.1.2. Export advertisements with images 4.5.1.3. Generating an account number for all accounts which doesn't have a number yet 4.5.1.4. Generating a custom PDF file

# 5-- Custom alerts # 6-- External login # Next Installation & maintenance