This is the SRD for Assignment 2 (lesson B10). KIPA is a fictional institution. Everything you need to configure is on this page. If something is not written here, the answer is "not required"; do not invent it.
| Item | Value |
|---|---|
| Institution | Kivu Industrial Parks Agency (KIPA), a fictional institution. You configure the service under your training organization. |
| Owner | Course owner (training) |
| Who applies | A company that already holds a plot in an industrial park and needs its lease contract amended |
| Why | The land size changes, the ownership changes, or another reason |
| Pattern | Apply → Pay (fee depends on the reason, the currency and, for land size changes, the plot size) → Level 1 review → Level 2 review → Level 3 approval with officer form → contract generated |
| Lessons | B1 to B6 (pricing and routing), B7 (actions and notifications), B8 (offices), B9 (certificate), A10 (officer form) |
| Out of scope for assignment 2 | Fetches (TIN, previous application): they are typed by the applicant here and are covered in Section C. Appointments. Payment after approval (see section 13). |
| Item | English | Kinyarwanda | French |
|---|---|---|---|
| Service name | [Your first name] - Amendment of Contracts for Plots in Industrial Parks | [Your first name] - Impinduka ku masezerano y'ibibanza mu byanya by'inganda | [Your first name] - Modification des contrats de parcelles dans les parcs industriels |
| Summary | This service allows companies holding land in an industrial park to request an amendment of their lease contract after a change in land ownership, a change in land size, or for another reason. | Iyi serivisi ifasha ibigo bifite ubutaka mu cyanya cyahariwe inganda gusaba kuvugurura amasezerano yabo y'ubukode bitewe no guhindura nyir'ubutaka, impinduka ku buso bw'ubutaka, cyangwa indi mpamvu. | Ce service permet aux entreprises disposant d'un terrain dans un parc industriel de demander la modification de leur contrat de bail à la suite d'un changement de propriétaire, d'une modification de la superficie ou pour un autre motif. |
| Setting | Value |
|---|---|
| Category | Trade and industry |
| Who can apply | Individual: on (company representative). Business: off. |
| Languages | English, Kinyarwanda, French |
| Required attachments (always) | 3: Previous contract, Business plan, Tentative architectural drawings |
| Conditional attachments | 2: Copy of passport (when the ID type is Passport); Deed plan / cadastral document (when the reason is Land size change) |
| Optional attachments | 1: Investment certificate |
How "required" and "visible when" are configured (wiki: Form configuration · Rules):
"required": false, "defaultRequired": true, plus the standard props.required expression. A hidden field is then never required.expressions.hide rule that negates the condition. Example: Visible when idDocumentType = PASSPORT → "hide": "model?.idDocumentType !== 'PASSPORT'".customfileupload, PDF only, maximum 2 MB. Messages: required "This field is required."; size "The file is larger than 2 MB."; format "Only PDF files are accepted."| Section (key) | Block (key) |
|---|---|
Company details (companySection) |
Company (companyBlock), Company representative (representativeBlock) |
Request details (requestSection) |
Request (requestBlock), Payment (paymentBlock) |
Attachments (attachmentsSection) |
Attachments (attachmentsBlock) |
| # | Block | Key | Label (EN) | Type | Req. | Validation and message (EN) | Options (value: label) | Visible when |
|---|---|---|---|---|---|---|---|---|
| 1 | Company | requestedViaIrembo |
Did you request the land in the industrial park through Irembo? | radio | Yes | "This field is required." | YES: Yes · NO: No |
always |
| 2 | Company | previousApplicationNumber |
Application number of your land request on Irembo | input | Yes | Pattern ^[A-Z][0-9]{12}[A-Z0-9]{6}$, message "Enter the 19-character application number, e.g. B240101000000ABCDEF." |
requestedViaIrembo = YES |
|
| 3 | Company | companyTin |
Company TIN | input | Yes | Pattern ^[0-9]{9}$, message "The TIN has 9 digits." |
always | |
| 4 | Company | supplierName |
Company Name | input | Yes | Max length 150 | always | |
| 5 | Company | managerNames |
Business Owner Name | input | Yes | Max length 150 | always | |
| 6 | Company | category |
Category of Registration | customdropdown (static) | Yes | DOMESTIC_COMPANY: Domestic company · FOREIGN_COMPANY: Foreign company · COOPERATIVE: Cooperative |
always | |
| 7 | Company | companyLocation |
Company Address | Location widget, levels province → district → sector → cell → village (rename each level key to exactly these names; the certificate reads district) |
Yes | "Select the company's province, district, sector, cell and village." | always | |
| 8 | Representative | idDocumentType |
Identification Document Type | customdropdown (static) | Yes | NATIONAL_ID: National ID · FOREIGNER_ID: Foreigner ID · REFUGEE_ID: Refugee ID · PASSPORT: Passport |
always | |
| 9 | Representative | idNumber |
Rwandan ID Number | input | Yes | Pattern ^[0-9]{16}$, message "The ID number has 16 digits." |
idDocumentType is not PASSPORT |
|
| 10 | Representative | passportNumber |
Passport Number | input | Yes | Pattern ^[A-Z0-9]{6,12}$, message "Use 6 to 12 capital letters or digits." |
idDocumentType = PASSPORT |
|
| 11 | Representative | countryOfIssue |
Country of Issue | customdropdown (admin dataset COUNTRY, bindValue: "") |
Yes | Countries | idDocumentType = PASSPORT |
|
| 12 | Representative | surname |
Surname | input | Yes | Max length 60 | always | |
| 13 | Representative | otherNames |
Other Names | input | Yes | Max length 100 | always | |
| 14 | Representative | managingDirector |
Managing Director | input | Yes | Max length 150 | always | |
| 15 | Representative | email |
input (email) | Yes | "Enter a valid email address." | always | ||
| 16 | Representative | phone |
Phone Number | customphonenumber | Yes | Phone format | always | |
| 17 | Request | amendmentReason |
Reason for Amendment of Contract | radio | Yes | "This field is required." | LAND_SIZE_CHANGE: Land size change · CHANGE_OF_OWNERSHIP: Change of ownership · OTHERS: Others |
always |
| 18 | Request | otherReason |
Other Reason | textarea | Yes | Max length 500 | amendmentReason = OTHERS |
|
| 19 | Request | industrialPark |
Industrial Park | customdropdown (static, bindValue: "value") |
Yes | Huye Industrial Park, Rusizi Industrial Park, Muhanga Industrial Park, Nyagatare Industrial Park, Rubavu Industrial Park, Musanze Industrial Park, Rwamagana Industrial Park, Nyabihu Industrial Park (value = English label) |
always | |
| 20 | Request | plotSize |
Size of Plot in Square Meters | number | Yes | Min 100, max 100000. Messages: min "The minimum is 100 m²."; max "The maximum is 100,000 m²." | always | |
| 21 | Request | previousTotalAmount |
Previous Total Amount (RWF) | number | Yes | Min 0 | always | |
| 22 | Payment | paymentCurrency |
Currency of Payment | radio | Yes | RWF: Rwandan franc (RWF) · USD: US dollar (USD) |
always | |
| 23 | Attachments | previousContract |
Previous Contract | customfileupload | Yes | as above | always | |
| 24 | Attachments | businessPlan |
Business Plan | customfileupload | Yes | as above | always | |
| 25 | Attachments | architecturalDrawings |
Tentative Architectural Drawings | customfileupload | Yes | as above | always | |
| 26 | Attachments | passportCopy |
Copy of Passport | customfileupload | Yes | as above | idDocumentType = PASSPORT |
|
| 27 | Attachments | deedPlan |
Deed Plan / Cadastral Document | customfileupload | Yes | as above | amendmentReason = LAND_SIZE_CHANGE |
|
| 28 | Attachments | investmentCertificate |
Investment Certificate | customfileupload | No | as above | always |
Tooltips (EN):
industrialPark: "The park where your plot is located."previousContract: "The initial lease contract for this plot."The pricing reads amendmentReason, paymentCurrency and plotSize. All three are always shown, so no price condition depends on a hidden field (B1 gotcha).
| Setting | Value |
|---|---|
| Type | Paid, dynamic (scenarios) |
| When the applicant pays | On submission (APPLY) |
| Payment expiration time | 72 hours |
| Merchant | GOR (fixed) |
Both conditions of each scenario are joined with AND. The six scenarios cover every combination, so INVALID_DYNAMIC_PRICE_CONFIGURATION_WITHOUT_PRICE_VALUE cannot happen.
| # | amendmentReason (Equal To) | paymentCurrency (Equal To) | Set price to | Amount or formula | Currency |
|---|---|---|---|---|---|
| 1 | LAND_SIZE_CHANGE | RWF | Price From Formula | 50000 + (plotSize * 10) |
RWF |
| 2 | CHANGE_OF_OWNERSHIP | RWF | Price Value | 100000 | RWF |
| 3 | OTHERS | RWF | Price Value | 30000 | RWF |
| 4 | LAND_SIZE_CHANGE | USD | Price Value | 60 | USD |
| 5 | CHANGE_OF_OWNERSHIP | USD | Price Value | 80 | USD |
| 6 | OTHERS | USD | Price Value | 25 | USD |
The pricing builder stores the formula as a list of tokens. Add them in this order: the constant 50000, +, (, the field "Size of Plot in Square Meters", *, the constant 10, ).
Worked examples:
| Setting | Type | Rule |
|---|---|---|
| Payment account | Dynamic on paymentCurrency |
RWF → GOR-CG-RWF · USD → GOR-CG-USD |
| Service payment code | Dynamic on paymentCurrency |
RWF → RRA-bef6f41c2a · USD → RRA-554e6e0550 |
| Merchant | Fixed | GOR |
The account fixes the currency. A USD price billed on an RWF account fails at payment, which is why the account follows the currency.
| State code | State name EN | RW | FR | Applicant sees |
|---|---|---|---|---|
NEW |
New | Gishya | Nouveau | (start) |
PAYMENT_PENDING |
Payment Pending | Gutegereza kwishyura | Paiement en attente | Pending payment |
PAYMENT_EXPIRED |
Payment Expired | Igihe cyo kwishyura cyarangiye | Paiement expiré | Payment expired |
PENDING_ASSIGN_OFFICE |
Submitted | Byoherejwe | Soumis | Submitted for Processing |
PENDING_OFFICER_PROCESSING_LEVEL_1 |
Pending Approval (Level 1) | Gutegereza kwemezwa (Urwego rwa 1) | En attente d'approbation (niveau 1) | Pending approval |
PENDING_OFFICER_PROCESSING_LEVEL_2 |
Pending Approval (Level 2) | Gutegereza kwemezwa (Urwego rwa 2) | En attente d'approbation (niveau 2) | Pending approval |
PENDING_OFFICER_PROCESSING_LEVEL_3 |
Pending Approval (Level 3) | Gutegereza kwemezwa (Urwego rwa 3) | En attente d'approbation (niveau 3) | Pending approval |
PENDING_RESUBMISSION_LEVEL_1 / _LEVEL_2 / _LEVEL_3 |
Requested for Action | Hasabwe gukosora | Action demandée | Action required |
APPROVED |
Approved | Byemejwe | Approuvé | Approved |
REJECTED |
Rejected | Byanzwe | Rejeté | Rejected |
| # | Start state | Event | Who | End state | Breaking action | Non-breaking action |
|---|---|---|---|---|---|---|
| T1 | NEW | APPLY | ROLE_CITIZEN, ROLE_AGENT |
PAYMENT_PENDING (endStateTwo: PENDING_ASSIGN_OFFICE, as a safety net for a price of 0) | BILL_ID_GENERATION |
N1 |
| T2 | PAYMENT_PENDING | PAY | system authorised | PENDING_ASSIGN_OFFICE | N2 | |
| T3 | PAYMENT_PENDING | EXPIRE_PAYMENT | system authorised | PAYMENT_EXPIRED | N3 | |
| T4 | PAYMENT_EXPIRED | PAY | system authorised | PENDING_ASSIGN_OFFICE | N2 | |
| T5 | PENDING_ASSIGN_OFFICE | ASSIGN_OFFICE (nextEvent of PENDING_ASSIGN_OFFICE) | system authorised | PENDING_OFFICER_PROCESSING_LEVEL_1 | OFFICE_ASSIGNMENT L1 (section 5) |
|
| T6 | PENDING_OFFICER_PROCESSING_LEVEL_1 | ESCALATE | ROLE_OFFICER |
PENDING_OFFICER_PROCESSING_LEVEL_2 | OFFICE_ASSIGNMENT L2 |
|
| T7 | PENDING_OFFICER_PROCESSING_LEVEL_1 | REJECT | ROLE_OFFICER |
REJECTED | N5 | |
| T8 | PENDING_OFFICER_PROCESSING_LEVEL_1 | REQUEST_FOR_ACTION | ROLE_OFFICER |
PENDING_RESUBMISSION_LEVEL_1 | N6 | |
| T9 | PENDING_RESUBMISSION_LEVEL_1 | SUBMIT_RFA | ROLE_CITIZEN, ROLE_AGENT |
PENDING_OFFICER_PROCESSING_LEVEL_1 | N7 | |
| T10 | PENDING_OFFICER_PROCESSING_LEVEL_2 | ESCALATE | ROLE_OFFICER |
PENDING_OFFICER_PROCESSING_LEVEL_3 | OFFICE_ASSIGNMENT L3 |
|
| T11 | PENDING_OFFICER_PROCESSING_LEVEL_2 | REJECT | ROLE_OFFICER |
REJECTED | N5 | |
| T12 | PENDING_OFFICER_PROCESSING_LEVEL_2 | REQUEST_FOR_ACTION | ROLE_OFFICER |
PENDING_RESUBMISSION_LEVEL_2 | N6 | |
| T13 | PENDING_RESUBMISSION_LEVEL_2 | SUBMIT_RFA | ROLE_CITIZEN, ROLE_AGENT |
PENDING_OFFICER_PROCESSING_LEVEL_2 | N7 | |
| T14 | PENDING_OFFICER_PROCESSING_LEVEL_3 | APPROVE_WITH_FORM | ROLE_OFFICER |
APPROVED | GENERATE_CERTIFICATE (section 7) |
N4, with the contract attached (sourceType DOCUMENT_GENERATION_ENGINE) |
| T15 | PENDING_OFFICER_PROCESSING_LEVEL_3 | REJECT | ROLE_OFFICER |
REJECTED | N5 | |
| T16 | PENDING_OFFICER_PROCESSING_LEVEL_3 | REQUEST_FOR_ACTION | ROLE_OFFICER |
PENDING_RESUBMISSION_LEVEL_3 | N6 | |
| T17 | PENDING_RESUBMISSION_LEVEL_3 | SUBMIT_RFA | ROLE_CITIZEN, ROLE_AGENT |
PENDING_OFFICER_PROCESSING_LEVEL_3 | N7 |
Breaking vs non-breaking (B7):
Event display names (officer buttons):
| Event | EN | RW | FR |
|---|---|---|---|
| ESCALATE | Recommend for approval | Saba ko byemezwa | Recommander pour approbation |
| APPROVE_WITH_FORM | Approve and issue contract | Emeza kandi utange amasezerano | Approuver et émettre le contrat |
| REJECT | Reject | Hakana | Rejeter |
| REQUEST_FOR_ACTION | Request for action | Saba gukosora | Demander une action |
All three use CODE_FIXED_OFFICE. The three KIPA offices of the story are played by the offices of your training organization; you do not need a separate KIPA organization.
| Transition | Approval level | KIPA office (story) | Office and officeLevel |
|---|---|---|---|
| T5 ASSIGN_OFFICE | Level 1 | KIPA Industrial Infrastructure Officer | given by your trainer |
| T6 ESCALATE | Level 2 | KIPA Head of Parks Operations | given by your trainer |
| T10 ESCALATE | Level 3 | KIPA Director General | given by your trainer |
In each action, set officeLevel to the level of the office your trainer gives you, then pick the office: the office picker lists only the offices of the chosen level. The office level does not have to match the approval level; the approval level comes from the workflow state.
Before testing, check that each office has at least one officer with an officer profile. To test alone, ask your trainer to give your officer account access to all three offices.
On PENDING_OFFICER_PROCESSING_LEVEL_3 only, for the event APPROVE_WITH_FORM.
Form key: PENDING_OFFICER_PROCESSING_LEVEL_3-APPROVE_WITH_FORM. Structure: wiki "Officers third-party form · General structure".
The engine refuses APPROVE_WITH_FORM without inputs (MISSING_OFFICER_INPUTS) and stores the inputs as application details. The certificate can then read them by key.
| Key | Label EN | RW | FR | Type | Required | Validation |
|---|---|---|---|---|---|---|
upiNumber |
UPI Number | Nimero ya UPI | Numéro UPI | input | Yes | Pattern ^[0-9]/[0-9]{2}/[0-9]{2}/[0-9]{2}/[0-9]{1,6}$, message "Use the format 1/02/03/04/1234." |
newTotalAmount |
New Total Amount (RWF) | Amafaranga yose mashya (RWF) | Nouveau montant total (RWF) | number | Yes | Min 0. Hint: "Previous total amount plus the amendment amount." |
contractStartDate |
Contract Start Date | Itariki amasezerano atangiriraho | Date de début du contrat | customdatepicker | Yes |
| Setting | Value |
|---|---|
| Action | GENERATE_CERTIFICATE on T14 (breaking) |
| Template | Workflow → Documents → Certificate Templates → Design New, English (en-US) |
| certificateName | [template code]_KipaLeaseContract |
| certificateExpirationDays | 17885 (49 years) |
| Header | "KIVU INDUSTRIAL PARKS AGENCY (KIPA), training document". Use a plain text logo. Do not use the national coat of arms or a real institution's logo. |
| Certificate line | Placeholder | Source |
|---|---|---|
| Title | CONTRACT FOR THE STATE LAND LEASE | fixed text |
| Contract number | ${applicationNumber!""} |
application |
| Industrial park | ${industrialPark!""} |
form (value = park name) |
| Company name | ${supplierName!""} |
form |
| Company TIN | ${companyTin!""} |
form |
| District | ${.vars["district.label"]!""} |
form, location level (dotted key: needs .vars) |
| Managing director | ${managingDirector!""} |
form |
| Representative | ${surname!""} ${otherNames!""} |
form |
| ID or passport number | ${idNumber!""}${passportNumber!""} |
form (only one is filled, because hidden fields are cleared) |
| Country of issue | ${.vars["countryOfIssue.label"]!"Rwanda"} |
form; the default "Rwanda" applies when a Rwandan ID was used |
| Email / phone | ${email!""} / ${phone!""} |
form |
| Size of plot | ${plotSize!""} m² |
form |
| UPI number | ${upiNumber!""} |
officer form |
| Total amount | ${newTotalAmount!""} RWF |
officer form (no arithmetic in the template) |
| Contract start date | ${contractStartDate!""} |
officer form |
| Signed by (Director General) | ${approve_with_form_user!""} |
the L3 officer who approved |
| Date of contract | ${approve_with_form_date!""} |
approval date |
| Valid until | ${certificate_expiration!""} |
engine |
| QR code | ${certificate_validation_link!""} |
engine |
Every placeholder carries !"". Placeholders used: applicantName, serviceName, applicationNumber, billReferenceNumber, paymentExpiration, price, currency, comment, plus the form keys industrialPark and plotSize.
| Lang | SMS | Email subject | Email body |
|---|---|---|---|
| EN | Dear ${applicantName!""}, your application for ${serviceName!""} was submitted. Bill number: ${billReferenceNumber!""}. Amount: ${price!""} ${currency!""}. Pay before ${paymentExpiration!""}. For support, call 9099. | Application submitted | Dear ${applicantName!""}, Your application for ${serviceName!""} was submitted. Industrial park: ${industrialPark!""} Size of plot: ${plotSize!""} m² Bill number: ${billReferenceNumber!""} Fees to be paid: ${price!""} ${currency!""} Pay before: ${paymentExpiration!""} Status: Payment pending. Thank you for using IremboGov. Need help? Email support@irembo.com or call 9099. If you are receiving this email by mistake, please ignore it. |
| RW | Kuri ${applicantName!""}, dosiye yanyu isaba ${serviceName!""} yoherejwe. Nomero yo kwishyuriraho: ${billReferenceNumber!""}. Amafaranga: ${price!""} ${currency!""}. Mwishyure mbere ya ${paymentExpiration!""}. Ubufasha: 9099. | Dosiye yoherejwe | Kuri ${applicantName!""}, Dosiye yanyu isaba ${serviceName!""} yoherejwe. Icyanya cy'inganda: ${industrialPark!""} Ubuso bw'ikibanza: ${plotSize!""} m² Nomero yo kwishyuriraho: ${billReferenceNumber!""} Amafaranga yo kwishyura: ${price!""} ${currency!""} Mwishyure mbere ya: ${paymentExpiration!""} Aho dosiye igeze: Gutegereza kwishyura. Murakoze gukoresha IremboGov. Mukeneye ubufasha, mwandikire support@irembo.com cyangwa muhamagare 9099. Niba iyi imeyili yabagezeho ku bw'impanuka, muyirengagize. |
| FR | Cher(e) ${applicantName!""}, votre demande de ${serviceName!""} a été soumise. Numéro de facture : ${billReferenceNumber!""}. Montant : ${price!""} ${currency!""}. Payez avant le ${paymentExpiration!""}. Assistance : 9099. | Demande soumise | Cher(e) ${applicantName!""}, Votre demande de ${serviceName!""} a été soumise. Parc industriel : ${industrialPark!""} Taille de la parcelle : ${plotSize!""} m² Numéro de facture : ${billReferenceNumber!""} Frais à payer : ${price!""} ${currency!""} À payer avant le : ${paymentExpiration!""} Statut : paiement en attente. Merci d'utiliser IremboGov. Besoin d'aide ? Écrivez à support@irembo.com ou appelez le 9099. Si vous avez reçu cet e-mail par erreur, veuillez l'ignorer. |
| Lang | SMS | Email subject | Email body |
|---|---|---|---|
| EN | Dear ${applicantName!""}, we received your payment for ${serviceName!""}. Application number: ${applicationNumber!""}. KIPA will review it. For support, call 9099. | Payment received | Dear ${applicantName!""}, We received your payment of ${price!""} ${currency!""} for ${serviceName!""}. Application number: ${applicationNumber!""} Status: Submitted. Your application will be reviewed by KIPA, and you will be notified of every change in its status. Need help? Email support@irembo.com or call 9099. |
| RW | Kuri ${applicantName!""}, twakiriye ubwishyu bwanyu bwa ${serviceName!""}. Nomero ya dosiye: ${applicationNumber!""}. KIPA izayisuzuma. Ubufasha: 9099. | Ubwishyu bwakiriwe | Kuri ${applicantName!""}, Twakiriye ubwishyu bwanyu bwa ${price!""} ${currency!""} kuri ${serviceName!""}. Nomero ya dosiye: ${applicationNumber!""} Aho dosiye igeze: Yoherejwe. KIPA izasuzuma dosiye yanyu, kandi muzamenyeshwa impinduka zose. Mukeneye ubufasha, mwandikire support@irembo.com cyangwa muhamagare 9099. |
| FR | Cher(e) ${applicantName!""}, nous avons reçu votre paiement pour ${serviceName!""}. Numéro de demande : ${applicationNumber!""}. La KIPA va l'examiner. Assistance : 9099. | Paiement reçu | Cher(e) ${applicantName!""}, Nous avons reçu votre paiement de ${price!""} ${currency!""} pour ${serviceName!""}. Numéro de demande : ${applicationNumber!""} Statut : soumis. Votre demande sera examinée par la KIPA et vous serez informé(e) de tout changement de statut. Besoin d'aide ? Écrivez à support@irembo.com ou appelez le 9099. |
| Lang | SMS | Email subject | Email body |
|---|---|---|---|
| EN | Dear ${applicantName!""}, the bill ${billReferenceNumber!""} for ${serviceName!""} has expired. You can still pay it; otherwise apply again. For support, call 9099. | Payment expired | Dear ${applicantName!""}, The payment period of your application for ${serviceName!""} (bill ${billReferenceNumber!""}) has ended. You can still pay the bill; otherwise, submit a new application. Need help? Call 9099. |
| RW | Kuri ${applicantName!""}, igihe cyo kwishyura ${billReferenceNumber!""} kuri ${serviceName!""} cyarangiye. Mushobora kwishyura; bitabaye ibyo mwongere musabe. Ubufasha: 9099. | Igihe cyo kwishyura cyarangiye | Kuri ${applicantName!""}, Igihe cyo kwishyura dosiye yanyu isaba ${serviceName!""} (nomero ${billReferenceNumber!""}) cyarangiye. Mushobora kwishyura; bitabaye ibyo, mwongere musabe. Mukeneye ubufasha, muhamagare 9099. |
| FR | Cher(e) ${applicantName!""}, la facture ${billReferenceNumber!""} pour ${serviceName!""} a expiré. Vous pouvez encore la payer ; sinon, faites une nouvelle demande. Assistance : 9099. | Paiement expiré | Cher(e) ${applicantName!""}, Le délai de paiement de votre demande de ${serviceName!""} (facture ${billReferenceNumber!""}) est dépassé. Vous pouvez encore payer la facture ; sinon, soumettez une nouvelle demande. Besoin d'aide ? Appelez le 9099. |
| Lang | SMS | Email subject | Email body |
|---|---|---|---|
| EN | Dear ${applicantName!""}, your application ${applicationNumber!""} for ${serviceName!""} is approved. Industrial park: ${industrialPark!""}. Size of plot: ${plotSize!""} m². Your contract was sent by email and can be downloaded on Irembo. For support, call 9099. | Application approved | Dear ${applicantName!""}, Your application ${applicationNumber!""} for ${serviceName!""} is approved. Industrial park: ${industrialPark!""} Size of plot: ${plotSize!""} m² Status: Approved. Your amended lease contract is attached. You can also download it on Irembo. Thank you for using IremboGov. Need help? Email support@irembo.com or call 9099. |
| RW | Kuri ${applicantName!""}, dosiye yanyu ${applicationNumber!""} isaba ${serviceName!""} yemejwe. Icyanya cy'inganda: ${industrialPark!""}. Ubuso bw'ikibanza: ${plotSize!""} m². Amasezerano yoherejwe kuri imeyili kandi mushobora kuyakura kuri Irembo. Ubufasha: 9099. | Dosiye yemejwe | Kuri ${applicantName!""}, Dosiye yanyu ${applicationNumber!""} isaba ${serviceName!""} yemejwe. Icyanya cy'inganda: ${industrialPark!""} Ubuso bw'ikibanza: ${plotSize!""} m² Aho dosiye igeze: Yemejwe. Amasezerano yanyu y'ubukode yavuguruwe ari ku mugereka. Mushobora kandi kuyakura kuri Irembo. Murakoze gukoresha IremboGov. Mukeneye ubufasha, mwandikire support@irembo.com cyangwa muhamagare 9099. |
| FR | Cher(e) ${applicantName!""}, votre demande ${applicationNumber!""} de ${serviceName!""} est approuvée. Parc industriel : ${industrialPark!""}. Taille de la parcelle : ${plotSize!""} m². Votre contrat a été envoyé par e-mail et peut être téléchargé sur Irembo. Assistance : 9099. | Demande approuvée | Cher(e) ${applicantName!""}, Votre demande ${applicationNumber!""} de ${serviceName!""} est approuvée. Parc industriel : ${industrialPark!""} Taille de la parcelle : ${plotSize!""} m² Statut : approuvé. Votre contrat de bail modifié est joint. Vous pouvez aussi le télécharger sur Irembo. Merci d'utiliser IremboGov. Besoin d'aide ? Écrivez à support@irembo.com ou appelez le 9099. |
Attachment name: EN "Lease contract", RW "Amasezerano y'ubukode", FR "Contrat de bail".
| Lang | SMS | Email subject | Email body |
|---|---|---|---|
| EN | Dear ${applicantName!""}, your application ${applicationNumber!""} for ${serviceName!""} was rejected. Industrial park: ${industrialPark!""}. Reason: ${comment!""}. For support, call 9099. | Application rejected | Dear ${applicantName!""}, Your application for ${serviceName!""} was rejected. Industrial park: ${industrialPark!""} Size of plot: ${plotSize!""} m² Application number: ${applicationNumber!""} Status: Rejected. Reason for rejection: ${comment!""} Need help? Email support@irembo.com or call 9099. |
| RW | Kuri ${applicantName!""}, dosiye yanyu ${applicationNumber!""} isaba ${serviceName!""} yanzwe. Icyanya cy'inganda: ${industrialPark!""}. Impamvu: ${comment!""}. Ubufasha: 9099. | Dosiye yanzwe | Kuri ${applicantName!""}, Dosiye yanyu isaba ${serviceName!""} yanzwe. Icyanya cy'inganda: ${industrialPark!""} Ubuso bw'ikibanza: ${plotSize!""} m² Nomero ya dosiye: ${applicationNumber!""} Aho dosiye igeze: Yanzwe. Impamvu: ${comment!""} Mukeneye ubufasha, mwandikire support@irembo.com cyangwa muhamagare 9099. |
| FR | Cher(e) ${applicantName!""}, votre demande ${applicationNumber!""} de ${serviceName!""} a été rejetée. Parc industriel : ${industrialPark!""}. Motif : ${comment!""}. Assistance : 9099. | Demande rejetée | Cher(e) ${applicantName!""}, Votre demande de ${serviceName!""} a été rejetée. Parc industriel : ${industrialPark!""} Taille de la parcelle : ${plotSize!""} m² Numéro de demande : ${applicationNumber!""} Statut : rejetée. Motif du rejet : ${comment!""} Besoin d'aide ? Écrivez à support@irembo.com ou appelez le 9099. |
| Lang | SMS | Email subject | Email body |
|---|---|---|---|
| EN | Dear ${applicantName!""}, the processing officer asks you to change your application ${applicationNumber!""} for ${serviceName!""}. Remarks: ${comment!""}. Find it on IremboGov or visit an agent. For support, call 9099. | Action required on your application | Dear ${applicantName!""}, The processing officer asks you to make changes to your application for ${serviceName!""}. Please follow the officer's remarks below. Application number: ${applicationNumber!""} Status: Requested for action. Officer's remarks: ${comment!""} You can make the changes by opening your application on IremboGov, or through an IremboGov agent. You will not pay again. Need help? Email support@irembo.com or call 9099. |
| RW | Kuri ${applicantName!""}, umukozi ukurikirana dosiye yanyu ${applicationNumber!""} isaba ${serviceName!""} yasabye ko muyihindura. Ibisobanuro: ${comment!""}. Mushobora kubikora kuri IremboGov cyangwa ku mukozi wa IremboGov. Ubufasha: 9099. | Dosiye yanyu isaba gukosorwa | Kuri ${applicantName!""}, Umukozi ukurikirana dosiye yanyu isaba ${serviceName!""} yasabye ko muhindura bimwe. Mukurikize ibisobanuro bye biri hasi. Nomero ya dosiye: ${applicationNumber!""} Aho dosiye igeze: Hasabwe gukosora. Ibisobanuro by'umukozi: ${comment!""} Mushobora gukora izo mpinduka mufunguye dosiye yanyu kuri IremboGov, cyangwa mukoresheje umukozi wa IremboGov. Ntimuzongera kwishyura. Mukeneye ubufasha, mwandikire support@irembo.com cyangwa muhamagare 9099. |
| FR | Cher(e) ${applicantName!""}, l'agent demande des modifications à votre demande ${applicationNumber!""} de ${serviceName!""}. Remarques : ${comment!""}. Rendez-vous sur IremboGov ou chez un agent. Assistance : 9099. | Action requise sur votre demande | Cher(e) ${applicantName!""}, L'agent chargé de votre demande de ${serviceName!""} vous demande d'y apporter des modifications. Veuillez suivre ses remarques ci-dessous. Numéro de demande : ${applicationNumber!""} Statut : action demandée. Remarques de l'agent : ${comment!""} Vous pouvez effectuer ces modifications en ouvrant votre demande sur IremboGov, ou par l'intermédiaire d'un agent IremboGov. Vous ne paierez pas une seconde fois. Besoin d'aide ? Écrivez à support@irembo.com ou appelez le 9099. |
| Lang | SMS | Email subject | Email body |
|---|---|---|---|
| EN | Dear ${applicantName!""}, your application ${applicationNumber!""} for ${serviceName!""} was resubmitted. You will be notified of any change in its status. For support, call 9099. | Application resubmitted | Dear ${applicantName!""}, Your application for ${serviceName!""} was resubmitted. Application number: ${applicationNumber!""} Status: Resubmitted. It will be reviewed again, and you will be notified of any change in its status. Need help? Email support@irembo.com or call 9099. |
| RW | Kuri ${applicantName!""}, dosiye yanyu ${applicationNumber!""} isaba ${serviceName!""} yongeye koherezwa. Muzamenyeshwa impinduka zose. Ubufasha: 9099. | Dosiye yongeye koherezwa | Kuri ${applicantName!""}, Dosiye yanyu isaba ${serviceName!""} yongeye koherezwa. Nomero ya dosiye: ${applicationNumber!""} Aho dosiye igeze: Yongeye koherezwa. Izongera isuzumwe, kandi muzamenyeshwa impinduka zose. Mukeneye ubufasha, mwandikire support@irembo.com cyangwa muhamagare 9099. |
| FR | Cher(e) ${applicantName!""}, votre demande ${applicationNumber!""} de ${serviceName!""} a été soumise à nouveau. Vous serez informé(e) de tout changement de statut. Assistance : 9099. | Demande soumise à nouveau | Cher(e) ${applicantName!""}, Votre demande de ${serviceName!""} a été soumise à nouveau. Numéro de demande : ${applicationNumber!""} Statut : soumise à nouveau. Elle sera réexaminée et vous serez informé(e) de tout changement de statut. Besoin d'aide ? Écrivez à support@irembo.com ou appelez le 9099. |
| # | Title EN / FR / RW | EN | FR | RW |
|---|---|---|---|---|
| 1 | How to pay / Comment payer / Uburyo bwo kwishyura | Pay the fee shown on your bill within 72 hours, using any of the payment options. Make sure the limits of your payment method allow this amount. | Payez les frais indiqués sur votre facture dans les 72 heures, par l'un des moyens de paiement proposés. Vérifiez que les plafonds de votre moyen de paiement permettent ce montant. | Ishyura amafaranga ari ku nyemezabuguzi yawe mu masaha 72, ukoresheje bumwe mu buryo bwo kwishyura. Banza urebe ko imbibi z'uburyo ukoresha zemera aya mafaranga. |
| 2 | Application processing / Traitement de la demande / Gutunganya dosiye | After payment, your application is reviewed by KIPA at three levels. You receive an SMS or an email at every change of status. | Après le paiement, votre demande est examinée par la KIPA à trois niveaux. Vous recevez un SMS ou un e-mail à chaque changement de statut. | Nyuma yo kwishyura, dosiye yawe isuzumwa na KIPA ku nzego eshatu. Uzakira ubutumwa bugufi cyangwa imeyili igihe cyose aho dosiye igeze hahindutse. |
| 3 | When to expect the contract / Quand recevoir le contrat / Igihe uzabonera amasezerano | When the Director General approves your application, your amended contract is emailed to you. If you have no news within 30 days of payment, contact KIPA at info@kipa.example. | Lorsque le Directeur général approuve votre demande, votre contrat modifié vous est envoyé par e-mail. Sans nouvelles dans les 30 jours suivant le paiement, contactez la KIPA à info@kipa.example. | Umuyobozi Mukuru namara kwemeza dosiye yawe, amasezerano yavuguruwe azakoherezwa kuri imeyili. Niba nta makuru ubonye mu minsi 30 nyuma yo kwishyura, andikira KIPA kuri info@kipa.example. |
30 days after payment.
| Key | English | French | Kinyarwanda |
|---|---|---|---|
| requestedViaIrembo | Did you request the land in the industrial park through Irembo? (Yes / No) | Avez-vous demandé le terrain dans le parc industriel via Irembo ? (Oui / Non) | Waba warasabye ubutaka mu cyanya cyahariwe inganda unyuze ku Irembo? (Yego / Oya) |
| previousApplicationNumber | Application number of your land request on Irembo | Numéro de votre demande de terrain sur Irembo | Nomero ya dosiye wasabiyeho ubutaka ku Irembo |
| companyTin | Company TIN | Numéro d'identification fiscale (TIN) de l'entreprise | TIN y'ikigo cy'ubucuruzi |
| supplierName | Company Name | Nom de l'entreprise | Izina ry'ikigo cy'ubucuruzi |
| managerNames | Business Owner Name | Nom du propriétaire de l'entreprise | Izina rya nyir'ubucuruzi |
| category | Category of Registration (Domestic company / Foreign company / Cooperative) | Catégorie d'enregistrement (Société nationale / Société étrangère / Coopérative) | Icyiciro cy'iyandikisha (Ikigo cy'imbere mu gihugu / Ikigo cy'amahanga / Koperative) |
| companyLocation | Company Address (Province, District, Sector, Cell, Village) | Adresse de l'entreprise (Province, District, Secteur, Cellule, Village) | Aho ikigo giherereye (Intara, Akarere, Umurenge, Akagari, Umudugudu) |
| idDocumentType | Identification Document Type (National ID / Foreigner ID / Refugee ID / Passport) | Type de document d'identification (Carte d'identité nationale / Carte d'identité pour étranger / Carte d'identité de réfugié / Passeport) | Ubwoko bw'inyandiko iranga umuntu (Indangamuntu / Indangamuntu y'umunyamahanga / Indangamuntu y'impunzi / Pasiporo) |
| idNumber | Rwandan ID Number | Numéro d'identification rwandais | Nomero y'indangamuntu |
| passportNumber | Passport Number | Numéro de passeport | Nomero ya pasiporo |
| countryOfIssue | Country of Issue | Pays de délivrance | Igihugu cyatanze pasiporo |
| surname | Surname | Nom de famille | Izina ry'umuryango |
| otherNames | Other Names | Autres noms | Andi mazina |
| managingDirector | Managing Director | Directeur général de l'entreprise | Umuyobozi mukuru w'ikigo |
| Imeyili | |||
| phone | Phone Number | Numéro de téléphone | Nomero ya telefoni |
| amendmentReason | Reason for Amendment of Contract (Land size change / Change of ownership / Others) | Motif de la modification du contrat (Modification de la superficie / Changement de propriétaire / Autres) | Impamvu yo kuvugurura amasezerano (Guhindura ubuso bw'ubutaka / Guhindura nyir'ubutaka / Ibindi) |
| otherReason | Other Reason | Autre motif | Indi mpamvu |
| industrialPark | Industrial Park | Parc industriel | Icyanya cy'inganda |
| plotSize | Size of Plot in Square Meters | Taille de la parcelle en mètres carrés | Ubuso bw'ikibanza muri metero kare |
| previousTotalAmount | Previous Total Amount (RWF) | Montant total précédent (RWF) | Amafaranga yose aheruka gutangwa (RWF) |
| paymentCurrency | Currency of Payment (RWF / USD) | Devise de paiement (RWF / USD) | Ifaranga ryo kwishyura (RWF / USD) |
| previousContract | Previous Contract | Contrat précédent | Amasezerano aheruka |
| businessPlan | Business Plan | Plan d'affaires | Iteganyabikorwa ry'ubucuruzi |
| architecturalDrawings | Tentative Architectural Drawings | Plans architecturaux provisoires | Ibishushanyo mbonera by'agateganyo by'ubwubatsi |
| passportCopy | Copy of Passport | Copie du passeport | Kopi ya pasiporo |
| deedPlan | Deed Plan / Cadastral Document | Plan de l'acte / document cadastral | Ifishi y'ibipimo ndangahantu |
| investmentCertificate | Investment Certificate | Certificat d'investissement | Icyemezo cy'ishoramari |
Park names stay in English in all languages (they are option values read by the certificate). Translate only their display labels: FR "Parc industriel de Huye", RW "Icyanya cyahariwe inganda cya Huye", and so on for the eight parks.
Synthetic data only. For the Rwandan ID path, use the test ID your trainer gives you. Never type a real person's ID.
| Case | Input | Expected |
|---|---|---|
| TC1 Formula | requestedViaIrembo NO, TIN 100000001, "Test Manufacturing Ltd", PASSPORT TP000001, Kenya, LAND_SIZE_CHANGE, Huye Industrial Park, plotSize 2500, previous total 1000000, RWF, PDFs under 2 MB |
Bill of 75,000 RWF on account GOR-CG-RWF, code RRA-bef6f41c2a |
| TC2 Fixed USD | Same, CHANGE_OF_OWNERSHIP, USD | Bill of 80 USD on account GOR-CG-USD, code RRA-554e6e0550 |
| TC3 Conditional fields | idDocumentType PASSPORT, then NATIONAL_ID | Passport number, country and passport copy appear, then disappear; Rwandan ID appears |
| TC4 Conditional attachment | OTHERS | Other reason shown; deed plan hidden; bill 30,000 RWF |
| TC5 Three levels | TC1 paid → L1 Recommend → L2 Recommend → L3 Approve and issue contract (UPI 1/02/03/04/1234, new total 1075000, start date) |
APPROVED; contract shows the park, Kenya, TP000001, the UPI, 1075000 RWF, the L3 officer's name and date; N4 with attachment |
| TC6 Correction at L2 | L2 Request for action → applicant edits plotSize → resubmit | Back in PENDING_OFFICER_PROCESSING_LEVEL_2, same office; the bill is not regenerated |
| TC7 Reject at L1 | L1 Reject with a comment | REJECTED; N5 shows the comment |
| TC8 Missing officer input | L3 tries to approve without UPI | Blocked by the officer form validation |
| TC9 Languages | Switch to FR and RW | No English text or raw key left |
Deliverables for B10: the change request link and the application numbers of TC1 (approved), TC2 (paid), TC6 and TC7.