Integration Overview
Background & References
The UBI Network is built as a fork of the ONEST Financial Domain. The underlying Beckn-style protocol and interaction patterns remain consistent with ONEST.
For further details and foundational concepts, you can refer to the ONEST Financial Domain documentation here: 👉 ONEST Financial Domain Documentation
Network Participant Roles
Any Network Participant (NP) can onboard to the UBI Network in one of the following roles:
Seeker (BAP) – An application that allows beneficiaries to discover and apply for benefits.
Provider (BPP) – An application that offers benefits and processes applications.
Dual Role (BAP + BPP) – A participant may also choose to operate as both Seeker and Provider simultaneously.
👉 For integration steps as a Seeker (BAP), refer to the Seeker Integration Guide. 👉 For integration steps as a Provider (BPP), refer to the Provider Integration Guide.
End-to-End Flow Between BAP and BPP
The UBI Network follows a standard request–response pattern between the Seeker (BAP) and Provider (BPP).
1. Search
BAP →
/searchThe Seeker app sends a search request to discover available benefits from providers.BPP →
/on_searchThe Provider responds with a list of available benefits and basic details.
2. Select
BAP →
/selectTriggered when the user selects a specific benefit to view more details.BPP →
/on_selectProvider shares:Detailed benefit information
Eligibility criteria
Required documents and proof types
Application form schema
The BAP dynamically generates the application form using the form schema received in the /on_select response.
The collected form data will later be sent in the /init call.
3. Init
BAP →
/initInitializes the application process for a selected benefit.Before calling
/init:The BAP creates an application record in its database.
A unique
bap_application_idis generated and included in the/initrequest.It is recommended to store:
transaction_idbap_application_idbenefit_idbpp_iduser_idCurrent
application_state(e.g., initiated)
Database Example (BAP):
FieldDescriptionbap_application_id
Unique ID generated on BAP
transaction_id
Shared across the lifecycle of the application
benefit_id
ID of the selected benefit
bpp_id
Target provider BPP
user_id
Beneficiary identifier
status
Initiated / Confirmed / Approved / Rejected
order_id
Received from BPP (post
/on_init)BPP →
/on_initWhen the BPP receives the/initrequest:It creates a new application record in its database.
It should store:
bap_application_idtransaction_idbap_iduser_idApplication metadata (VCs, form data, etc.)
The BPP then returns a response with:
order_id(to be stored by the BAP)Application form metadata or confirmation URL (if required)
4. Confirm
BAP →
/confirmThe Seeker app submits the completed application form along with user Verifiable Credentials (VCs).BPP →
/on_confirmThe Provider:Validates submitted data and VCs using the Verification SDK
Creates or updates an internal application record
Returns a response including:
bpp_application_idorder_idApplication
status(e.g., received, in-progress, approved, rejected)
The bpp_application_id returned must be stored by the BAP for reference and tracking.
5. Update (Optional)
If a user resubmits or modifies an existing application:
BAP →
/updateSends updated form data or documents for an existing transaction.BPP →
/on_updateUpdates the stored application record and returns acknowledgment.
6. Status
BAP →
/statusThe Seeker queries the current state of a submitted application.BPP →
/on_statusThe Provider returns:application_status(e.g., in-progress, approved, rejected)Associated benefit and form metadata
Any remarks or rejection reasons
This flow ensures smooth interaction between seekers and providers, with clear hand-offs at each stage.
Last updated
