Overview
Provides you with accesss to Bisnode Company Risk and Credit data for Sweden, Finland, Denmark and Norway.
Authentication
To use the Credit Information B2B REST API - v2, you need a client ID and a secret. Bisnode uses OAuth2 for authentication. More information here.
Get started
You'll need 3 things to get started.
- Bisnode ID (contact api-support@bisnode.com for one if you don't have it yet)
- Sandbox API Key (you need to be logged in with your Bisnode ID to get it)
- Subscribe to the API (you need to be logged in with your Bisnode ID to subscribe)
For easy access we have provided you with a postman collection here.
Key Features
Company data available through an API
Provides you with high quality analyzed risk and credit data.
- High quality credit rating for profitable decisions
- Avoid credit losses by doing business with the right customers
- Get stable customers that you know can pay on time
- Get new insights by combining your own customer data with Bisnode analyzed company data
Documentation
How to use the API
This guide is intended to help you get going with your integration against the Bisnode Credit Information B2B API. It serves as a complement to the Endpoint Reference and aims to bring a high level understanding of the key concepts of the platform.
For questions and support, please contact Bisnode at api-bisnode@bisnode.com
A more detailed view of the swagger documentation can be found on swaggerhub:https://app.swaggerhub.com/apis-docs/bisnode-apis/CompanyCreditDataAPI/2.0.0
A postman collection for accessing sandbox data can be found here: https://github.com/Bisnode/api-stuff/tree/master/apis/brigs/company/postman-collections
Instructions on how to generate keys to access sandbox and production environments can also be found on the link above.
New features
- PDF output option, simply set “parameter content type” to “application/pdf” to receive response in .pdf
- Partition the dataset in standardized segments. RISK, MANAGAGEMENT, COMPANYINFORMATION, FINANCE, OWNERSHIP can be selected in request model as “segments” to collect the wanted data. Minimum is company information that will accompany all segments for context reference and If applicable Letter of Notification)
- Annual reports for Sweden, Finland and Denmark. Search for available reports and fetch in respective country
- Added failurescore in Risk segment in Norway. We provide raw and percentile score, probability of default and risk percentage.
Search
Name and address control. Do a search on name, duns-number or registration-number.
Credit information
Fetch credit data on a specific company by supplying registration-number.
Changes and versioning
API version is provided in the base of the requested URL in the form of "v1", "v2" etc. Only major version numbers are used.
API versions are raised only on breaking (i.e. backwards incompatible) changes in the API. Fields may be added but will never be removed during an API version lifecycle. When developing your application, take care to ensure that your application is able to handle additional fields.
How to test
Test data available in sandbox:
Country | RegistrationNumber | Name | Features | Annnual report |
SE | 5561234567 | Skuldman & Son, TEST AB | "Good customer" Rating AAA + Tax clearance certificate registered | yes |
SE | 5562000116 | Test No 3 mining enterprise | Has Branches | no |
SE | 5563035798 | Test Tourism bank | Average company | no |
SE | 5562187129 | ÁàèôÑ ÅäöáàéèÔÑ AB | Average company | no |
SE | 5561060111 | Konkursen TEST AB | Inactive company with Current financial statements | no |
SE | 5561080101 | Hema Test i Konkurs AB | No registered turnover + Rating EFR | no |
SE | 5561070102 | Test Tangun trading AB | Debt balance public - & private claims | no |
SE | 5560391954 | Testföretag 1954 AB | Low rating + Limited partnership with board with other business commitments 3 remarks on payment < 12 months old | no |
SE | 7502199255 | Testbolag 9255 | Sole proprietorship | no |
SE | 9696096990 | Testbolag 6990 KB | Trading partnership | no |
SE | 7601022382 | Testföretag 238 | New formed company | no |
DK | 13287511 | D&B Demo A/S | no | |
DK | 13287554 | D&B Demo Datter ApS | no | |
DK | 173989737 | Eisner Food Stores Under Konkurs | no | |
DK | 534259076 | id Boutiques ApS | no | |
DK | 596490479 | Zany Brainy | no | |
DK | 738297771 | Brendles ApS | no | |
DK | 795312324 | Multicerv ApS | no | |
DK | 863638466 | Powerbod ApS | no | |
DK | 991387035 | Patterson-Fletcher A/S | no | |
FI | 200967437 | Intelacard Oy | no | |
FI | 228810019 | DECO FRESH OY | no | |
FI | 246926306 | Second Time Around | no | |
FI | 251631316 | Rolling Thunder Oy | no | |
FI | 260428882 | Deco Refreshments Oy | no | |
FI | 280429609 | Grass Roots Yard Services Oy | no | |
FI | 11111111 | Tytärtesti100 Oy | no | |
FI | 22222222 | Tytärtesti200 Oy | no | |
NO | 937340303 | SVAR DIREKTE AS | Limited company, high credit limit | no |
NO | 911642190 | TESTFORETAKET FOR ÆØÅ AS | Limited company, A rating | no |
NO | 918189254 | CREDIT CONTROL AS | Limited company, normal company | no |
NO | 935276608 | DIN SOLIDE ENTREPRENØR AS | Limited company good rating | no |
NO | 937400322 | SVAR DIREKTE PERSON | Sole proprietor, B-rating | no |
NO | 812345672 | COBRA DEMO PERSON | Sole proprietor, auditors | no |
NO | 927822334 | Soliditet Test 2 Ltd | Norw. division foreign enterpr. | no |
NO | 842852102 | BARE SKRAP DA | Trading/Limited partnership, rating exclusion, historical auditors | no |
NO | 923313850 | General Bureau of Atomic Energy | Limited | no |
NO | 931024280 | HELT NYTT FORETAK AS | Limited, C-rating | no |
Authentication
Authentication using OAuth2
Bisnode's newest APIs use OAuth2 for authentication. For all API requests, you need to supply an access token in order to authenticate yourself. To obtain such an access token you need to submit your CLIENT_ID and CLIENT_SECRET to Bisnode's authentication endpoint at https://login.bisnode.com/as/token.oauth2. The access token is then passed along in the Authorization header to all API requests. Follow the instructions below to learn how to do this.
Get and Use the Access Token
Step 1. Get the Access Token
To get an access token you need to make a POST request to https://login.bisnode.com/as/token.oauth2 using the following HTTP header: Content-Type: application/x-www-form-urlencoded and the following request body: grant_type=client_credentials&scope=credit_data_companies. The request must be authenticated using HTTP Basic authentication and your CLIENT_ID and CLIENT_SECRET.
Example in cURL
curl -X POST \ -H "Content-Type: application/x-www-form-urlencoded" \ -d 'grant_type=client_credentials&scope=credit_data_companies' \ -u "$CLIENT_ID:$CLIENT_SECRET" \ https://login.bisnode.com/as/token.oauth2
Example response
{ "access_token": "eyJhb....seAtPCCQ", "token_type": "Bearer", "expires_in": 7199 }
Step 2. Use the Access Token
Supply your access token with all requests to the API using the HTTP Authorization header: Authorization: Bearer <your access token here> You should reuse the access token for multiple calls to the API. See the next section on recommended usage.
Example in cURL - search for company
curl -X POST \ -H "Authorization: Bearer eyJhb...seAtPCCQ" \
-H 'Content-Type: application/json' \
-d '{"name": "bisnode", "country": "SE"}' \ https://api.bisnode.com/credit-data-companies/v2/companies
Reusing the Access Token
After you have fetched an access token you should save it and use it for subsequent calls to the API. There is no limit on the number of calls it can be used for, but it will expire after a certain time.
We recommend that you use the expires_in field to determine when to request a new access token. It specifies the number of seconds the token will be valid for. Because of possible delays in network communication as well as delays between checking the timestamp and transmitting the actual API request, it is a good idea to request a new token a few seconds before it is about to expire. This minimizes the risk of accidentally using an expired token.
The following pseudo code illustrates how to use the authentication endpoint together with the API.
function make_authorized_api_request(): token = get_cached_access_token() if token == null or is_soon_to_be_expired(token): token = get_new_access_token() save_to_cache(token) make_api_call(token) function get_new_access_token(): token = get_token_from_auth_endpoint() token.expiration_timestamp = now().add_seconds(token.expires_in) return token function is_soon_to_be_expired(token): # Add time margin to avoid token expiring during call if now().add_seconds(60) >= token.expiration_timestamp: return true return false