Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/deutsche-bank-escore-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Merchant-Server II REST Services E Score API
version: v2.1
description: The eScore API contains endpoints to minimize non-payment risk.
servers:
- url: https://testmerch.directpos.de/rest-api/services/v2.1/
security:
- bearerAuth: []
tags:
- name: eScore
description: The eScore API contains endpoints to minimize non-payment risk.
paths:
/escore/event/{event_id}/addresscheck:
post:
tags:
- eScore
summary: Performs an Address Verification (ES0013)
description: 'Two scenarios of use are possible:
1. The address details of a customer are verified with the address verification. If an address is supplied wrongly the customer is requested to correct it. Thereafter the address is verified again. After a successful address verification further information has to be collated via credit assessment.
2. The transaction “integrated address verification, credit assessment and scoring” is carried out.
IMPORTANT: The address verification may only be carried out in connection with the credit assessment. Using the address verification on its own is not permissible for contractual reasons.
With the address verification the supplied address (name, town of residence, post code and street) is verified. This means that as a rule the address verification is related to the person.
The basis for the query is the post directory of the Deutsche Post Direkt GmbH (German mail) with roughly 95 m validated consumer addresses. The correction function is differentiated according to the individual address components and can provide evidence for their coherence and correct wrong details respectively.'
operationId: escoreAddressVerificationPost
parameters:
- name: Merchant-ID
in: header
description: Unique identification of the merchant for whom the transaction is carried out. This parameter is required if the `Merchant-ID` cannot be derived from the `client_id` you used for authentication.
required: false
style: simple
explode: false
schema:
maxLength: 10
minLength: 10
pattern: '[0-9]+'
type: string
- name: event_id
in: path
description: A unique ID for the event.
required: true
style: simple
explode: false
schema:
maxLength: 50
minLength: 1
pattern: '[\/0-9a-zA-Z_.:,\-+*$%]+'
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EScoreRequest'
example:
reason: ABK
billing_address:
title: MRS
first_name: KATJA
last_name: KOPLIN
postal_code: '10407'
city: BERLIN
country: DE
extensions:
alternative_address_data:
street: DANZIGER STR.
street_number: '67'
basket:
basket_id: basketId1641228398709
customer_information:
customer_id: 5x14120ffrG
date_of_birth: '1979-10-27'
responses:
'400':
description: Response in case of an error. Includes a response code and an error message.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
'401':
description: Unauthorized request. Response body may be empty.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
'200':
description: If the query could be carried out you receive the return value `rc=0` as response independent from the outcome of the address verification. The outcome of the address verification is returned in the field `address_note`. Where applicable, the address fields of the response include the address components, which could be corrected. If possible you will receive the freight routing code for the corrected address in the field `freight_routing_code`.
content:
application/json:
schema:
$ref: '#/components/schemas/EScoreAddresscheckResponse'
example:
address_note: PPB
freight_routing_code: '10435003067'
rc: '0'
message: Transaction successful.
event_id: 9184bf11-75ed-4a11-b9e6-557c11bd3853
tx_id: 2yYJ5nYkDIGuTdjWgCkJoK
action: addresscheck
basket_id: basketId1641293516625
scoring_rc: G
reason: ABK
billing_address:
title: MRS
first_name: KATJA
last_name: KOPLIN
date_of_birth: '1979-10-27'
postal_code: '10407'
city: BERLIN
country: DE
extensions:
alternative_address_data:
street: DANZIGER STR.
street_number: '67'
/escore/event/{event_id}/creditassessment:
post:
tags:
- eScore
summary: Performs a Credit Assessment (ES0012)
description: 'The credit assessment provides information about the customers'' negative features. From the result the possible general payment behaviour and the creditworthiness of a purchaser may be deduced.
Upon entering the customer details during the order process it is verified in the background whether there is a negative feature related to this person resulting from extra judicial or judicial collection proceedings, enforcement by writ or affidavit.'
operationId: escoreCreditAssessmentPost
parameters:
- name: Merchant-ID
in: header
description: Unique identification of the merchant for whom the transaction is carried out. This parameter is required if the `Merchant-ID` cannot be derived from the `client_id` you used for authentication.
required: false
style: simple
explode: false
schema:
maxLength: 10
minLength: 10
pattern: '[0-9]+'
type: string
- name: event_id
in: path
description: A unique ID for the event.
required: true
style: simple
explode: false
schema:
maxLength: 50
minLength: 1
pattern: '[\/0-9a-zA-Z_.:,\-+*$%]+'
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EScoreRequest'
example:
reason: ABK
billing_address:
title: MRS
first_name: KATJA
last_name: KOPLIN
postal_code: '10407'
city: BERLIN
country: DE
extensions:
alternative_address_data:
street: DANZIGER STR.
street_number: '67'
basket:
basket_id: basketId1641228398709
customer_information:
customer_id: 5x14120ffrG
date_of_birth: '1979-10-27'
responses:
'400':
description: Response in case of an error. Includes a response code and an error message.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
'401':
description: Unauthorized request. Response body may be empty.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
'200':
description: "\nDepending on the negative features found you will receive in the field `scoring_rc` a classification of the data record following the traffic light system 'green', 'yellow/amber' and 'red' (This classification only takes place if the address was rectifiable postally, otherwise you will receive the return value `rc=1538`). The negative features are divided into the categories 'soft', 'medium' and 'hard'.\n\nThe allocation of the negative features to the traffic light values is as follows:\n \n• `G`: green - There are no negative features.\n\n• `Y`: yellow/amber - There are no negative features.\n\n• `R`: red - There are no negative features.\n\nThe field score provides you with a more subtly graduated result of the credit assessment. \n\nIn addition to the traffic light values and score all negative features are returned, which were relevant for the generation of the traffic light value.\n "
content:
application/json:
schema:
$ref: '#/components/schemas/EScoreCreditassessmentResponse'
example:
customer_id: 5x14120ffrG
score: '100'
negative_criteria:
- kind: LP
date: '2021-01-08'
doc_reference: 8IN303
- kind: VB
date: '2021-12-07'
doc_reference: 8IN306
rc: '0'
message: Transaction successful.
event_id: 9dd00d1d-7888-4679-af78-7dc95eef052d
tx_id: fC1DpbpWZeELL6tzmoHcKL
action: creditassessment
basket_id: basketId1641293519408
scoring_rc: R
reason: ABK
billing_address:
title: MRS
first_name: KATJA
last_name: KOPLIN
date_of_birth: '1979-10-27'
postal_code: '10407'
city: BERLIN
country: DE
extensions:
alternative_address_data:
street: DANZIGER STR.
street_number: '67'
/escore/event/{event_id}/bankaccount:
post:
tags:
- eScore
summary: Performs an RPP Check (ES0024)
description: 'This service checks bank details for plausibility and current return debit notes.
The “return debit note prevention pool” (RPP) is a data pool where bank details are saved for which return debit notes are currently known. The pool primarily serves the prevention of cash loss for direct debits.'
operationId: escoreRppPost
parameters:
- name: Merchant-ID
in: header
description: Unique identification of the merchant for whom the transaction is carried out. This parameter is required if the `Merchant-ID` cannot be derived from the `client_id` you used for authentication.
required: false
style: simple
explode: false
schema:
maxLength: 10
minLength: 10
pattern: '[0-9]+'
type: string
- name: event_id
in: path
description: A unique ID for the event.
required: true
style: simple
explode: false
schema:
maxLength: 50
minLength: 1
pattern: '[\/0-9a-zA-Z_.:,\-+*$%]+'
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EScoreRPPRequest'
example:
bank_account:
bic: PZHSDE66XXX
iban: DE84666500855073321010
basket:
basket_id: basketId1641228398709
customer_information:
customer_id: 5x14120ffrG
date_of_birth: '1979-10-27'
responses:
'400':
description: Response in case of an error. Includes a response code and an error message.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
'401':
description: Unauthorized request. Response body may be empty.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
'200':
description: "\nIn addition to information on return debit notes the following data are available:\n\n• data of stolen or lost EC cards (for example from the KUNO database)\n\n• data about publicly known bank details (NCA = non consumer account)\n\n• customer specific negative and positive lists\n\nNo personal data are saved in the RPP. This means it is not known who is the account holder.\n\nThe return debit note service is currently available for Germany.\n\nThe bank account details in the response possibly include corrections or additional information, for example IBAN and BIC when you submitted account number and bank code in the request.\n "
content:
application/json:
schema:
$ref: '#/components/schemas/EScoreRPPResponse'
example:
bank_account:
bic: PZHSDE66XXX
iban: DE84666500855073321010
bank_name: Sparkasse Pforzheim Calw
bank_account_validation_result: '00'
bank_account_validation_message: The bank account is valid.
rpp_match: '0'
rc: '0'
message: Transaction successful.
event_id: abf1ccf6-a9d6-4904-99d3-cadb6521ee90
tx_id: np5yYhvMr2dZQqWNub0BGj
action: bankaccount
basket_id: basketId1641293501021
scoring_rc: G
/escore/event/{event_id}/scoring:
post:
tags:
- eScore
summary: Performs an integrated Address Verification, Credit Assessment, and Scoring…
description: This kind of transaction consists of address verification, credit assessment, and scoring.
operationId: escoreScoringPost
parameters:
- name: Merchant-ID
in: header
description: Unique identification of the merchant for whom the transaction is carried out. This parameter is required if the `Merchant-ID` cannot be derived from the `client_id` you used for authentication.
required: false
style: simple
explode: false
schema:
maxLength: 10
minLength: 10
pattern: '[0-9]+'
type: string
- name: event_id
in: path
description: A unique ID for the event.
required: true
style: simple
explode: false
schema:
maxLength: 50
minLength: 1
pattern: '[\/0-9a-zA-Z_.:,\-+*$%]+'
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EScoreRequest'
example:
reason: ABK
billing_address:
title: MRS
first_name: KATJA
last_name: KOPLIN
postal_code: '10407'
city: BERLIN
country: DE
extensions:
alternative_address_data:
street: DANZIGER STR.
street_number: '67'
basket:
basket_id: basketId1641228398709
customer_information:
customer_id: 5x14120ffrG
date_of_birth: '1979-10-27'
responses:
'400':
description: Response in case of an error. Includes a response code and an error message.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
'401':
description: Unauthorized request. Response body may be empty.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
'200':
description: "\nIf there are no negative entries for a person's given name the probability of non-payments may be determined in a further step with help of the INFORMA score. The INFORMA score collates information from various socio-demographic parameters, such as details about the social structure of the town of residence. According to the risk assessment a recommendation for proceeding is provided. This value is included as essential component in the parameter `score`. \n "
content:
application/json:
schema:
$ref: '#/components/schemas/EScoreScoringResponse'
example:
customer_id: 5x14120ffrG
address_note: PPB
freight_routing_code: '10435003067'
score: '980'
informa_score_value: '670'
rc: '0'
message: Transaction successful.
event_id: f66400e4-40f2-4fdf-8229-d6e7dca3bf4d
tx_id: pXKc6vH91ASi0QrYfH7Ch7
action: scoring
basket_id: basketId1641293520741
scoring_rc: G
reason: ABK
billing_address:
title: MRS
first_name: KATJA
last_name: KOPLIN
date_of_birth: '1979-10-27'
postal_code: '10407'
city: BERLIN
country: DE
extensions:
alternative_address_data:
street: DANZIGER STR.
street_number: '67'
components:
schemas:
CommonAddressExtensions:
type: object
properties:
alternative_address_data:
$ref: '#/components/schemas/AlternativeAddressData'
paydirekt_data:
$ref: '#/components/schemas/AddressPaydirektData'
description: Service specific address fields.
NegativeCriterionResponse:
required:
- date
- kind
type: object
properties:
kind:
type: string
description: 'The codes of the negative features supplied in the response. The following values are valid:
**Soft Negative Features:**
`IA`: Debt-collecting delinquency procedure initiated.
`AM`: Ongoing extra judicial debt-collecting delinquency procedure after partial payment or in the case of payments in instalments.
`IE`: Suspension of the extra judicial debt-collecting delinquency procedure due to futility.
**Medium Negative Features:**
`MB`: Application for default summons.
`VB`: Application for enforcement order.
`TR`: Payer by instalments after claims entitlement.
`ZWA`: Enforcement by writ of movables.
`ZWI`: Enforcement by writ of immovables.
`FRP`: Effectless attachment.
`FRP`: Effectless attachment.
`LP`: Attachment of salary or other claims due to a garnishee order.
`UBV`: Address unknown (having left liabilities of monetary or goods credits).
**Hard Negative Features:**
`HB`: Arrest warrant to enforce affidavit.
`HV`: Execution of arrest warrant to enforce affidavit.
`EV`: Affidavit (“oath of manifestation”).
`EEV`: Amendment of affidavit.
`WEV`: Repeated affidavit, § 903 ZPO (Code of Civil Procedure).
`SVV`: Refusal of asset information according to §882c para. 1 no. 1 ZPO.
`SAV`: Recognisable futility of enforcement according to §882c para. 1 no. 2 ZPO.
`SNZ`: Non-payer according to §882c para. 1 no. 3 ZPO.
`IVE`: Attempt of out-of-court settlement within the scope of insolvency proceedings.
`ISP`: Settlement of debts procedure initiated / application for initiation of insolvency proceedings.
`IVS`: Order of preliminary measures of protection in the insolvency proceedings.
`IVA`: Repeal of preliminary measures of protection in the insolvency proceedings.
`IBE`: Initiation of insolvency proceedings / decree.
`IBA`: Dismissal or suspension of the insolvency proceedings for lack of assets, § 26 Para. 2 InsO (Insolvency Statute).
`IWP`: Repeal of insolvency proceedings.
`IRB`: Issuance of waiver of remaining debts.
`IRV`: Refusal of waiver of remaining debts.
`KON`: Dismissal of application for initiation of insolvency proceedings for lack of assets, §107 KO (Bankruptcy Act).
`KER`: Initiation of bankruptcy proceedings, § 108 KO (Bankruptcy Act).
`KEM`: Suspension of bankruptcy proceedings for lack of assets, §§ 202, 204 KO (Bankruptcy Act).
`KAS`: Repeal of bankruptcy proceedings (after closing date), § 163 KO (Bankruptcy Act)
`VGE`: Initiation of composition procedure, § 11 ff VerglO (Rules of conciliation).
`VGA`: Dismissal of application for initiation of composition procedure.
`VEM`: Suspension of composition procedure after repealing the scheme of arrangement, §99 ff VerglO (Rules of conciliation).
`VAS`: Repeal of composition procedure, § 90 ff VerglO (Rules of conciliation).
`GVA`: Dismissal of application for initiation of general enforcement for lack of assets, §4 Abs. 2 GesO (General enforcement policy).
`GVE`: Initiation or order of general enforcement, § 5 GesO (General enforcement policy).
`GEM`: Suspension of general enforcement proceedings.
`GAS`: Repeal of general enforcement proceedings.
**Other Negative Features:**
`*`: Respective negative feature stated, if the claim based on the collection operation has been cleared effectively – that is by payment.
`AE`: Note regarding address.
`+++`: Person deceased.
`HI`: Notes regarding person or company.
`HA`: Notes regarding address.
'
example: IA
date:
type: string
format: date
example: '2007-09-23'
doc_reference:
maxLength: 14
minLength: 0
pattern: .*
type: string
description: File reference of the feature.
example: DFS-sf-12345
completion_date:
type: string
description: Clearing date of a feature.
format: date
example: '2007-09-23'
completion_flag:
type: boolean
description: Clearing sign of the feature.
description: If `scoring_rc`=`Y` or `scoring_rc`=`R`, several possible.
TaxInfo:
required:
- tax_id
- tax_id_type
type: object
properties:
tax_id:
type: string
description: The customer's tax ID value.
example: 867.226.847-41
tax_id_type:
type: string
description: 'Type of tax ID. May be country specific. Different types may adhere to different patterns.
* `BR_CPF` : Brazilian individual tax id type.
* `BR_CNPJ` : Brazilian business tax id type.
* `OTHER` : None of the above.
'
example: BR_CPF
enum:
- BR_CPF
- BR_CNPJ
- OTHER
description: Legal tax information of the payer.
BankAccount:
required:
- iban
type: object
properties:
bic:
maxLength: 11
minLength: 11
pattern: '[A-Z]{6}[A-Z2-9][A-NP-Z0-9][A-Z0-9]{3}'
type: string
description: "The business identifier code (BIC) of a bank account. If the branch identifier\n (positions 9 to 11) is not applicable, it is set to \"XXX\". "
example: VZVDDED1XXX
iban:
maxLength: 34
minLength: 15
pattern: '[A-Z]{2}[0-9]{2}[A-Z0-9*]{11,30}'
type: string
description: The international bank account number of a bank account.
example: DE17215730140403340300
account_holder:
maxLength: 27
minLength: 1
pattern: .*
type: string
description: The account holder of the bank account.
example: Max Muster
bank_name:
type: string
description: Name of the bank.
example: Musterbank
description: Information about a bank account.
EScoreAddresscheckResponse:
required:
- event_id
- message
- rc
- reason
- tx_id
type: object
properties:
rc:
type: string
description: Response code of the transaction. "0" in the case of a successful transaction. Other values signify errors.
example: '0'
message:
type: string
description: Success or error message, text for the response code.
example: Transaction approved.
event_id:
maxLength: 50
minLength: 1
pattern: '[\/0-9a-zA-Z_.:,\-+*$%]+'
type: string
description: A unique ID for the event.
example: E5686585867636541231230
tx_id:
type: string
description: Unique transaction identifier. Can be used to reference this transaction.
example: 020LMG10jxSI8FN0OC4vLR
scoring_rc:
type: string
description: 'Traffic light value that allows you a basic estimate of a customer''s credit-worthiness. The following values are valid:
`G`: green - There are no negative features.
`Y`: yellow/amber - There is a soft negative feature.
`R`: red - There are more than one soft negative features or at least one medium or hard negative feature.
`U`: unknown
'
example: G
default: U
enum:
- G
- Y
- R
- U
reason:
type: string
description: 'Codes for the classification of the credit assessments. The following values are valid:
`ABK`: Request for credit assessment before concluding a purchase contract (in particular purchase on account or by instalments.
`ABV`: Request for credit assessment before concluding an insurance contract.
`BZV`: Credit assessment within the scope of evaluating the reliability of an insurance broker or an insurance field representative.
`BMT`: Credit assessment before opening or installing a mobile telecommunication account.
`BFT`: Request for credit assessment before or in connection with the initiation or carrying out of debt-collecting measures.
`ABI`: Request for credit assessment before takeover/purchase of a claim or before assuming del credere liability.
`ABF`: Request for credit assessment before concluding a service contract.
`ABD`: Request for credit assessment before concluding a contract for work and labour.
`ABW`: Request for credit assessment before concluding a contract for work and labour.
`ABL`: Request for credit assessment before concluding a lease or rental contract (chattels).
`BKV`: Credit assessment before granting of credit.
`BKE`: Credit assessment before opening an account.
`BKA`: Credit assessment due to a credit or customer card application.
`BBS`: Credit assessment before concluding a building loan contract.
`BMV`: Credit assessment before concluding a rental contract (real estate).
`BFV`: Credit assessment before concluding a franchising contract.
`BER`: Credit assessment due to ascertainment order (credit agency company).
'
example: ABD
default: ABK
enum:
- ABK
- ABV
- BZV
- BMT
- BFT
- ABI
- ABF
- ABD
- ABW
- ABL
- BKV
- BKE
- BKA
- BBS
- BMV
- BFV
- BER
customer_information:
$ref: '#/components/schemas/CustomerInformation'
address:
$ref: '#/components/schemas/CommonAddress'
address_note:
type: string
description: 'Possible features for the result of address verification. The following values are valid:
`PPB`: Confirmation on personal level. The address supplied (incl. name and first name) was completely correct or could be corrected completely. In this case only the freight routing code and possibly the corrected fields are returned to the initiator.
`PHB`: Confirmation on household level. The address supplied (incl. name without first name) could be corrected completely or was completely correct on household level and had a first name, which is not rectifiable/known. In this case the corrected fields except the first name are returned to the initiator, as the first name could not be confirmed. The existence of the first name at this address could not be confirmed. In addition the field eScoreFreightRoutingCode is returned to the initiator as long as the freight routing code is available.
`PAB`: Confirmation on address level. The address supplied (without name, without first name) could be corrected completely or on address level was already complete and had not rectifiable/known personal data. In this case the corrected fields except the first name and surname are returned to the initiator, as the first name and surname could not be confirmed. The existence of the first name and surname at this address could not be confirmed. In addition the field eScoreFreightRoutingCode is returned to the initiator as long as the freight routing code is available.
`PNZ`: The person at the address supplied is known, but at this address is not or no longer deliverable. This corresponds to a confirmation on address level (PAB), however, with the above-mentioned limitation, that the person queried is undeliverable there.
`PPV`: The person at the address supplied is deceased according to the Deutsche Post (German mail).
`PKI`: The response of the Deutsche Post (German mail) is possibly contradictory and/or ambiguous. Therefore the person/address is not assessed!
`PPF`: The address is postally wrong.
`PNP`: The address cannot be checked because it contains structural errors, for example the name is missing.
`PUG`: The address is formally correct, but the building is not known.
`PUZ`: Outdated address. The person moved away, but the new address is known.
'
example: PPB
enum:
- PPB
- PHB
- PAB
- PNZ
- PPV
- PKI
- PPF
- PNP
- PUG
- PUZ
freight_routing_code:
maxLength: 12
minLength: 0
pattern: .*
type: string
description: Freight routing code of the Deutsche Post AG (German mail).
example: 04109056012
BasketItem:
type: object
properties:
name:
maxLength: 127
minLength: 0
type: string
description: Descriptive name of the order item. Mandatory for PayPal.
example: A fine shirt
description:
maxLength: 127
minLength: 0
type: string
description: Used for storing merchant's internal order number or other reference.
example: BI123456
reference:
maxLength: 64
minLength: 0
type: string
description: Article number, SKU or similar.
example: UGG-BB-PUR-06
quantity:
$ref: '#/components/schemas/Quantity'
unit_price:
$ref: '#/components/schemas/TaxedAmountCurrency'
item_discount:
$ref: '#/components/schemas/TaxedAmountCurrency'
extensions:
$ref: '#/components/schemas/BasketItemExtensions'
description: A purchasable item that is part of a shopping basket's list of items.
PhoneContact:
required:
- phone_number
- phone_type
type: object
properties:
phone_type:
type: string
des
# --- truncated at 32 KB (86 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/deutsche-bank/refs/heads/main/openapi/deutsche-bank-escore-api-openapi.yml