UiPath Documentation
industry-department-solutions
latest
false
Financial Services Solutions user guide
  • Overview
    • About financial services solutions
  • Financial Crime Compliance (FCC) solutions
  • Loan Origination Solution

RPA integration contracts

Data contracts for customer-built RPAs that integrate with the Loan Setup capability, defining the input and output schema each RPA must satisfy to extract and deliver data from your systems of record.

This page defines the data contracts for customer-built RPAs that integrate with the Loan Setup capability. Customers are responsible for building RPAs that extract data from their systems of record and deliver it in the formats specified below.

Overview​

The Loan Setup capability requires data from multiple banking systems that are unique to your institution. To connect it to your systems, RPAs must be built that:

  • Call the Maestro process API endpoint with a loan_id to start processing
  • Call the Maestro process Mark Loan as Completed API endpoint to signal that a loan phase is finished
  • Pull document data from the systems of record and write to Orchestrator storage buckets
  • Pull JSON/XML data from the systems of record
  • Transform data into the standardized formats defined in this document

RPA registry pattern​

Customers should register their data integration RPAs with the solution by placing their RPA type, path, and related details into the Data Fabric FINSProcessRegistry table. The Maestro process will invoke these RPAs by name during execution.

FINSProcessRegistry table schema

FieldTypeRequiredUniqueDescription
IdstringYesNoInternal primary key
RPANameNVARCHAR(200)YesYesRPA identifier used for invocation
DisplayNameNVARCHAR(500)NoNoHuman-readable name
DescriptionNVARCHAR(2000)NoNoWhat this RPA does
OrchestratorFolderPathNVARCHAR(500)YesNoOrchestrator folder path where the process is deployed
ProcessNameNVARCHAR(200)YesNoProcess name in Orchestrator
ProcessTypeFINSProcessTypeYesNoType: DocumentRetrieval, DataRetrieval, or DataParse
FindingCategorychoice setYesNoFinding category, such as Extraction, LoanOfficerEmail, ManagerEmail, Summary, or Risk
RPATypeVersionNVARCHAR(50)YesNoVersion of the RPA type contract (for example, 1)
EntryPointNameNVARCHAR(200)YesNoEntry point name within the process
ProcessInputTemplateNVARCHARNoNoJSON template with variables that Maestro fills when it invokes the process
IsActiveBITYesNoWhether the RPA is enabled
CreatedAtDATETIMEOFFSETYesNoWhen the RPA was registered

RPA types

The customer-built data integration RPAs use the following three standard ProcessType values.

RPATypePurposeWhen invoked
DataRetrievalPull structured data from core banking, LOS, or other systemsAfter loan trigger
DataParseTransform or parse retrieved data into standardized formats, once per sourceAfter DataRetrieval
DocumentRetrievalPull the loan's document files and write them to the storage bucket under the provided prefixAfter loan trigger

Process Trigger Contract​

To start the Loan Setup workflow, the customer's dispatcher RPA calls the Maestro process's HTTP API endpoint when a new loan requires processing. UiPath does not provide this dispatcher; your institution builds and maintains it. UiPath provides the exact API endpoint URL after deployment.

Request payload example

{
  "version": "1.0.0",
  "loan_id": "LOAN-2025-001234"
}
{
  "version": "1.0.0",
  "loan_id": "LOAN-2025-001234"
}

Field definitions

FieldTypeRequiredDescription
versionstringYesContract version as a semantic-versioning string (for example, 1.0.0).
loan_idstringYesUnique loan identifier from the Loan Origination System. This ID is used to correlate all data extraction and agent outputs.

Implementation notes

  1. Dispatcher responsibility: Your institution builds and maintains the dispatcher RPA or process that monitors the LOS for loan changes and calls the API trigger. UiPath does not provide this dispatcher.
  2. Idempotency: If the same loan_id is submitted multiple times, the solution processes it again. Preventing duplicate submissions is the dispatcher's responsibility.

Authentication and invocation​

The trigger is protected by UiPath Identity. The customer-built dispatcher is registered as a confidential external application, and its client secret belongs in a secure, server-side secret store. The secret must never be embedded in a browser application or in source control.

Required registration​

The dispatcher requires a Confidential application registered in UiPath Admin with the OR.Jobs.Write scope. Its generated client ID and client secret are the credentials used to obtain an access token, and both are stored securely.

Token request​

The client credentials are exchanged for a short-lived access token:

curl --location 'https://cloud.uipath.com/identity_/connect/token' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'client_id=<external-app-client-id>' \
  --data-urlencode 'client_secret=<external-app-client-secret>' \
  --data-urlencode 'grant_type=client_credentials'
curl --location 'https://cloud.uipath.com/identity_/connect/token' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'client_id=<external-app-client-id>' \
  --data-urlencode 'client_secret=<external-app-client-secret>' \
  --data-urlencode 'grant_type=client_credentials'
Trigger invocation​

The Maestro endpoint that UiPath provides after deployment accepts the access token as a bearer token:

curl --location 'https://cloud.uipath.com/<organization-id>/<tenant-name>/orchestrator_/t/<agentic-process-trigger-id>/agenticprocess' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer <access-token>' \
  --data '{"version":"1.0.0","loan_id":"LOAN-2025-001234"}'
curl --location 'https://cloud.uipath.com/<organization-id>/<tenant-name>/orchestrator_/t/<agentic-process-trigger-id>/agenticprocess' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer <access-token>' \
  --data '{"version":"1.0.0","loan_id":"LOAN-2025-001234"}'

Each token is refreshed before the next invocation, or cached only for the lifetime returned in the token response.

Mark Loan as Completed Contract​

After a loan has finished a lifecycle phase, the customer's RPA calls a separate API endpoint to signal completion. Loan Setup updates the loan status to Completed. This endpoint is idempotent: if the loan is already in that state, it returns success with already_completed=true and takes no further action.

Request payload example

{
  "loan_id": "LOAN-2025-001234",
  "loan_phase": "Origination",
  "loan_type": "HELOC"
}
{
  "loan_id": "LOAN-2025-001234",
  "loan_phase": "Origination",
  "loan_type": "HELOC"
}

Field definitions

FieldTypeRequiredDescription
loan_idstringYesLoan identifier matching the one used in the Process Trigger.
loan_phasestringYesPhase being marked complete, for example Origination or QAQC. Scopes the completion event to a specific stage of the loan lifecycle.
loan_typestringYesLoan product type, for example HELOC or Mortgage. Recorded in the audit log alongside the completion event.

Implementation notes

  1. Idempotency: If the loan is already in Completed state, the call returns success with already_completed=true and takes no further action.
  2. Dispatcher responsibility: Your institution builds and maintains the process that calls this endpoint. UiPath does not provide this dispatcher.

Data Retrieval RPA Contract​

This RPA retrieves raw data from multiple source systems, including Core Banking and the LOS, in a single call and returns it to Loan Setup.

Important:

This RPA returns the raw data exactly as it comes from each source system. The data transformation and mapping happen in the Data Parse RPA Contract.

RPA input example

{
  "version": "1.0.0",
  "loan_id": "LOAN-2025-001234"
}
{
  "version": "1.0.0",
  "loan_id": "LOAN-2025-001234"
}

Input fields

FieldTypeRequiredDescription
versionstringYesContract version as a semantic-versioning string (for example, 1.0.0)
loan_idstringYesLoan identifier to retrieve data for

RPA output example

Returns raw data from each source. The custom_data structure varies by source system.

{
  "version": "1.0.0",
  "loan_id": "LOAN-2025-001234",
  "external_loan_id": "001234-02",
  "success": true,
  "sources": [
    {
      "friendly_name": "los",
      "source_system": "LOS",
      "extraction_timestamp": "2025-01-15T11:00:00Z",
      "success": true,
      "custom_data": {
        "source_loan_id": "001234-02",
        "account_number": "001234",
        "application_id": "02",
        "app_date": "2024-11-05",
        "loan_amount": "42900.00",
        "appraised_amount": "564000.00",
        "ltv_ratio": "31.638%",
        "new_expense_ratio": "290.970%",
        "occupancy_type": "Owner-Occupied",
        "purpose_of_loan": "Home Improvement",
        "loan_type": "HELOC",
        "disclosures_date": "2024-11-04",
        "due_date_for_disclosures": "2024-11-08",
        "loan_officer_name": "John Smith",
        "loan_officer_email": "jsmith@examplecu.com",
        "assigned_user": "Mary Johnson",
        "assigned_user_email": "mjohnson@examplecu.com",
        "qualifying_credit_score": "712",
        "applicants": [{"...": "..."}],
        "credit_reports": [{"...": "..."}],
        "property": {"...": "..."},
        "compliance": {"...": "..."},
        "application_notes": [{"...": "..."}]
      }
    }
  ]
}
{
  "version": "1.0.0",
  "loan_id": "LOAN-2025-001234",
  "external_loan_id": "001234-02",
  "success": true,
  "sources": [
    {
      "friendly_name": "los",
      "source_system": "LOS",
      "extraction_timestamp": "2025-01-15T11:00:00Z",
      "success": true,
      "custom_data": {
        "source_loan_id": "001234-02",
        "account_number": "001234",
        "application_id": "02",
        "app_date": "2024-11-05",
        "loan_amount": "42900.00",
        "appraised_amount": "564000.00",
        "ltv_ratio": "31.638%",
        "new_expense_ratio": "290.970%",
        "occupancy_type": "Owner-Occupied",
        "purpose_of_loan": "Home Improvement",
        "loan_type": "HELOC",
        "disclosures_date": "2024-11-04",
        "due_date_for_disclosures": "2024-11-08",
        "loan_officer_name": "John Smith",
        "loan_officer_email": "jsmith@examplecu.com",
        "assigned_user": "Mary Johnson",
        "assigned_user_email": "mjohnson@examplecu.com",
        "qualifying_credit_score": "712",
        "applicants": [{"...": "..."}],
        "credit_reports": [{"...": "..."}],
        "property": {"...": "..."},
        "compliance": {"...": "..."},
        "application_notes": [{"...": "..."}]
      }
    }
  ]
}

The abbreviated nested values show the shape of custom_data. The complete contents vary by source system.

Output fields

FieldTypeDescription
versionstringSchema version as a semantic-versioning string
loan_idstringLoan identifier from the LOS
external_loan_idstringSource-system loan identifier
successbooleanWhether retrieval completed successfully
sources[]arrayArray of source data objects
sources[].friendly_namestringLogical name for this source (e.g., core, los)
sources[].source_systemstringActual system name (e.g., Symitar, Encompass)
sources[].extraction_timestampdatetimeWhen the data was extracted
sources[].successbooleanWhether this source was queried successfully
sources[].custom_dataobjectRaw data from source; structure varies by system
sources[].error_code / sources[].error_messagestringError details if success is false

Data Parse RPA Contract​

This RPA transforms raw data from a single source system into the well-known schema that Loan Setup expects. Loan Setup calls this RPA once for each source returned by DataRetrieval.

RPA input example

Loan Setup passes one source's raw data at a time.

{
  "version": "1.0.0",
  "loan_id": "LOAN-2025-001234",
  "external_loan_id": "001234-02",
  "friendly_name": "los",
  "source_system": "LOS",
  "extraction_timestamp": "2025-01-15T11:00:00Z",
  "custom_data": {
    "source_loan_id": "001234-02",
    "account_number": "001234",
    "application_id": "02",
    "app_date": "2024-11-05",
    "loan_amount": "42900.00",
    "...": "..."
  }
}
{
  "version": "1.0.0",
  "loan_id": "LOAN-2025-001234",
  "external_loan_id": "001234-02",
  "friendly_name": "los",
  "source_system": "LOS",
  "extraction_timestamp": "2025-01-15T11:00:00Z",
  "custom_data": {
    "source_loan_id": "001234-02",
    "account_number": "001234",
    "application_id": "02",
    "app_date": "2024-11-05",
    "loan_amount": "42900.00",
    "...": "..."
  }
}

Input fields

FieldTypeDescription
versionstringContract version as a semantic-versioning string (for example, 1.0.0)
loan_idstringLoan identifier for correlation
external_loan_idstringSource-system loan identifier used to trace the record back to the LOS
friendly_namestringLogical name for this source (e.g., core, los)
source_systemstringActual system name (e.g., Symitar, Encompass)
extraction_timestampdatetimeWhen the data was extracted
custom_dataobjectRaw data from the source system to be parsed/mapped

RPA output example

Returns data mapped to the well-known schema fields that Loan Setup consumes.

{
  "success": true,
  "loan_id": "LOAN-2025-001234",
  "external_loan_id": "001234-02",
  "friendly_name": "core",
  "source_system": "LOS",
  "extraction_timestamp": "2025-01-15T11:00:00Z",
  "mapped_data": {
    "source": "LOS",
    "source_loan_id": "001234-02",
    "version": "2.0.0",
    "custom_data": {
      "channel": "branch",
      "branch_id": "TPA-04"
    },
    "loan_info": {
      "loan_type": "HELOC",
      "loan_application_id": "001234-02",
      "account_number": "001234",
      "application_id": "02",
      "app_date": "2024-11-05",
      "loan_amount": "42900.00",
      "appraised_amount": "564000.00",
      "ltv_ratio": "31.638%",
      "new_expense_ratio": "290.970%",
      "occupancy_type": "Primary Residence",
      "purpose_of_loan": "Home Improvement",
      "disclosures_date": "2024-11-04",
      "due_date_for_disclosures": "2024-11-08",
      "loan_officer_name": "John Smith",
      "loan_officer_email": "jsmith@examplecu.com",
      "assigned_user": "Mary Johnson",
      "assigned_user_email": "mjohnson@examplecu.com",
      "qualifying_credit_score": "712",
      "custom_data": {
        "internal_promo_code": "REFI-2024-Q4",
        "underwriter_notes_ref": "UW-7741"
      }
    },
    "applicant": [
      {
        "applicant_type": "Main Applicant",
        "first_name": "JOHN",
        "middle_name": "A",
        "last_name": "DOE",
        "applicant_email": "john.doe@example.com",
        "ssn": "589050676",
        "date_of_birth": "1969-03-27",
        "applicant_street": "16039 PENWOOD DR",
        "applicant_city": "TAMPA",
        "applicant_state": "FL",
        "applicant_zip": "33647-1139",
        "occupancy_status": "Own",
        "employer_name": "GINGER HEALTH",
        "position": "PHYSICAL THERAPY",
        "employment_status": "Employed",
        "years_employed": "22",
        "monthly_income": "3511.11",
        "custom_data": {
          "employer_ein": "12-3456789",
          "los_applicant_id": "APP-1001"
        }
      },
      {
        "applicant_type": "Co-Borrower",
        "first_name": "JANE",
        "middle_name": "B",
        "last_name": "DOE",
        "ssn": "412738955",
        "date_of_birth": "1971-08-14",
        "applicant_street": "742 EVERGREEN TERRACE",
        "applicant_city": "ORLANDO",
        "applicant_state": "FL",
        "applicant_zip": "32801",
        "occupancy_status": "Rent",
        "employer_name": "ORLANDO REGIONAL MEDICAL CENTER",
        "position": "REGISTERED NURSE",
        "employment_status": "Employed",
        "years_employed": "12",
        "monthly_income": "5200.00"
      }
    ],
    "credit_report": [
      {
        "credit_report_first_name": "JOHN",
        "credit_report_last_name": "DOE",
        "credit_report_request_date": "2024-10-15",
        "credit_score": "750",
        "custom_data": {
          "bureau": "Experian",
          "report_id": "EXP-2024-10-15-A1B2"
        }
      },
      {
        "credit_report_first_name": "JANE",
        "credit_report_last_name": "DOE",
        "credit_report_request_date": "2024-10-15",
        "credit_score": "712"
      }
    ],
    "property": {
      "property_house_number": "16039",
      "property_street": "PENWOOD DR",
      "property_city": "TAMPA",
      "property_state": "FL",
      "property_zip_code": "33647",
      "property_county": "HILLSBOROUGH",
      "custom_data": {
        "apn": "U-12-28-19-0L8-000019",
        "flood_zone": "X",
        "hoa_monthly_fee": "85.00"
      }
    },
    "compliance": {
      "precise_id_auth_decision": "",
      "precise_id_prove_id_score": "",
      "precise_id_applicant_first_name": "",
      "precise_id_applicant_last_name": "",
      "precise_id_ssn": "",
      "precise_id_score": "",
      "precise_id_decision": "",
      "custom_data": {
        "ofac_check_status": "PASS",
        "cip_review_outcome": "CLEARED"
      }
    },
    "application_notes": [
      {
        "application_note_timestamp": "2024-11-05T14:30:00Z",
        "application_note_text": "---------- OFAC Check (PASS) ---------- ...",
        "application_note_user": "SYSTEM"
      },
      {
        "application_note_timestamp": "2024-11-04T10:21:00Z",
        "application_note_text": "Disclosures sent via DocuSign. BSA Docs & USPS OnBased. VALID IDS:YES",
        "application_note_user": "jsmith"
      },
      {
        "application_note_timestamp": "2024-11-03T09:15:00Z",
        "application_note_text": "This HELOC application is conditionally approved. ...",
        "application_note_user": "jsmith"
      },
      {
        "application_note_timestamp": "2024-11-01T08:45:00Z",
        "application_note_text": "Work flow started",
        "application_note_user": "SYSTEM"
      }
    ]
  }
}
{
  "success": true,
  "loan_id": "LOAN-2025-001234",
  "external_loan_id": "001234-02",
  "friendly_name": "core",
  "source_system": "LOS",
  "extraction_timestamp": "2025-01-15T11:00:00Z",
  "mapped_data": {
    "source": "LOS",
    "source_loan_id": "001234-02",
    "version": "2.0.0",
    "custom_data": {
      "channel": "branch",
      "branch_id": "TPA-04"
    },
    "loan_info": {
      "loan_type": "HELOC",
      "loan_application_id": "001234-02",
      "account_number": "001234",
      "application_id": "02",
      "app_date": "2024-11-05",
      "loan_amount": "42900.00",
      "appraised_amount": "564000.00",
      "ltv_ratio": "31.638%",
      "new_expense_ratio": "290.970%",
      "occupancy_type": "Primary Residence",
      "purpose_of_loan": "Home Improvement",
      "disclosures_date": "2024-11-04",
      "due_date_for_disclosures": "2024-11-08",
      "loan_officer_name": "John Smith",
      "loan_officer_email": "jsmith@examplecu.com",
      "assigned_user": "Mary Johnson",
      "assigned_user_email": "mjohnson@examplecu.com",
      "qualifying_credit_score": "712",
      "custom_data": {
        "internal_promo_code": "REFI-2024-Q4",
        "underwriter_notes_ref": "UW-7741"
      }
    },
    "applicant": [
      {
        "applicant_type": "Main Applicant",
        "first_name": "JOHN",
        "middle_name": "A",
        "last_name": "DOE",
        "applicant_email": "john.doe@example.com",
        "ssn": "589050676",
        "date_of_birth": "1969-03-27",
        "applicant_street": "16039 PENWOOD DR",
        "applicant_city": "TAMPA",
        "applicant_state": "FL",
        "applicant_zip": "33647-1139",
        "occupancy_status": "Own",
        "employer_name": "GINGER HEALTH",
        "position": "PHYSICAL THERAPY",
        "employment_status": "Employed",
        "years_employed": "22",
        "monthly_income": "3511.11",
        "custom_data": {
          "employer_ein": "12-3456789",
          "los_applicant_id": "APP-1001"
        }
      },
      {
        "applicant_type": "Co-Borrower",
        "first_name": "JANE",
        "middle_name": "B",
        "last_name": "DOE",
        "ssn": "412738955",
        "date_of_birth": "1971-08-14",
        "applicant_street": "742 EVERGREEN TERRACE",
        "applicant_city": "ORLANDO",
        "applicant_state": "FL",
        "applicant_zip": "32801",
        "occupancy_status": "Rent",
        "employer_name": "ORLANDO REGIONAL MEDICAL CENTER",
        "position": "REGISTERED NURSE",
        "employment_status": "Employed",
        "years_employed": "12",
        "monthly_income": "5200.00"
      }
    ],
    "credit_report": [
      {
        "credit_report_first_name": "JOHN",
        "credit_report_last_name": "DOE",
        "credit_report_request_date": "2024-10-15",
        "credit_score": "750",
        "custom_data": {
          "bureau": "Experian",
          "report_id": "EXP-2024-10-15-A1B2"
        }
      },
      {
        "credit_report_first_name": "JANE",
        "credit_report_last_name": "DOE",
        "credit_report_request_date": "2024-10-15",
        "credit_score": "712"
      }
    ],
    "property": {
      "property_house_number": "16039",
      "property_street": "PENWOOD DR",
      "property_city": "TAMPA",
      "property_state": "FL",
      "property_zip_code": "33647",
      "property_county": "HILLSBOROUGH",
      "custom_data": {
        "apn": "U-12-28-19-0L8-000019",
        "flood_zone": "X",
        "hoa_monthly_fee": "85.00"
      }
    },
    "compliance": {
      "precise_id_auth_decision": "",
      "precise_id_prove_id_score": "",
      "precise_id_applicant_first_name": "",
      "precise_id_applicant_last_name": "",
      "precise_id_ssn": "",
      "precise_id_score": "",
      "precise_id_decision": "",
      "custom_data": {
        "ofac_check_status": "PASS",
        "cip_review_outcome": "CLEARED"
      }
    },
    "application_notes": [
      {
        "application_note_timestamp": "2024-11-05T14:30:00Z",
        "application_note_text": "---------- OFAC Check (PASS) ---------- ...",
        "application_note_user": "SYSTEM"
      },
      {
        "application_note_timestamp": "2024-11-04T10:21:00Z",
        "application_note_text": "Disclosures sent via DocuSign. BSA Docs & USPS OnBased. VALID IDS:YES",
        "application_note_user": "jsmith"
      },
      {
        "application_note_timestamp": "2024-11-03T09:15:00Z",
        "application_note_text": "This HELOC application is conditionally approved. ...",
        "application_note_user": "jsmith"
      },
      {
        "application_note_timestamp": "2024-11-01T08:45:00Z",
        "application_note_text": "Work flow started",
        "application_note_user": "SYSTEM"
      }
    ]
  }
}

Output fields

FieldTypeDescription
successbooleanWhether parsing completed successfully
loan_idstringLoan identifier from the LOS
external_loan_idstringSource-system loan identifier used to trace the parsed record back to the LOS
friendly_namestringLogical name for the source
source_systemstringSource-system name
extraction_timestampdatetimeWhen the data was extracted from the source
mapped_dataobjectData mapped to well-known schema fields
mapped_data.loan_info.qualifying_credit_scorestringThree-digit qualifying credit score calculated by the LOS from all applicants and credit providers
mapped_data.applicant[].applicant_emailstringOptional applicant email address
mapped_data.<section>.custom_dataobjectOptional source-specific fields. Supported at mapped_data, loan_info, each applicant[] item, each credit_report[] item, property, and compliance

Enum-constrained fields​

Map values from your source system to the following canonical strings. Other values fail contract validation after the Data Parse RPA returns.

FieldAllowed values
mapped_data.loan_info.loan_typeAuto, CommercialRealEstate, HELOC, Mortgage
mapped_data.loan_info.occupancy_typePrimary Residence, Second Home, Investment Property, Manufactured Home, Hobby Farm
mapped_data.applicant[].applicant_typeMain Applicant, Co-Borrower, Non-Occupying Co-Borrower
mapped_data.applicant[].occupancy_statusOwn, Rent
mapped_data.applicant[].employment_statusEmployed, Self-Employed, Part-Time, Unemployed, Retired, Other

Document Retrieval RPA Contract​

Retrieves the loan's documents from the document repository, including OnBase, FileNet, and SharePoint, and writes them to the Orchestrator storage bucket. Loan Setup provides the target bucket and the loan's directory prefix; the RPA uploads every document for the loan under that prefix, preserving each file's own name.

Loan Setup then scans the prefix to build the document manifest. There is no separate metadata or index step.

Input fields

FieldTypeRequiredDescription
versionintegerYesContract version for compatibility checking
loan_idstringYesLoan identifier for correlation
target_bucket_namestringYesOrchestrator storage bucket to upload the files to
target_prefixstringYesThe loan's directory prefix within the bucket. Every document for this loan belongs under this prefix, and the RPA must not write outside it.
target_folderstringNoOrchestrator folder key where the target bucket lives

RPA input example

{
  "version": 2,
  "loan_id": "LOAN-2025-001234",
  "target_bucket_name": "LoanSetup",
  "target_prefix": "LOAN-2025-001234"
}
{
  "version": 2,
  "loan_id": "LOAN-2025-001234",
  "target_bucket_name": "LoanSetup",
  "target_prefix": "LOAN-2025-001234"
}

Output fields

FieldTypeDescription
versionintegerContract version, echoed from the input
loan_idstringLoan identifier, echoed from the input
statusenumOverall outcome: success or failed
uploadedarrayFile names uploaded under target_prefix

Loan Setup reconciles the uploaded list against the files it finds under target_prefix, which remain the source of truth.

Note:

An empty uploaded list (no files) is a valid, non-error outcome: Loan Setup records that there was nothing to extract or evaluate for the loan and completes the run.

RPA output example

{
  "version": 2,
  "loan_id": "LOAN-2025-001234",
  "status": "success",
  "uploaded": [
    "Application_Form.pdf",
    "Credit_Report.pdf",
    "Appraisal.pdf"
  ]
}
{
  "version": 2,
  "loan_id": "LOAN-2025-001234",
  "status": "success",
  "uploaded": [
    "Application_Form.pdf",
    "Credit_Report.pdf",
    "Appraisal.pdf"
  ]
}

Browser application access and scopes​

The Loan Setup web application uses a non-confidential external application because it runs in the user's browser and cannot safely store a client secret. Users sign in with their own UiPath accounts through the OAuth 2.0 Authorization Code flow with Proof Key for Code Exchange (PKCE). The application receives a short-lived user access token that represents the signed-in user; it does not use a shared service account.

The scopes below define the maximum APIs and operations the application can request. A scope is a ceiling, not a permission grant: each signed-in user can access only the resources and actions allowed by their UiPath roles and folder permissions.

Orchestrator scopes:

ScopePurpose
OR.ExecutionTrigger and monitor process executions
OR.FoldersAccess folder structure
OR.JobsRead and manage job state
OR.Users.ReadRead user and group details needed to identify and display the signed-in user

Data Fabric scopes:

ScopePurpose
DataFabric.Data.ReadRead agent outputs and loan data from Data Fabric
DataFabric.Data.WriteWrite agent findings to Data Fabric
DataFabric.Schema.ReadRead Data Fabric schema definitions

Traces API scopes:

ScopePurpose
Traces.ApiAccess Maestro workflow execution traces for debugging and audit

Solutions Management scopes:

ScopePurpose
Solutions.Deployments.ReadRead which solution version is deployed; this scope cannot deploy, activate, or uninstall a solution

Infrastructure requirements​

The UiPath Robot machines executing the following RPA contracts must be running UiPath Robot version 25.10.x or higher:

  • DataRetrieval: retrieves raw loan data from source systems such as core banking and LOS
  • DataParse: transforms raw source data into the normalized schema expected by Maestro agents

This version requirement supports RPA input payloads larger than 10 KB, which are common when retrieving full loan records from core banking systems.

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated