Understanding RFIs
A Request for Information (RFI) is a formal request sent to a counterparty or within an organization to obtain specific information, typically sensitive or regulated data. RFIs facilitate secure communication, ensure compliance with industry regulations, and streamline the information-gathering process.
An RFI is central to many workflows, such as customer onboarding, counterparty assurance, and sanctions list match resolution. Understanding how RFIs function within the API is crucial for effectively integrating and automating these processes.
This page also explores the concept of a Draft, which allows you to compose and refine an RFI before making it active. Drafts provide flexibility and control over the information request process, ensuring accuracy and completeness before initiating the RFI workflow.
What is an RFI?
A Request for Information (RFI) in the API is a structured request that:
- Defines specific questions that need to be answered.
- Facilitates secure exchange of sensitive information.
- Manages the lifecycle of the information request through various states.
- Assigns responsibilities to different teams within the organization.
RFIs are represented as resources within the API and have unique identifiers used to track and manage them throughout their lifecycle.
Key Components of an RFI
An RFI consists of several key components:
1. Input Data
- Definition: Initial data provided when creating the RFI, adhering to the scenario's input schema.
- Purpose: Supplies necessary context and parameters for the RFI.
- Usage: Included in the
input
field when creating an RFI.
2. Questions
- Definition: A set of predefined questions or data points that need to be addressed.
- Purpose: Guides the assignee team on what information is required.
- Usage: Defined by the scenario and accessible via the RFI resource.
3. Teams
- Creator Team: Initiates the RFI.
- Broker Team: Facilitates and reviews the RFI process.
- Assignee Team: Responsible for responding to the RFI.
4. State
- Definition: The current status of the RFI in its lifecycle.
- Possible States:
- OPEN: Awaiting response from the assignee team.
- IN_PROGRESS: Responses are being provided.
- IN_REVIEW: Responses are under review by the broker team.
- COMPLETE: RFI process is completed.
- REJECTED: RFI is rejected by the assignee team.
- REVOKED: RFI is revoked by the broker team.
- EXPIRED: RFI has expired due to TTL.
- Purpose: Manages workflow and transitions between different stages.
Lifecycle of an RFI
Understanding the lifecycle of an RFI is crucial for managing the workflow effectively.
State Transitions
- Creation: RFI is created in the OPEN state.
- In Progress: Assignee team begins responding, RFI moves to IN_PROGRESS.
- Submission for Review: Responses are submitted, RFI moves to IN_REVIEW.
- Review:
- Approved: All responses are approved, RFI moves to COMPLETE.
- Rejected: Any response is rejected, RFI reverts to IN_PROGRESS.
- Completion: RFI is completed, and responsibility returns to the creator team.
- Alternate Paths:
- Rejection: Assignee team cannot fulfill the RFI, moves to REJECTED.
- Revocation: Broker team revokes the RFI, moves to REVOKED.
- Expiration: RFI expires based on TTL, moves to EXPIRED.
Workflow Participants
- Assignee Team: Responds to the RFI.
- Broker Team: Reviews responses.
- Creator Team: Initiates RFI and receives it upon completion.
What is a Draft?
A Draft in the is a preliminary version of an RFI that allows you to:
- Compose and refine the RFI before making it active.
- Collaborate internally to ensure all necessary information is included.
- Review and adjust input data and configurations.
Drafts are optional but provide additional control and flexibility in the RFI creation process.
How Drafts Tie into RFIs
Drafts serve as a staging area for RFIs:
- Creation: Start by creating a draft under a specific scenario.
- Modification: Update the draft as needed, modifying input data and team assignments.
- Internal Review: Share the draft within your organization for feedback.
- Publishing: Convert the draft into an active RFI using the
PublishDraft
operation. - Deletion: Remove drafts that are no longer needed.
When to Use Drafts
- Complex RFIs: When the RFI requires careful preparation and collaboration.
- Internal Approval: Before initiating the RFI, internal stakeholders need to review it.
- Iterative Development: Refining the RFI over multiple iterations before finalizing.
Creating an RFI Directly
- If the RFI is straightforward and does not require internal refinement, you can create it directly without a draft.
- This streamlines the process and reduces the number of steps involved.
Managing Drafts
Creating a Draft
Request
POST /request/v1alpha/scenarios/{scenario}/drafts Host: api.{customer}.app.identitii.com Authorization: Bearer {access_token} Content-Type: application/json { "input": { /* Input data adhering to the scenario's schema */ }, "creator_team": "teams/{creator_team_id}", "broker_team": "teams/{broker_team_id}", "assignee_team": "teams/{assignee_team_id}" }
Response
{ "name": "scenarios/{scenario}/drafts/{draft_id}", /* Draft details */ }
Publishing a Draft
Convert a draft into an active RFI.
Request
POST /request/v1alpha/scenarios/{scenario}/drafts/{draft_id}:publish Host: api.{customer}.app.identitii.com Authorization: Bearer {access_token} Content-Type: application/json {}
Response
{ "rfi": { "name": "scenarios/{scenario}/rfis/{rfi_id}", /* RFI details */ } }
Updating a Draft
Modify an existing draft.
Request
PATCH /request/v1alpha/scenarios/{scenario}/drafts/{draft_id} Host: api.{customer}.app.identitii.com Authorization: Bearer {access_token} Content-Type: application/json { /* Fields to update */ }
Deleting a Draft
Remove a draft that is no longer needed.
Request
DELETE /request/v1alpha/scenarios/{scenario}/drafts/{draft_id} Host: api.{customer}.app.identitii.com Authorization: Bearer {access_token}
Best Practices
Decide Whether to Use Drafts
- Use Drafts When:
- The RFI requires internal collaboration and multiple iterations.
- Accuracy and completeness are critical, and pre-review is necessary.
- Create RFIs Directly When:
- The RFI is simple and can be initiated without internal refinement.
- Speed is essential, and the information required is straightforward.
Manage Drafts Effectively
- Organize Drafts: Keep track of drafts to prevent clutter.
- Review Regularly: Periodically review drafts to decide whether to publish or delete them.
- Use Annotations: Leverage the
annotations
field to add metadata to drafts for easier tracking.
Understand RFI States
- Familiarize yourself with the RFI lifecycle to manage workflows effectively.
- Monitor state transitions to ensure timely progression through the RFI process.
Additional Considerations
Error Handling
- Validation Errors: Ensure input data matches the scenario's schema to avoid validation errors.
- Concurrency Control: Use the
etag
field when updating or deleting resources to prevent conflicts. - Response Checks: Always inspect API responses for errors and handle them appropriately.
Permissions and Access Control
- API Credentials: Ensure your credentials have the necessary permissions to manage RFIs and drafts.
- Team Assignments: Verify that teams are correctly assigned and have access to the RFIs and drafts they are responsible for.
Annotations
- Use
annotations
to store custom metadata for RFIs and drafts. - Helpful for internal tracking, categorization, or adding notes.
Conclusion
An RFI is a powerful tool for securely requesting and managing sensitive information. Understanding how RFIs function, their lifecycle, and how Drafts tie into the process allows you to:
- Optimize Workflows: Choose between creating an RFI directly or starting with a draft based on your needs.
- Enhance Collaboration: Use drafts to collaborate internally before initiating the RFI process.
- Maintain Compliance: Ensure all necessary information is accurately captured and securely exchanged.
By effectively leveraging RFIs and drafts, you can streamline your organization's information-gathering processes, improve efficiency, and maintain regulatory compliance.
Next Steps
- Implement RFI Workflows: Integrate RFIs into your business processes based on the guidelines provided.
- Utilize Drafts as Needed: Determine when drafts are beneficial for your workflows and implement accordingly.
- Explore Scenarios and Teams: Understand how scenarios define RFI structures and how teams facilitate collaboration.
Note: Replace placeholders like {customer}
, {access_token}
, {scenario}
, {draft_id}
, {rfi_id}
, {creator_team_id}
, {broker_team_id}
, and {assignee_team_id}
with your actual values when making API calls.