---
title: "Verify details held by a PSP"
method: POST
path: "/payment-instrument-verifications"
tags: ["Payment Instrument Verification"]
---

# Verify details held by a PSP

`POST /payment-instrument-verifications`

Request for verification of details held by a payment service provider (PSP).

PSPs may offer functionality to verify details held by them.

This endpoint accepts information the consumer wishes to verify, and will return information provided by the PSP on whether that information matches their records.

## Request body

- VerificationRequest — Represents a request to verify details held by the Payment Service Provider (PSP).
  - `psp` string, required — Name of Payment Service Provider (PSPs). Please see [PSP Integrations] for a list of possible PSPs. [PSP Integrations]: https://docs.br-dge.io/docs/psp-integrations
  - `verificationDetails` union, required
    - TrustlyVerificationDetails — Contains information used to identify the customer.
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the VerificationDetails schema.
      - `firstName` string, required — Customer's first name.
      - `lastName` string, required — Customer's last name.
      - `customerId` string, required — Customer's customer ID.
      - `country` string, required — ISO 3166 Alpha-2 Country code
      - `locale` string, required — The end-users localization preference in the format [language[_territory]]. Language is the ISO 639-1 code and territory the ISO 3166 Alpha-2 code.
      - `email` string, email, required — Customer's email.
      - `successUrl` string — A URL that is invoked after a successful Trustly transaction. By using unpredictable single-use URLs you can protect yourself from the possibility of bad actors attempting to make it appear that the transaction had a different outcome to reality. We also recommend that you confirm the outcome of transaction via server-to-server calls to BR-DGE.
      - `errorUrl` string — A URL that is invoked after an unsuccessful Trustly transaction.
      - `ipAddress` string — Customer's IP address.
      - `documentId` string — Customer's social security number / personal number / birth number / etc. Used by some countries (currently only Sweden) to perform additional verification when logging into a bank account.
      - `phoneNumber` string — Customer's telephone number. Please use only numbers, spaces and an optional leading +.
      - `dateOfBirth` string, date — Customer's date of birth.
    - NetellerVerificationDetails — Contains information to identify the customer ("customer") and details about the customer that should be verified ("customerDetails")
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the VerificationDetails schema.
      - `customer` NetellerVerificationCustomer, required — Details used to identify a customer for verification. One of email or accountId must be provided.
        - `email` string, email — Customer's email.
        - `accountId` string — Customer's account ID.
      - `customerDetails` NetellerVerificationCustomerDetails — Customer details to be verified. For each provided field, the response will indicate if its content matched Neteller's records ("MATCH") or not ("NO_MATCH").
        - `firstName` string — Customer's first name.
        - `lastName` string — Customer's last name.
        - `dateOfBirth` string, date — Customer's date of birth.
        - `houseNumber` string — Customer's house number.
        - `country` string — ISO 3166 Alpha-2 Country code
        - `postcode` string — Customer's postcode.
    - SkrillVerificationDetails — Contains information to identify the customer ("customer") and details about the customer that should be verified ("customerDetails")
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the VerificationDetails schema.
      - `customer` SkrillVerificationCustomer, required — Details used to identify a customer for verification. One of email or accountId must be provided.
        - `email` string, email — Customer's email.
        - `customerId` string — Customer's account ID.
      - `customerDetails` SkrillVerificationCustomerDetails — Customer details to be verified. For each provided field, the response will indicate if its content matched Skrill's records ("MATCH") or not ("NO_MATCH").
        - `firstName` string — Customer's first name.
        - `lastName` string — Customer's last name.
        - `dateOfBirth` string, date — Customer's date of birth.
        - `houseNumber` string — Customer's house number.
        - `country` string — ISO-3166-1 Alpha-3 Country Code
        - `postcode` string — Customer's postcode.
    - OttVerificationDetails — Contains information to identify the voucher to be verified.
      - `type` string — Discriminator field. Please see the discriminator mapping for the VerificationDetails schema.
      - `voucherPin` string, required — The PIN of the Voucher to be checked.
    - BluVoucherVerificationDetails — Contains information to identify the voucher to be verified.
      - `type` string — Discriminator field. Please see the discriminator mapping for the VerificationDetails schema.
      - `pin` string, required — The PIN of the Voucher to be checked.

## Response `200`

Verification request completed successfully.

- VerificationResponse — Response from a verification request.
  - `id` string, required — The ID of this request. If you can include these when querying the outcome of individual requests, we can track down the root cause faster.
  - `verificationId` string, required — The ID of the verification record.
  - `psp` string, required — Name of Payment Service Provider (PSPs). Please see [PSP Integrations] for a list of possible PSPs. [PSP Integrations]: https://docs.br-dge.io/docs/psp-integrations
  - `code` string, required — [Response Code](https://docs.br-dge.io/docs/response-codes) signifying the outcome of the request.
  - `message` string, required — A description of the outcome of the request.
  - `verificationResult` union, required
    - TrustlyVerificationResult — Result of payment instrument verification with Trustly. User will be redirected to log into their bank account using Trustly.
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the VerificationResult schema.
      - `actionRequired` boolean, required — Boolean value indicating whether further action should be taken after the response is received.
      - `action` Action, required — Browser redirect action consistent with [BR-DGE Redirect Payment Flow](https://secure.comcarde.com/docs/#redirect-payment-flow).
        - `type` string — Discriminator field. Please see the discriminator mapping for the Action schema.
        - `data` object
          - `url` string — URL to redirect your customer towards.
    - NetellerVerificationResult — Response from verification request to Neteller.
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the VerificationResult schema.
      - `accountId` string — Customer's Neteller account ID
      - `verificationLevel` NetellerVerificationLevel — Describes the verification level of the customer reported by Neteller. Neteller's verification feature returns a "verification level" described in their documentation: <https://paysafegroup.github.io/neteller_rest_api_v1/#/reference/0/customers/verify-customer-details>. The Neteller verification level indicates whether the Neteller member has been verified, and whether they have a registered payment instrument.
        - `verifiedCustomerIdentity` boolean — Flag indicating whether Neteller has verified the member
        - `hasRegisteredPaymentInstrument` boolean — Flag indicating whether the customer has a registered payment instrument
      - `customerDetails` NetellerCustomerDetails — For each of the customer records provided in the verification request, the response will indicate if the value passed matches the value for that customer in Neteller (MATCH) or does not match (NO_MATCH).
        - `firstName` 'MATCH' | 'NO_MATCH' — Indicates whether a field has matched or not when verifying.
        - `lastName` 'MATCH' | 'NO_MATCH' — Indicates whether a field has matched or not when verifying.
        - `dateOfBirth` 'MATCH' | 'NO_MATCH' — Indicates whether a field has matched or not when verifying.
        - `houseNumber` 'MATCH' | 'NO_MATCH' — Indicates whether a field has matched or not when verifying.
        - `country` 'MATCH' | 'NO_MATCH' — Indicates whether a field has matched or not when verifying.
        - `postcode` 'MATCH' | 'NO_MATCH' — Indicates whether a field has matched or not when verifying.
    - SkrillVerificationResult — Response from verification request to Skrill.
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the VerificationResult schema.
      - `customerId` string — Customer's Skrill account ID
      - `verificationLevel` SkrillVerificationLevel — Describes the verification level of the customer reported by Skrill. The Skrill verification level indicates whether the Skrill customer has been verified, and whether they have a registered payment instrument.
        - `verifiedCustomerIdentity` boolean — Flag indicating whether Skrill has verified the customer
        - `hasRegisteredPaymentInstrument` boolean — Flag indicating whether the customer has a registered payment instrument
      - `customerDetails` SkrillCustomerDetails — For each of the customer records provided in the verification request, the response will indicate if the value passed matches the value for that customer in Skrill (MATCH) or does not match (NO_MATCH). For Skrill, if the email is provided in the request then a match field for it will be provided in the response.
        - `email` 'MATCH' | 'NO_MATCH' — Indicates whether a field has matched or not when verifying.
        - `firstName` 'MATCH' | 'NO_MATCH' — Indicates whether a field has matched or not when verifying.
        - `lastName` 'MATCH' | 'NO_MATCH' — Indicates whether a field has matched or not when verifying.
        - `dateOfBirth` 'MATCH' | 'NO_MATCH' — Indicates whether a field has matched or not when verifying.
        - `houseNumber` 'MATCH' | 'NO_MATCH' — Indicates whether a field has matched or not when verifying.
        - `country` 'MATCH' | 'NO_MATCH' — Indicates whether a field has matched or not when verifying.
        - `postcode` 'MATCH' | 'NO_MATCH' — Indicates whether a field has matched or not when verifying.
    - OttVerificationResult — Result of voucher verification with OTT.
      - `type` string — Discriminator field. Please see the discriminator mapping for the VerificationResult schema.
      - `success` boolean, required — Boolean value indicating whether the voucher was successfully verified.
      - `message` string, required — Message describing outcome of voucher verification query.
      - `serial` string — Serial number of voucher.
      - `value` integer — Monetary value of voucher in South African Rand cents. This means that a value of 10000 is equal to R100.00.
      - `errorCode` string — Identifier code of error that occurred when verifying voucher.
    - BluVoucherVerificationResult — Result of voucher verification with BluVoucher.
      - `type` string — Discriminator field. Please see the discriminator mapping for the VerificationResult schema.
      - `status` string, required — Message describing outcome of voucher verification query.
      - `serial` string — Serial number of voucher.
      - `amount` integer — Monetary value of voucher in South African Rand cents. This means that a value of 10000 is equal to R100.00.

## Other responses

- `400` — Unsuccessful verification of payment instrument - bad request
- `500` — An internal server error occurred upstream while processing the request. If you have any questions about why you are receiving these responses, please raise a ticket with support on the BR-DGE Support Portal at <https://comcarde.atlassian.net/servicedesk/customer/portals> with the `id` from the response so we track down the individual requests on our end.

---

[API](https://skmtc.net/br-dge/apis/br-dge-transaction-rest-api.md) · [All operations](https://skmtc.net/br-dge/apis/br-dge-transaction-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/br-dge/br-dge-transaction-rest-api/versions/a9c0feac5523/schema)
