Integrations with external systems - global-121/121-platform GitHub Wiki
This is a diagram that models the third party integrations that are made in the 121-platform in an UML component diagram 3.0:
- Twilio is used for sending messages
- The Kobo integration can be used to load new registrations using survey forms and to update programs in the 121 platform using a kobo form definition
- The EspoCRM integration can be used to 'sync' registration entities between EspoCRM and 121. This can be used when a user wants to manage registrations in EspoCRM instead of 121
- The Financial Service Provider (FSP) integrations are use to provide the cash and voucher assistance.
- Some FSPs are connected via an API integration and in others users can download a csv file which has to be manually provided to the FSP
- Some FSPs provide reconciliation data which provides insight in the status of cash or voucher assistance

API endpoints used by external systems
General
- kobo-connect
- POST /api/users/login
- GET /api/programs/{programId}
- ?formatProgramReturnDto=true
- GET /api/programs/{programId}/metrics/export-list/{exportType}
- exportType = registrations
- POST /api/programs/{programId}/registrations
- PATCH /api/programs/{programId}/registrations/{referenceId}
- PATCH /api/programs/{programId}/registrations/status
- ?dryRun=false&filter.referenceId=$in:{referenceId}
- 121 Vodacash Converter
- None
- 121 Invoicing Tool
- POST /api/users/login
- GET /api/exchange-rates
- GET /api/programs/{programId}
- GET /api/programs/{programId}/metrics/program-stats-summary
- GET /api/programs/{programId}/transactions
- Scandroid
- POST /api/users/login
- GET /api/programs/{programId}
- GET /api/programs/{programId}/fsp-configurations
- POST /api/programs/{programId}/payments/{paymentId}/excel-reconciliation
- GET /api/programs/{programId}/payments/{paymentId}/transactions
- GET /api/programs/{programId}/registrations/{id}
- GET /api/programs/{programId}/transactions
- 121 Translate program
- POST /api/users/login
- GET /api/programs/{programId}
- PATCH /api/programs/{programId}/registration-attributes/{programRegistrationAttributeName}
- 121 Mass update message templates
- POST /api/users/login
- GET /api/notifications/{programId}/message-templates
- POST /api/notifications/{programId}/message-templates
- PATCH api/notifications/{programId}/message-templates/{type}/{language}
- 121 Calculate Indicators
- POST /api/users/login
- GET /api/programs/{programId}/metrics/export-list/registrations
- ?filter.created=$gt:{dateFrom}T00:00:00.000Z&filter.created=$lt:{dateTo}T00:00:00.000Z
- GET /api/programs/{programId}/transactions
- ?fromDate={dateFrom}T00:00:00.000Z&toDate={dateTo}T00:00:00.00
- 121 Default Dashboard
- POST /api/users/login
- GET /api/programs/{programId}
- GET /api/programs/{programId}/payments
- ?limit=100
- GET /api/programs/{programId}/payments/{paymentId}/transactions
- GET /api/programs/{programId}/registrations
- ?limit=40000
- PAM - 121 Extension Template
- Not set up yet
NLRC
- Schoolmaaltijden Programma - OCW
- POST /api/users/login
- PATCH /api/notifications/{programId}/message-templates/{type}/{language}
- POST /api/programs/{programId}/registrations
- PATCH /api/programs/{programId}/registrations/{referenceId}
- PATCH /api/programs/{programId}/registrations/status
- ?filter.referenceId={$referenceId}
- ?dryRun=false&filter.referenceId=$in:{$referenceId}
- Food Program Automation of Processes
- POST /api/users/login
- GET /api/programs/{programId}/metrics/export-list/{exportType}
- exportType = unused-vouchers
- exportType = registrations
- GET /api/programs/{programId}/registrations
- ?limit=40000
- Still need to be rewritten so that we get the right information in an easier and faster way (not both via export-list and registrations)
- GET /api/programs/{programId}/registration-events
- ?fromDate={fromDate}
- GET /api/programs/{programId}/registrations/{id}
- POST /api/programs/{programId}/registrations/message
- ?filter.referenceId=$in:{referenceIds} - PATCH /api/programs/{programId}/registrations/{referenceId}
- GET /api/programs/{programId}/registrations/{registrationId}/activities
- PATCH /api/programs/{programId}/registrations/status
- ?filter.referenceId=$in:{referenceIds}&dryRun=false
- 121 Mass download paper vouchers
- POST /api/users/login
- GET /api/programs/{programId}/fsps/intersolve-voucher/voucher/image-paper
- ?referenceId={referenceId}&paymentId={paymentId}
- GET /api/programs/{programId}/payments
- GET /api/programs/{programId}/payments/{paymentId}/transactions
- ?limit=1000000&filter.status=$ilike:success&filter.fspName=$ilike:paper
NLRC Dashboards
- OCW Data Integrity Dashboard
- NLRC semantic model: Directly on database
- Food Program (BvP) Dashboard
- GET /api/programs/{programId}/payments/{paymentId}/transactions
- ?limit=100000
- GET /api/programs/{programId}/registrations
- ?limit=30000&sortBy=registrationCreated%3ADESC
- GET /api/programs/{programId}/users
- GET /api/programs/{programId}/payments/{paymentId}/transactions
- Food Program (BvP) Partner Dashboard
- Same as above
- OCW Monitoring Dashboard
- None
- OCW & BvP CardFinder Dashboard
- Directly on database
- Redline OCW Dashboard
- None
KRCS
- 121 Create program KRCS
- POST /api/users/login
- POST /api/programs
- POST /api/programs/{programId}/fsp-configurations
- PUT /api/programs/{programId}/users/{userId}
- 121-ESR integration
- POST /api/users/login
- GET /api/programs/{programId}
- GET /api/programs/{programId}/registrations
- ?limit=40000
- GET /api/programs/{programId}/registrations
- ?filter.referenceId=$eq:{referenceId}
- POST /api/programs/{programId}/registrations
- GET /api/programs/{programId}/registration-events
- GET /api/programs/{programId}/transactions
- ?format=json&fromDate={yesterday}&toDate={today}
- GET /api/users