Skip to main content

BVD Passive Process:

Requirement: CMD1-1347 -Automate customer type - MVP 1.0 Done

CMD1-4094 -BvD passive integration Done

BVD Passive Process Implementation Approach and Steps:

CMD1-3840 -BVD Passive Process - Analysis Done

API changes:

  • Ingest Customer API:
    • Insert customer code, bvd id info into BVD tracker table for all newly created customer
  • Update BVD API:
    • Update 2 wrapper end-points
      • Retrieve BVD information from BVD by BVD Id
      • Retrieve the matched BVD information list along with match-score for the given match criteria for a customer code.
    • Add missing or additional response properties to existing BVD API
    • Get MIM approval for all BVD API end-points

Scheduler Implementation:

  • Frequency: 30min
  • For BVD info enrichment, fetch all un-processed and newly created/updated(bvd_id) customer info from BVD tracker table
  • Through BVD Wrapper API: OAS is available @SMDS - CMD - BVD API - OAS
    • Retrieve BVD information for each customer code by BVD Id
    • Retrieve BVD information list for each customer code by MATCH criteria, if BVD Id is not available in customer data
      • Match Criteria:
        • Name
        • City
        • Country
        • StreetName
        • House Number
        • Building
        • URL
        • Phone
        • PostalCode
        • Region
        • Tax Number
  • Filter the most relevant matched bvd record(if score is more than 90%)
    • Filter records having >= 90% match score
    • Filter by match hint having SELECTED / POTENTIAL records
    • Filter one record that is having maximum score
  • Enrich below fields from the BVD record received/filtered in customer_information, customer_bvd_information, customer_sic_information tables
    • Legal Name
    • Telephone number if not present in database
    • Customer URL
    • Customer BVD relationship information
    • Finance Information
    • SIC Info
    • Automate customer type based on major sector information
    • Below fields will be added/updated only if there is no prior BVD record available i.e. Customer is created without BVD Id initially.
      • BVD Id
      • BVD Status
      • Add BVD details to Customer Identifiers

DB Changes:

  • Create new tables:
    • bvd_sync_track
      • For CMD - BVD enrichment status tracking of newly created customers. This is the key table for BVD passive enrichment process.
      • Table details: *
    • cust_type_keywords - for Forwarder Keywords
      • For maintaining Customer Type Forward/Shipping Lines Keywords. This is used for customer type automation process.
      • Table details: *

Process Execution Flow:

Response Field / BVD API / DB Mapping:

FieldBVD API FieldDB TABLEComments
BVD IdBVDIDCUSTOMER_BVD_INFORMATION / bvd_idCUSTOMER_TAX_REF_INFO/ ref_type, ref_type_code, reference_valueWill be added/updated only if there is no prior BVD record available i.e. Customer is created without BVD Id initially.
BVD StatusSTATUSCUSTOMER_BVD_INFORMATION / bvd_customer_status
Legal NameNAMECUSTOMER_BVD_INFORMATION / customer_legal_nameCUSTOMER_INFORMATION / legal_name
UrlWEBSITECUSTOMER_INFORMATION / customer_website
Phone NumberPHONE_NUMBERCUSTOMER_INFORMATION / phone_type, isd_country_code, isd_dialing_code, phone_num
Major SectorMAJOR_SECTORCUSTOMER_BVD_INFORMATION / bvd_major_sector
GUO BVD IdGUO_BVD_ID_NUMBERCUSTOMER_BVD_INFORMATION / guo_bvd_id
HQ BVD IdHQ_BVD_ID_NUMBERCUSTOMER_BVD_INFORMATION / hq_bvd_id
GUO BVD NameGUO_NAMECUSTOMER_BVD_INFORMATION / guo_bvd_name
GUO BVD StatusGUO_STATUSCUSTOMER_BVD_INFORMATION / guo_bvd_status
HQ BVD NameHQ_NAMECUSTOMER_BVD_INFORMATION / hq_bvd_name
HQ BVD StatusNote: As there is no field that represents HQ BVD STATUS from BVD API, We do update HQ STATUS by retrieving status by respective HQ BVD IDCUSTOMER_BVD_INFORMATION / hq_bvd_status
Market CapMARKETCAPCUSTOMER_BVD_INFORMATION / market_cap
Operating Revenue Turn overOPRECUSTOMER_BVD_INFORMATION / operating_revenue_turn_over
Date of AccountCLOSING_DATECUSTOMER_BVD_INFORMATION / date_of_account
Profit Margin PercentagePRMACUSTOMER_BVD_INFORMATION / profit_margin_percent
Credit RatingMORRATCUSTOMER_BVD_INFORMATION / credit_rating
Recommended credit limitMORCREDLIMITCUSTOMER_BVD_INFORMATION / recommended_credit_limit
BVD SectorBVD_SECTOR_CORE_LABELCUSTOMER_SIC_INFORMATION / bvd_sector
Core SIC CodeUSSIC_CORE_CODECUSTOMER_SIC_INFORMATION / core_sic_code
Core SIC DescriptionUSSIC_CORE_LABELCUSTOMER_SIC_INFORMATION / core_sic_desc
Primary SIC CodesUSSIC_PRIMARY_CODECUSTOMER_SIC_INFORMATION / prim_sic_code
Primary SIC DescriptionUSSIC_PRIMARY_LABELCUSTOMER_SIC_INFORMATION / prim_sic_desc
Secondary SIC CodesUSSIC_SECONDARY_CODECUSTOMER_SIC_INFORMATION / sec_sic_code
Secondary SIC DescriptionUSSIC_SECONDARY_LABELCUSTOMER_SIC_INFORMATION / sec_sic_desc

BVD API - Match criteria mandatory fields:

FieldIs mandatory?
Active ProcessPassive Process
Trading NameEither trading name or tax number is mandatoryYes
UrlNot requiredNo
Tax NumberEither trading name or tax number is mandatoryNo
Street NumberNot requiredStreet number or Street name or ApartmentOrFloor is mandatory
Street NameNot required
Apartment or FloorNot required
Postal CodeNot requiredNo
Region NameNot requiredNo
CityNoYes
Country ISO2 CodeYesYes
Communication NumberNot requiredNo

BVD Enrichment & Customer Type Automation Status Scenarios:

S. NoDescriptionBVD Data Passive EnrichmentCustomer TypeAutomationFinal comments(comments)
SearchRetrieveData Available ?Status(processed)CommentAutomationStatus(is_cust_auto_complete)Comment
1BVD Enrichment (Search + Retrieve) - SUCCESSCust Type Automaton - SUCCESSSUCCESSSUCCESSYYSUCCESSY
2BVD Enrichment (Search + Retrieve) - SUCCESSCust Type Automaton - SUCCESS (An Active Segment already exists)SUCCESSSUCCESSYYSUCCESSYAn Active Segment already existsAn Active Segment already exists
3BVD Enrichment (Search + Retrieve) - SUCCESS (No Data Available)Cust Type Automaton - SUCCESSSUCCESSSUCCESSNYNo DataSUCCESSYNo Data
4BVD Enrichment (Search + Retrieve) - SUCCESS (No Data Available)Cust Type Automaton - SUCCESS (An Active Segment already exists)SUCCESSSUCCESSNYNo DataSUCCESSYAn Active Segment already existsNo Data. An Active Segment already exists
5BVD Enrichment (Search + Retrieve) - FAILURECust Type Automaton - SUCCESSFAILURENANANSearch failureSUCCESSYSearch failure
6BVD Enrichment (Search + Retrieve) - FAILURECust Type Automaton - SUCCESS (An Active Segment already exists)FAILURENANANSearch failureSUCCESSYAn Active Segment already existsSearch failure. An Active Segment already exists
7BVD Enrichment (Search + Retrieve) - FAILURECust Type Automaton - FAILUREFAILURENANANSearch failureFAILURENAutomation failed messageSearch failure. An Active Segment already exists
8BVD Enrichment (Retrieve) - SUCCESSCust Type Automaton - SUCCESSNASUCCESSYYSUCCESSY
9BVD Enrichment (Retrieve) - SUCCESSCust Type Automaton - SUCCESS (An Active Segment already exists)NASUCCESSYYSUCCESSYAn Active Segment already existsAn Active Segment already exists
10BVD Enrichment (Retrieve) - SUCCESS (No Data Available)Cust Type Automaton - SUCCESSNASUCCESSNYNo DataSUCCESSYNo Data
11BVD Enrichment (Retrieve) - SUCCESS (No Data Available)Cust Type Automaton - SUCCESS (An Active Segment already exists)NASUCCESSNYNo DataSUCCESSYAn Active Segment already existsNo Data. An Active Segment already exists
12BVD Enrichment - ALREADY PROCESSEDCust Type Automaton - SUCCESSNANANAYSUCCESSY
13BVD Enrichment - ALREADY PROCESSEDCust Type Automaton - SUCCESS (An Active Segment already exists)NANANAYSUCCESSYAn Active Segment already existsAn Active Segment already exists
14BVD Enrichment - ALREADY PROCESSEDCust Type Automaton - FAILURENANANAYFAILURENAutomation failed messageAutomation failed message
15BVD Enrichment (Retrieve) - FAILURECust Type Automaton - SUCCESSNAFAILURENANRetrieve FailureSUCCESSYRetrieve Failure
16BVD Enrichment (Retrieve) - FAILURECust Type Automaton - SUCCESS (An Active Segment already exists)NAFAILURENANRetrieve FailureSUCCESSYAn Active Segment already existsRetrieve Failure. An Active Segment already exists
17BVD Enrichment (Retrieve) - FAILURECust Type Automaton - FAILURENAFAILURENANRetrieve FailureFAILURENAutomation failed messageRetrieve Failure. Automation failed message
Was this page helpful?