For a deeper look into our DataScope Select SOAP API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials

question

Upvotes
Accepted
69 9 17 18

RIC lookup for bonds by ISIN

We are currentlly using the old TRTH v1. We are using the search function there to lookup RICs for Bonds. We are using the ISIN to get a list of RICs and then select by a specific logic the in your case correct one.

We are now looking for a way to make the same thing using DSS. Can you please adivce how to lookup RICs for bonds using DSS by ISIN codes?

Thanks!

dss-rest-apidatascope-selectdssricsbonds
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

One addition: We have tried to search for Bond RICs using extraction type "Search/EquitySearch" but we get e.g. no results for the ISIN you can see in the screenshot.

As far as I know, the expired/matured bond cannot be searched in DSS. However it still can be used as input for other on-demand extraction type (i.e. Terms and Conditions extraction).

The maturity date of DE0001135317 is 2017-01-04, so it should be the case.

Philipp avatar image Philipp veerapath.rungruengrayubkul

Thx! But that will be a problem for us, we really need a way to search for Bonds by ISIN. Here is another example 'DE0001141620' where the maturity date is not reached yet and that also can not be found using the search functionality. It there a way to search for RICs using this kind of products / ISINs? We really need to get the full list of all RICs related to this ISIN with all the different sources/exchange codes.

Thx in advance!

Upvote
Accepted
69 9 17 18

We are now using /Search/HistoricalSearch for most of our RIC lookups based on ISIN. It is much closer to the TRTHv1 search than all the other RIC search methods available.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Upvotes
23k 22 9 14

@Philipp

Please go to DSS-> REST->Downloads or follow this link:

Datascope Select REST API Downloads

Download "Java Code Examples", one of the included examples is DSS2SearchByIsinClient.

The approach would be the same if you would prefer not to use Java.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

I tried that example with a bond ISIN (DE0001141620) but I do not get any results, even when I remove the 'InstrumentTypeGroups' attribute from the request.

Can you please have a look at this? Any help is highly appreciated!

It should deliver results without the filter on InstrumentTypeGroups, I just tested it. The complete answer was too long to post as a comment so I added it to my answer below.

Upvotes
13.7k 26 8 12

@Philipp

I tried with DE0001141620. EquitySearch and FuturesAndOptionsSearch do not deliver anything (which is expected, because this is a bond), but InstrumentSearch delivers results.

Here is the body of the POST request to endpoint Search/InstrumentSearch:

{
  "SearchRequest": {
    "InstrumentTypeGroups": [
      "CollatetizedMortgageObligations",
      "Commodities",
      "Equities",
      "FuturesAndOptions",
      "GovCorp",
      "MortgageBackedSecurities",
      "Money",
      "Municipals",
      "Funds"
    ],
    "IdentifierType": "Isin",
    "Identifier": "DE0001141620",
    "PreferredIdentifierType": "Ric"
  }
}

The list of fields in the results is not configurable, but it includes a field for the source.

This delivers the list of 50 RICs:

{
  "@odata.context": "https://ppe.hosted.datascopeapi.reuters.com/RestApi/v1/$metadata#Collection(ThomsonReuters.Dss.Api.Content.ValidatedInstrument)",
  "value": [
    {
      "Identifier": "DE114162=RRPS",
      "IdentifierType": "Ric",
      "Source": "EJV",
      "Key": "VjF8MHgwMDA0MDUwODdkZTA2MmY2fDB4MDAwNDA1MDg3ZGVhOTYwOHxFSlZ8R0NCRHxHT1ZUfEdCT0JMfEd8RXxERTExNDE2Mj1SUlBTfEdPUlA",
      "Description": "DEGV   0.750 02/24/17",
      "InstrumentType": "GovCorpBond",
      "Status": "Valid"
    },
    {
      "Identifier": "DE114162=",
      "IdentifierType": "Ric",
      "Source": "CPL",
      "Key": "VjF8MHgwMDA0MDUwODdkZTA2MmY2fDB4MDAwNDA1MDg3ZGZmOTcxY3xDUEx8R0NCRHxHT1ZUfEdCT0JMfEd8RXxERTExNDE2Mj18",
      "Description": "DEGV   0.750 02/24/17",
      "InstrumentType": "GovCorpBond",
      "Status": "Valid"
    },
    {
      "Identifier": "DE0001141620=ICAP",
      "IdentifierType": "Ric",
      "Source": "IBL",
      "Key": "VjF8MHgwMDA0MDUwODdkZTA2MmY2fDB4MDAwNDA1MDg3ZTA4NTQyYnxJQkx8R0NCRHxHT1ZUfEdCT0JMfEd8RXxERTAwMDExNDE2MjA9SUNBUHw",
      "Description": "DEGV   0.750 02/24/17",
      "InstrumentType": "GovCorpBond",
      "Status": "Valid"
    },

etc....

Looks like Veerapath nailed the root cause, i.e. that expired bonds cannot be found with a search.

To answer your query on the Java sample:

Out of the box that example will not deliver results for your bond, because the filter on InstrumentTypeGroups limits results to Equities. To get the results you can either use a more inclusive filter:

.put("InstrumentTypeGroups", new JSONArray()
    .put("CollatetizedMortgageObligations")
    .put("Equities")
    .put("FuturesAndOptions")
    .put("GovCorp")
    .put("MortgageBackedSecurities")
    .put("Money")
    .put("Municipals")
    .put("Funds"))

Or remove the filter completely, and reduce the query to this:

JSONObject searchJSONObject = new JSONObject()
    .put("SearchRequest", new JSONObject()
        .put("IdentifierType", "Isin")
        .put("Identifier", "DE0001141620")
        .put("PreferredIdentifierType", "Ric"));

Both variants deliver results.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Thx a lot! I will have a look at this right away.

Upvotes
11.3k 25 8 13

@Philipp

I have tried the GovCorpSearch type and been able to get results for DE0001135317.

Please try the following POST request to https://hosted.datascopeapi.reuters.com/RestApi/v1/Search/GovCorpSearch. The AssetStatuses has been modified to include "MAT" which means "Expired/Matured".

{
    "SearchRequest": {
        "AssetStatuses": ["CLD", "CAN", "DFS", "RDM", "EXC", "MAT", "FNG", "DEF", "ISS", "LIQ", "NAC", "PRE", "PUT", "RPN", "REF", "RMK", "RBM", "FDD", "REP", "RES", "TEN", "TBC", "TBE", "TBI", "TBP", "TBR", "TBB", "WHN"],
        "Coupon": null,
        "CurrencyCodes": null,
        "Group": {
            "Agency": true,
            "Government": true,
            "Corporate": true,
            "Supra": true
        },
        "MoodyRatingsCodes": null,
        "StandardPoorsRatingsCodes": null,
        "Callable": false,
        "Convertable": false,
        "Extendable": false,
        "Putable": false,
        "Sinkable": false,
        "IssueDate": null,
        "MaturityDate": null,
        "NextPayDate": null,
        "Identifier": "DE0001135317",
        "IdentifierType": "Isin",
        "PreferredIdentifierType": "Ric"
    }
}
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Great, I will have a look at that!

We are using this approach now. Works for the bonds in our test cases at the moment.

Upvotes
69 9 17 18

Still we have a problem with exchange codes. In TRTHv1 we are getting 'ETX' for XS1017615920 (RIC XS1017615920=TX) while the DSS result shows for the same RIC a source 'TLX' (see screenshots attached).

Is there a difference between TRTHv1 exchange codes and DSS source fields? If yes, can you provide a mapping we can apply to existing configurations in a data migration?


icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

The DSS source field could be the source that provides price data. The source might not always be exchange, so I do not think it can be converted directly to exchange code.

By the way, I have found this page which provides a mapping between Price Source ("price_src" column) and Exchange Code ("mkt_exch_cd") in case that Price Source is an exchange.

Philipp avatar image Philipp veerapath.rungruengrayubkul

Thx for that page. I checked some other codes like 'LSE'. In the table the mkt_exch_cd 'LSE' is not refering to a source code 'LSE' but when I search for the ISIN GB00BH4HKS39 I get 'LSE' in the source field in the response. So, I'm not sure if this page can be used as a gerneral mapping from TRTHv1 exchange code to DSS source code. At least for LSE it will not work and I have not checked any more codes yet. Can you please advice?

Philipp avatar image Philipp veerapath.rungruengrayubkul

Can you please check if there is another source of TRTHv1 exchange to DSS source field mapping available? We really need this to migrate existing configurations at our customers.

Thanks in advance!

Click below to post an Idea Post Idea