RFI process for corporate customers

After submission, the status in the Onboard Corporate Customer response is IN_PROGRESS. The applicant needs to complete both the Applicant KYC (if applicable) and Upload documents steps to proceed further. Once done, Nium initiates verification and sends the response via a webhook.

The application might be approved at this stage; and if it isn't approved, the application goes through a manual review. Any changes in the status is again communicated via a webhook.

If the agent requires more information to approve the application, he raises an RFI. This will trigger a webhook (CARD_CLIENT_KYB_STATUS_WEBHOOK) with the status RFI_REQUESTED. Client has to perform the following steps:

Step 1: call the Fetch Corporate Customer RFI Details API

Call the Fetch Corporate Customer RFI Details API with either caseID or clientID or customerHashId in the query parameter.

Response of Fetch Corporate Customer RFI Details

The rfiTemplates array of objects can contain more than one RFI template that is requested for the business or the same stakeholder or a different stakeholder. However, the same template will not be repeated for the same stakeholder or business unless one of them is in the RFI_RESPONDED state.

rfiTemplates object

referenceIDstringThis is the referenceId of the entity for which the RFI is raised. This field is available to applicants and stakeholders. When this value available, you need to pass the same referenceId in the Respond to RFI API. If you don't already have, use the Customer Details API to fetch the referenceId for each stakeholder and applicant.
remarksstringThis field returns any remarks entered by the compliance agent.
statusenumThe status of this particular template is either RFI_REQUESTED or RFI_RESPONDED. This field changes to RFI_RESPONDED when an RFI template is responded to.
templateIdstringThe RFI template ID. This is not a unique value for the RFI. There is a one-to-one mapping for templateId and template.name.
Example: If stakeholderAddress RFI is raised for two stakeholders, they have the same templateId with different referenceId.
Note: There can be two templates with the same templateId and referenceId but with different status.
templateobjectThis object contains information about the template.

template object

This object is within the rfiTemplates array of objects and contains information about the template.

documentTypeenumThis is the type of the document expected from the customer: Valid values:
  • POA (Poof of Address)
  • POI (Proof of Identity)
  • LOA (Letter of Authorization
  • document (for any other kind of document)
  • namestringThe name of the template. For example: stakeholderAddress and stakeholderIdentity.
    requiredFieldsarray of objectsThis object contains metadata and can be used to directly display the required fields to the customer.
    Note: This object can be ignored if you are displaying the required fields yourself.
    rfiTypeenumValid values are:
  • corporate for businessDetails related or riskAssessmentInfo related RFIs
  • applicant for applicant related RFIs
  • stakeholder for individual and corporate related RFIs
  • typeenumThe determines the type of template. Valid values are:
  • data
  • document
  • requiredFields array

    This array of objects is within the rfiTemplates.template object and contains metadata as well as can be used to directly display the required fields to the customer.

    NOTE: This object can be ignored if you are constructing the set of required fields yourself.

    fieldLabelstringThis text can be directly displayed on the form to the customer as a label.
    fieldValuestringThis indicates into which onboarding API field the value is sent. Valid values are:
  • documentType
  • documentNumber
  • documentExpiryDate
  • document
  • intendedUseOfAccount
  • businessName
  • transactionCountries

  • Note:
  • The value document refers to the document object that contains the fileName, fileType, and document base-64 fields.
  • documentExpiryDate may not be available for all documentType values. This can be treated as optional and can be sent for DRIVER_LICENSE or PASSPORT.
  • typeenumUse this to configure the UI element. Valid values are
  • data
  • document
  • Step 2: call Respond to RFI Details

    Pick the templates where status = RFI_REQUESTED and call the Respond to RFI Details API.

    regionenumValid values are:
  • AU
  • EU
  • HK
  • SG
  • UK
  • US
  • clientId
  • caseId
  • customerHashId
  • stringAny one of these three values is required.
    rfiResponseRequestarray of objectsThis contains an array of objects each of which is a response to an RFI template present in Fetch RFI Details API.

    rfiResponseRequest array

    This contains an array of objects each of which is a response to an RFI template present in Fetch RFI Details API.

    rfiTemplateIdstringThe ID corresponding to each template name
    businessDetailsobjectThis object is similar to the businessDetails object in the Onboard Corporate Customer API but requires only the required fields of the RFI. Note: API reference section for Respond to RFI Details mentions businessInfo instead of businessDetails. We accept both values to ensure backward compatibility
    riskAssessmentInfoobjectThis object is similar to the riskAssessmentInfo object in the Onboard Corporate Customer API but contains only the required fields.

    The fields and structure of the Respond to RFI API are the same as that of the Onboard Corporate Customer API

    You need to send only the required fields for the RFI and not the entire onboard request again. For examples of how to send each RFI, see RFI examples.

    You can choose to add the documentType field within the documentDetails object. Use the following values for documentType

    • OTHER
    • SELFIE
    • LOA

    The documentDetails element--not an array--is an object for the Fetch Corporate Constants API of all applicant, corporate, and stakeholder rfiType values. Its behavior is different from the Onboard Corporate API because different RFIs will be raised for each document required. However, if you want to send multiple files for the same document--for example, the front and back of a passport--you can make use of the document object which is an array of objects with fields fileName, fileType, and document.

    To enable backward compatibility this API supports both businessInfo object and businessDetails object.

    Sending referenceId is required for rfiType = applicant or rfiType = stakeholder. You will find the referenceId against each RFI template in the response of the Fetch RFI Details API.

    Responding to multiple RFI templates

    You can respond to multiple RFI templates in the same request. Make sure you have different objects for each templateID-referenceId combination. That is, if there are two stakeholders with the same templateId, you need to have two objects within the rfiResponseRequest array of objects.

    Once all the RFI templates are responded, the status of the application changes from RFI_REQUESTED to RFI_RESPONDED and you will receive a webhook with complianceStatus=RFI_RESPONDED

    After the application, the complianceStatus can again become RFI_REQUESTED or one of the terminal states becomes COMPLETED or REJECTED.

    Though rare, compliance agent can raise an RFI even after the complianceStatus is COMPLETED. Make sure to provision such cases.

    Common error scenarios

    RFI template ID is invalidThere is no RFI raised for the customer whose RFI template you are trying to respond to.
    RFI is already respondedOur agent has responded to the RFI by collecting information from other sources before the customer. To prevent these cases, call the Fetch RFI Details API when the customer is ready to respond and display only those templates that are in the RFI_REQUESTED state.
    Reference ID is required to process the responded RFIThe referenceId field is mandatory for all applicant-related RFIs and stakeholder-related RFIs.