{"openapi":"3.0.3","info":{"title":"BR-DGE Payment Instrument REST API","description":"REST API that deals with everything related to payment instrument tokenization\n","version":"v1.0.0","contact":{"name":"Customer Support","url":"https://comcarde.atlassian.net/servicedesk/customer/portals"},"license":{"name":"MIT","url":"https://docs.br-dge.io/docs/openapi-license"}},"servers":[{"url":"https://sandbox.comcarde.com/v1","description":"Sandbox subdomain for testing your integration works as expected, using mock payment instruments only.\n"},{"url":"https://secure.comcarde.com/v1","description":"Use this subdomain for processing live payments in the EU region."},{"url":"https://secure-amer-01.api.br-dge.io/v1","description":"Use this subdomain for processing live payments in the NA region."}],"tags":[{"name":"Payment Instrument Tokenization","description":"Payment instrument tokenization is the practice of securely storing card details, and providing a unique token that can be used in place of the raw payment instrument.\n"},{"name":"Payment Instrument Verification","description":"Payment instrument verification allows merchants to verify the details of payment instruments and their associated customers.\n"},{"name":"Payment Instrument Registration","description":"Registers an account with an Open Banking PSP.\n"},{"name":"Verify","description":"BR-DGE Verify allows merchants to check whether customer-provided account details match information held by the card issuer or scheme-supported verification provider.\n"}],"externalDocs":{"url":"https://docs.br-dge.io"},"paths":{"/payment-instruments/single-use":{"post":{"tags":["Payment Instrument Tokenization"],"summary":"Create a single-use token","description":"For one off payments you can exchange cardholder data for a single-use token that can be used as a payment instrument via the [Tokenized Payment Flow]\n\nCard on File multi-use tokens can also be exchanged for single-use tokens. This can be useful if you wish to include CVV values in your payments as this data cannot be stored with Card on File.\n\n[Tokenized Payment Flow]: https://docs.br-dge.io/docs/payment-flows#tokenized-payment-flow\n","operationId":"tokenizeSingleUseInstrument","security":[{"ClientApiKey":[]}],"requestBody":{"description":"Payment instrument to be tokenized (cardholder data or Card on File multi-use token)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SingleUsePaymentInstrumentRequest"},"examples":{"Tokenize cardholder data":{"description":"Exchange cardholder data for a single-use token","value":{"type":"card","nameOnCard":"John F Doe","pan":"4444 3333 2222 1111","expiryDate":"01-99","startDate":"01-00"}},"Tokenize cardholder data with CVV":{"description":"Exchange cardholder data (and optional CVV) for a single-use token","value":{"type":"card","nameOnCard":"John F Doe","pan":"4444 3333 2222 1111","expiryDate":"01-99","startDate":"01-00","issueNumber":1,"cv2":"123"}},"multi-use token":{"summary":"Exchange a Card on File multi-use token for a single-use token","value":{"type":"tokenized","token":"b3317c7a-7c91-47d6-a49f-3038ca570212"}},"multi-use token with CVV":{"summary":"Exchange a Card on File multi-use token and CVV for a single-use token","description":"CVVs cannot be stored with multi-use tokens, but you can temporarily associate single use tokens with CVVs","value":{"type":"tokenized","token":"b3317c7a-7c91-47d6-a49f-3038ca570212","cv2":"123"}}}}},"required":true},"responses":{"201":{"description":"Successful tokenization of payment instrument","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"},"examples":{"full card metadata":{"value":{"token":"01ed22f0-5f16-47ba-945f-abfacc59777c","id":"c32d62c2-af44-4efb-8452-38c355bfffb5","tokenType":"CARD","cardType":"VISA","nameOnCard":"John Doe","pan":"#### #### #### 1111","expiryDate":"06-30","metadata":{"metadataType":"cardMetaData","cardBrand":"VISA","issuer":"ACMEBANK","type":"DEBIT","category":"CLASSIC","countryIsoA2":"GB","commercial":true},"fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60630"}},"no metadata":{"value":{"token":"c3710e80-6fc0-4750-8074-6324f7a8be5c","id":"c53af59c-b436-4238-b9bc-cc9350b2a2cd","tokenType":"CARD","cardType":"VISA","nameOnCard":"John Doe","pan":"#### #### #### 1111","expiryDate":"06-30","fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60630"}},"partial card metadata":{"description":"Please note that all fields are nullable","value":{"token":"0c608bb2-5b18-497b-a642-c327d088e20f","id":"fb095932-2819-4b5d-811f-6adad7cab3cc","tokenType":"CARD","cardType":"VISA","nameOnCard":"John Doe","pan":"#### #### #### 1111","expiryDate":"06-30","metadata":{"metadataType":"cardMetaData","type":"DEBIT"},"fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60630"}}}}}},"400":{"description":"Unsuccessful tokenization of payment instrument - bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Bad request with validation errors":{"value":{"code":"4000","message":"Request Error - The request is invalid","id":"4fad8e2e06a15656","validationErrors":{"paymentInstrument.pan":"4030203 - The value entered for Pan is incorrect. It is not a valid card PAN.","paymentInstrument.expiryDate":"4030301 - Expiry Date cannot be blank."}},"description":"This example shows the [4030203] and [4030301] **Validation Errors**.\n\nA full list of possible validation errors are available [here].\n\n[4030203]: https://docs.br-dge.io/docs/validation-errors#4030203\n[4030301]: https://docs.br-dge.io/docs/validation-errors#4030301\n[here]: https://docs.br-dge.io/docs/validation-errors\n"}}}}},"500":{"$ref":"#/components/responses/UnknownServerError"}}},"get":{"tags":["Payment Instrument Tokenization"],"summary":"Retrieve information about single-use tokens","operationId":"getSingleUseTokenizedPaymentInstrumentsUsingGET","description":"Get information relating to a single-use token\n","parameters":[{"$ref":"#/components/parameters/querySingleUseTokenIdList"},{"$ref":"#/components/parameters/queryShowPanLeadingChars"}],"security":[{"ServerApiKey":[]}],"responses":{"200":{"description":"Map of obfuscated card details, keyed by their single-use token.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseMapObfuscatedCard"},"examples":{"single-use token not associated with a Card on File":{"value":{"id":"example-response-trace-id","results":{"bc65fca3-5b39-4bdf-9c2e-045752603d0c":{"cardType":"VISA","nameOnCard":"John F Doe","pan":"#### #### #### 1111","expiryDate":"06-30","startDate":"01-20","tokenType":"CARD","metadata":{"metadataType":"cardMetaData","cardBrand":"VISA","issuer":"ACMEBANK","type":"DEBIT","category":"CLASSIC","countryIsoA2":"GB","commercial":true},"fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60630"}}}},"single-use token showing leading PAN characters":{"value":{"id":"example-response-trace-id","results":{"bc65fca3-5b39-4bdf-9c2e-045752603d0c":{"cardType":"VISA","nameOnCard":"John F Doe","pan":"1234 46## #### 1111","expiryDate":"06-30","startDate":"01-20","tokenType":"CARD","metadata":{"metadataType":"cardMetaData","cardBrand":"VISA","issuer":"ACMEBANK","type":"DEBIT","category":"CLASSIC","countryIsoA2":"GB","commercial":true},"fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60630"}}}},"single-use token associated with a Card on File":{"value":{"id":"example-response-trace-id","results":{"c6f03ff8-7285-47ac-9016-004d629415ec":{"cardType":"VISA","nameOnCard":"John F Doe","pan":"#### #### #### 1111","expiryDate":"06-30","startDate":"01-20","tokenType":"CARD","metadata":{"metadataType":"cardMetaData","cardBrand":"VISA","issuer":"ACMEBANK","type":"DEBIT","category":"CLASSIC","countryIsoA2":"GB","commercial":true},"fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60630","associatedMultiUseToken":"de92efe1-a89a-44ad-9ee3-bd6257287e19"}}}},"multiple single-use tokens queried":{"value":{"id":"example-response-trace-id","results":{"bc65fca3-5b39-4bdf-9c2e-045752603d0c":{"cardType":"VISA","nameOnCard":"John F Doe","pan":"#### #### #### 1111","expiryDate":"06-30","startDate":"01-20","tokenType":"CARD","metadata":{"metadataType":"cardMetaData","cardBrand":"VISA","issuer":"ACMEBANK","type":"DEBIT","category":"CLASSIC","countryIsoA2":"GB","commercial":true},"fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60630"},"c6f03ff8-7285-47ac-9016-004d629415ec":{"cardType":"VISA","nameOnCard":"John F Doe","pan":"#### #### #### 1111","expiryDate":"06-30","startDate":"01-20","tokenType":"CARD","metadata":{"metadataType":"cardMetaData","cardBrand":"VISA","issuer":"ACMEBANK","type":"DEBIT","category":"CLASSIC","countryIsoA2":"GB","commercial":true},"fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60630","associatedMultiUseToken":"de92efe1-a89a-44ad-9ee3-bd6257287e19"}}}},"single-use tokens not found":{"description":"The results map won't contain an entry for any tokens that are not recognised.\n","value":{"id":"example-response-trace-id"}}}}}},"400":{"description":"No tokens specified","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"code":"4000","message":"Invalid request","additionalErrorDetails":"Must send a tokens query parameter","id":"b0a2648b9a2dc5cc"}}}},"401":{"$ref":"#/components/responses/UnauthorizedRequest"},"500":{"$ref":"#/components/responses/UnknownServerError"}}}},"/payment-instruments":{"post":{"tags":["Payment Instrument Tokenization"],"summary":"Create a Card-on-File","description":"Further streamline your checkout experience by securely storing customer card details in BR-DGE to save them having to re-enter cardholder details in future.\n\nA Network Token may be asynchronously provisioned if enabled on your Retail Channel. Merchants can track the status of Network Tokens via webhook callbacks or by querying the Card-on-Files via `GET /payment-instruments`.\n\nPlease see <https://docs.br-dge.io/docs/vault> for more information.\n","operationId":"tokenizeInstrument","security":[{"ClientApiKey":[]}],"requestBody":{"description":"Card payment instrument to be tokenized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInstrumentRequest"},"examples":{"regular":{"summary":"Tokenize card","value":{"type":"card","nameOnCard":"John F Doe","pan":"4444 3333 2222 1111","expiryDate":"01-99","address":{"buildingNumberOrName":"10a","address1":"Flat 1","address2":"Victoria House","address3":"15 Apple Street","town":"Edinburgh","county":"Lothian","country":"GB","postcode":"BH23 6AA","countrySubdivisionCode":"WY"}}},"synchronous-nt":{"summary":"Tokenize card and synchronously provision a network token","description":"Creates a card-on-file and synchronously provisions a network token.\nThe `networkTokenProvisioningStatus` will either be `PROVISIONED` and\na network token will be returned in the response; or `FAILED` with no\nresulting network token.\n","value":{"type":"card","nameOnCard":"John F Doe","pan":"4444 3333 2222 1111","expiryDate":"01-99","networkTokenProvisioning":"networkToken"}},"synchronous-cryptogram":{"summary":"Tokenize card and synchronously provision a network token w/ cryptogram","description":"Creates a card-on-file and synchronously creates a network token.\nUpon successfully provisioning a network token, a cryptogram is also\nprovisioned.\n","value":{"type":"card","nameOnCard":"John F Doe","pan":"4444 3333 2222 1111","expiryDate":"01-99","networkTokenProvisioning":"networkTokenWithCryptogram"}},"explicit-asynchronous-nt":{"summary":"Tokenize card and asynchronously provision a network token","description":"Creates a card-on-file and asynchronously creates a network token; as\nasynchronous provisioning is the default behaviour if enabled, the\nnetworkTokenProvisioning field is optional.\n","value":{"type":"card","nameOnCard":"John F Doe","pan":"4444 3333 2222 1111","expiryDate":"01-99","networkTokenProvisioning":"async"}},"import-psp-token":{"summary":"Tokenize an existing PSP token","description":"Take an existing PSP token (e.g. from Cybersource) and import it into the BR-DGE\nvault as a new card-on-file.\n\nN.B. An API key with SERVER_WRITE and VAULT_WRITE authority will be required to\nimport existing PSP tokens. The API key will be provided manually by the customer\nsupport team.\n","value":{"type":"importPspToken","pspId":"CYBER","token":"7040000000055884910"}},"regular-with-metadata":{"summary":"Tokenize card with custom metadata","value":{"type":"card","nameOnCard":"John F Doe","pan":"4444 3333 2222 1111","expiryDate":"01-99","address":{"buildingNumberOrName":"10a","address1":"Flat 1","address2":"Victoria House","address3":"15 Apple Street","town":"Edinburgh","county":"Lothian","country":"GB","postcode":"BH23 6AA","countrySubdivisionCode":"WY"},"customMetadata":{"accountAge":"2"}}}}}},"required":true},"responses":{"201":{"description":"Successful tokenization of payment instrument","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"},"examples":{"full card metadata":{"description":"If full BIN lookup data is available for the PAN","value":{"token":"01ed22f0-5f16-47ba-945f-abfacc59777c","id":"c32d62c2-af44-4efb-8452-38c355bfffb5","tokenType":"CARD","cardType":"VISA","nameOnCard":"John Doe","pan":"#### #### #### 1111","expiryDate":"06-30","metadata":{"metadataType":"cardMetaData","cardBrand":"VISA","issuer":"ACMEBANK","type":"DEBIT","category":"CLASSIC","countryIsoA2":"GB","commercial":true,"bin":"45678765"},"networkTokenProvisioningStatus":"PROVISIONING","fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60630"}},"no metadata":{"description":"If only partial BIN lookup data is available for PAN","value":{"token":"c3710e80-6fc0-4750-8074-6324f7a8be5c","id":"c53af59c-b436-4238-b9bc-cc9350b2a2cd","tokenType":"CARD","cardType":"VISA","nameOnCard":"John Doe","pan":"#### #### #### 1111","expiryDate":"06-30","networkTokenProvisioningStatus":"PROVISIONING","fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60630"}},"partial card metadata":{"description":"If only partial BIN lookup data is available for PAN. Please note that all fields are nullable.","value":{"token":"0c608bb2-5b18-497b-a642-c327d088e20f","id":"fb095932-2819-4b5d-811f-6adad7cab3cc","tokenType":"CARD","cardType":"VISA","nameOnCard":"John Doe","pan":"#### #### #### 1111","expiryDate":"06-30","metadata":{"metadataType":"cardMetaData","type":"DEBIT"},"networkTokenProvisioningStatus":"PROVISIONING","fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60630"}},"network token sync provisioning success":{"summary":"Network Token - Synchronous Provisioning - Success","description":"A network token has been synchronously provisioned.\nThe `networkToken` field is populated with the network token information.\n","value":{"id":"0e7268fe3afaf427","token":"bcf7e59a-c1b2-462f-ae19-ec7a94054ec2","tokenType":"CARD","cardType":"VISA","nameOnCard":"John F Doe","pan":"####-####-####-1234","expiryDate":"12-34","fingerprint":"66ab440b1f48806a66a84056d70380cd7059817131c730918f7761f31e0a1aad","fingerprintExtended":"66ab440b1f48806a66a84056d70380cd7059817131c730918f7761f31e0a1aad1234","networkTokenProvisioningStatus":"PROVISIONED","networkToken":{"id":"61XJzB_BQ9qa29nGa7JZrQ000000000000US","token":"5299920000000149","expiryDate":"12-99","issuer":"VISA","status":"ACTIVE","tokenUniqueReference":"DM4MMC0000000001cd2826c715b7475bb089b7622366ebe4","paymentAccountReference":"5001EUMYTT3AESCZGUEC77KPCLETI","lastFour":"0149","cardBin":"001234","cardLastFour":"1234","cardExpiryDate":"12-34","cardIssuer":"Bank of BR-DGE"}}},"network token sync provisioning failed":{"summary":"Network Token - Synchronous Provisioning - Failed","description":"A network token provisioning was attempted synchronously and\nhas failed. No `networkToken` is provided.\n","value":{"id":"0e7268fe3afaf427","token":"bcf7e59a-c1b2-462f-ae19-ec7a94054ec2","tokenType":"CARD","cardType":"VISA","nameOnCard":"John F Doe","pan":"####-####-####-1234","expiryDate":"12-34","fingerprint":"66ab440b1f48806a66a84056d70380cd7059817131c730918f7761f31e0a1aad","fingerprintExtended":"66ab440b1f48806a66a84056d70380cd7059817131c730918f7761f31e0a1aad1234","networkTokenProvisioningStatus":"FAILED"}},"cryptogram sync provisioning success":{"summary":"Network Token w/ Cryptogram - Synchronous Provisioning - Success","description":"A network token has been synchronously provisioned followed by a cryptogram, the details\nof both objects are returned in the response.\nThe `networkToken` field is populated with the network token information and\nthe `networkTokenCryptogram` field is populated with the cryptogram information.\n","value":{"id":"0e7268fe3afaf427","token":"bcf7e59a-c1b2-462f-ae19-ec7a94054ec2","tokenType":"CARD","cardType":"VISA","nameOnCard":"John F Doe","pan":"####-####-####-1234","expiryDate":"12-34","fingerprint":"66ab440b1f48806a66a84056d70380cd7059817131c730918f7761f31e0a1aad","fingerprintExtended":"66ab440b1f48806a66a84056d70380cd7059817131c730918f7761f31e0a1aad1234","networkTokenProvisioningStatus":"PROVISIONED","networkToken":{"id":"61XJzB_BQ9qa29nGa7JZrQ000000000000US","token":"5299920000000149","expiryDate":"12-99","issuer":"VISA","status":"ACTIVE","tokenUniqueReference":"DM4MMC0000000001cd2826c715b7475bb089b7622366ebe4","paymentAccountReference":"5001EUMYTT3AESCZGUEC77KPCLETI","cryptogramProvisioningStatus":"PROVISIONED","cryptogram":{"cryptogram":"Y3J5cHRvZ3JhbQ==","eci":"07"}}}},"cryptogram sync nt provisioning failed":{"summary":"Network Token w/ Cryptogram - Synchronous Provisioning - Network Token Failed","description":"A network token has been synchronously provisioned.\nThe `networkToken` field is populated with the network token information.\n","value":{"id":"0e7268fe3afaf427","token":"bcf7e59a-c1b2-462f-ae19-ec7a94054ec2","tokenType":"CARD","cardType":"VISA","nameOnCard":"John F Doe","pan":"####-####-####-1234","expiryDate":"12-34","fingerprint":"66ab440b1f48806a66a84056d70380cd7059817131c730918f7761f31e0a1aad","fingerprintExtended":"66ab440b1f48806a66a84056d70380cd7059817131c730918f7761f31e0a1aad1234","networkTokenProvisioningStatus":"FAILED"}},"cryptogram sync provisioning failed":{"summary":"Network Token w/ Cryptogram - Synchronous Provisioning - Cryptogram Failed","description":"A network token has been synchronously provisioned.\nThe `networkToken` field is populated with the network token information.\n","value":{"id":"0e7268fe3afaf427","token":"bcf7e59a-c1b2-462f-ae19-ec7a94054ec2","tokenType":"CARD","cardType":"VISA","nameOnCard":"John F Doe","pan":"####-####-####-1234","expiryDate":"12-34","fingerprint":"66ab440b1f48806a66a84056d70380cd7059817131c730918f7761f31e0a1aad","fingerprintExtended":"66ab440b1f48806a66a84056d70380cd7059817131c730918f7761f31e0a1aad1234","networkTokenProvisioningStatus":"PROVISIONED","networkToken":{"id":"61XJzB_BQ9qa29nGa7JZrQ000000000000US","expiryDate":"12-99","issuer":"VISA","status":"ACTIVE","tokenUniqueReference":"DM4MMC0000000001cd2826c715b7475bb089b7622366ebe4","paymentAccountReference":"5001EUMYTT3AESCZGUEC77KPCLETI","cryptogramProvisioningStatus":"FAILED"}}},"token with PSP tokens":{"description":"If Vault Interoperability is enabled then the PSP tokens that will be provisioned will be returned in the response.","value":{"token":"01ed22f0-5f16-47ba-945f-abfacc59777c","id":"c32d62c2-af44-4efb-8452-38c355bfffb5","tokenType":"CARD","cardType":"VISA","nameOnCard":"John Doe","pan":"#### #### #### 1111","expiryDate":"06-30","networkTokenProvisioningStatus":"PROVISIONING","fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60630","pspTokens":[{"pspName":"Checkout.com","tokenProvisioningStatus":"PROVISIONING"},{"pspName":"Nuvei","tokenProvisioningStatus":"PROVISIONING"}]}},"full card with custom metadata":{"description":"Full card response including custom metadata","value":{"token":"01ed22f0-5f16-47ba-945f-abfacc59777c","id":"c32d62c2-af44-4efb-8452-38c355bfffb5","tokenType":"CARD","cardType":"VISA","nameOnCard":"John Doe","pan":"#### #### #### 1111","expiryDate":"06-30","metadata":{"metadataType":"cardMetaData","cardBrand":"VISA","issuer":"ACMEBANK","type":"DEBIT","category":"CLASSIC","countryIsoA2":"GB","commercial":true,"bin":"45678765"},"networkTokenProvisioningStatus":"PROVISIONING","fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60630","customMetadata":{"accountAge":"2"}}}}}}},"400":{"description":"Unsuccessful tokenization of payment instrument - bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Bad request with validation errors":{"value":{"code":"4000","message":"Request Error - The request is invalid","id":"4fad8e2e06a15656","validationErrors":{"paymentInstrument.pan":"4030203 - The value entered for Pan is incorrect. It is not a valid card PAN.","paymentInstrument.expiryDate":"4030301 - Expiry Date cannot be blank."}},"description":"This example shows the [4030203] and [4030301] **Validation Errors**.\n\nA full list of possible validation errors are available [here].\n\n[4030203]: https://docs.br-dge.io/docs/validation-errors#4030203\n[4030301]: https://docs.br-dge.io/docs/validation-errors#4030301\n[here]: https://docs.br-dge.io/docs/validation-errors\n"}}}}},"500":{"$ref":"#/components/responses/UnknownServerError"}},"callbacks":{"PSP Token Status Change Event":{"$ref":"#/components/callbacks/PspTokenStatusChangeEvent"},"PSP Token Provisioning Failed Event":{"$ref":"#/components/callbacks/PspTokenProvisioningFailedEvent"},"Network Token Provisioning Failed Event":{"$ref":"#/components/callbacks/NetworkTokenProvisioningFailedEvent"},"Network Token Status Change Event":{"$ref":"#/components/callbacks/NetworkTokenStatusChangeEvent"},"Network Token Metadata Update Event":{"$ref":"#/components/callbacks/NetworkTokenMetadataUpdateEvent"}}},"get":{"tags":["Payment Instrument Tokenization"],"summary":"Retrieve information about Card-on-Files","operationId":"getTokenizedPaymentInstrumentsUsingGET","description":"You can also use this endpoint to query all Card-on-Files for a customer, if a customer identifier was provided when cards were saved.\n\nNote: If multiple query params are provided, ALL will be used to constrain the results returned.\n","security":[{"ServerApiKey":[]}],"parameters":[{"name":"customerId","in":"query","description":"Case-sensitive identifier for your customer.\n\nNote: Symbols such as back-ticks and carriage returns are not permitted.\n","schema":{"type":"string","maxLength":100,"minLength":1},"example":"9f3cd197-4363-47e6-8929-9b128a7a8692"},{"$ref":"#/components/parameters/queryMultiUseTokenIdList"},{"$ref":"#/components/parameters/queryShowPanLeadingChars"}],"responses":{"200":{"description":"Map of obfuscatedCards, keyed by their multi-use token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseMapObfuscatedCard"},"examples":{"BR-DGE Card-on-File with pending Network Token provisioning":{"description":"If enabled on your Retail Channel, a Network Token may be asynchronously provisioned for your BR-DGE Card-on-File.","value":{"id":"example-response-trace-id","results":{"3d967f3e-8710-4c2b-9828-28b9531617f1":{"cardType":"VISA","nameOnCard":"John F Doe","pan":"#### #### #### 1111","expiryDate":"06-30","startDate":"01-20","issueNumber":0,"customerId":"example-customer-id","tokenType":"CARD","metadata":{"metadataType":"cardMetaData","cardBrand":"VISA","issuer":"ACMEBANK","type":"DEBIT","category":"CLASSIC","countryIsoA2":"GB","commercial":true,"bin":"45678765"},"fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60630"},"a495902c-db67-4ea6-aff8-109101544a50":{"cardType":"MASTERCARD","nameOnCard":"Jane Doe","pan":"#### #### #### 1234","expiryDate":"07-31","startDate":"09-21","issueNumber":2,"customerId":"example-customer-id","tokenType":"CARD","fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60731"},"4c5f1e1d-a8d4-403c-8199-e9705da98735":{"cardType":"MASTERCARD","nameOnCard":"John F Doe","pan":"#### #### #### 4321","expiryDate":"02-29","startDate":"10-20","customerId":"example-customer-id","tokenType":"CARD","metadata":{"metadataType":"cardMetaData","cardBrand":"MASTERCARD","type":"DEBIT","countryIsoA2":"GB","bin":"45678765"},"fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60229"}}}},"no customer ids and showing PAN Leading Chars":{"value":{"id":"example-response-trace-id","results":{"3d967f3e-8710-4c2b-9828-28b9531617f1":{"cardType":"VISA","nameOnCard":"John F Doe","pan":"1234 46## #### 1111","expiryDate":"06-30","startDate":"01-20","issueNumber":0,"tokenType":"CARD","metadata":{"metadataType":"cardMetaData","cardBrand":"VISA","issuer":"ACMEBANK","type":"DEBIT","category":"CLASSIC","countryIsoA2":"GB","commercial":true,"bin":"45678765"},"fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60630"},"a495902c-db67-4ea6-aff8-109101544a50":{"cardType":"MASTERCARD","nameOnCard":"Jane Doe","pan":"#### #### #### 1234","expiryDate":"07-31","startDate":"09-21","issueNumber":2,"tokenType":"CARD","fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60731"},"4c5f1e1d-a8d4-403c-8199-e9705da98735":{"cardType":"MASTERCARD","nameOnCard":"John F Doe","pan":"#### #### #### 4321","expiryDate":"02-29","startDate":"10-20","tokenType":"CARD","metadata":{"metadataType":"cardMetaData","cardBrand":"MASTERCARD","type":"DEBIT","countryIsoA2":"GB"},"fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60229"}}}},"BR-DGE Card-on-File with associated Network Token":{"description":"If enabled on your BR-DGE Retail Channel, a Network Token may be provisioned for your BR-DGE Card-on-File.","value":{"id":"example-response-trace-id","results":{"7e0f5f0c-e720-4deb-ab84-12f8a9f92715":{"cardType":"MASTERCARD","pan":"####-####-####-4590","expiryDate":"02-36","startDate":"12-22","metadata":{"metadataType":"cardMetaData","cardBrand":"MASTERCARD","type":"CREDIT","countryIsoA2":"US","commercial":false},"cardArtUri":"https://stage.assets.mastercard.com/card-art/combined-image-asset/MyBank-mastercard.png","fingerprint":"badc12faf7f0d63935770a9b8ed07b4cef6dd4d1659ffbc9b41b9a8502dfaefd","fingerprintExtended":"badc12faf7f0d63935770a9b8ed07b4cef6dd4d1659ffbc9b41b9a8502dfaefd0236","networkTokenProvisioningStatus":"PROVISIONED","networkToken":{"id":"WXdfRANqUrBalltlBKaaWHVGrFoWrIHsZAK","token":"5186151969968300","expiryDate":"08-26","issuer":"MASTERCARD","status":"ACTIVE","tokenUniqueReference":"DM4MMC0000000001cd2826c715b7475bb089b7622366ebe4","paymentAccountReference":"5001EUMYTT3AESCZGUEC77KPCLETI","lastFour":"0149","cardBin":"001234","cardLastFour":"1234","cardExpiryDate":"12-34","cardIssuer":"Bank of BR-DGE"}}}}},"BR-DGE Card-on-File with PSP tokens":{"description":"If enabled on your BR-DGE Retail Channel, Vault interoperability means you will have PSP token information\n","value":{"id":"example-response-trace-id","results":{"7e0f5f0c-e720-4deb-ab84-12f8a9f92715":{"cardType":"MASTERCARD","pan":"####-####-####-4590","expiryDate":"02-36","startDate":"12-22","metadata":{"metadataType":"cardMetaData","cardBrand":"MASTERCARD","type":"CREDIT","countryIsoA2":"US","commercial":false},"cardArtUri":"https://stage.assets.mastercard.com/card-art/combined-image-asset/MyBank-mastercard.png","fingerprint":"badc12faf7f0d63935770a9b8ed07b4cef6dd4d1659ffbc9b41b9a8502dfaefd","fingerprintExtended":"badc12faf7f0d63935770a9b8ed07b4cef6dd4d1659ffbc9b41b9a8502dfaefd0236","pspTokens":[{"pspName":"Checkout.com","tokenProvisioningStatus":"PROVISIONED","token":"src_5ormqfczt43efnx7xe2mwod4vq","pspCardFingerprint":"C7BB2667AF7EDEA0745B8C2E8B7B68ED447711B794BA3151B3D91E2A63E40102"},{"pspName":"Cybersource","tokenProvisioningStatus":"PROVISIONED","token":"20C12F24DBED0D39E063A2598D0A462D","additionalData":{"customerToken":"20C17E0D04D14D26E063A2598D0A4024","instrumentIdentifierToken":"7010000000016241111"}},{"pspName":"Nuvei","tokenProvisioningStatus":"PROVISIONING"},{"pspName":"Worldpay WPG","tokenProvisioningStatus":"UNPROVISIONED"},{"pspName":"Global Payments","tokenProvisioningStatus":"FAILED"}]}}}}}}}},"400":{"description":"Bad request - the request was in an invalid format or contained invalid information.\n\nIf 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.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Invalid customer ID":{"value":{"code":"4000","message":"customerId contains invalid characters"}},"Querying by tokens and customer ID":{"value":{"code":"4000","message":"Querying with both tokens and customerId is not currently supported"}}}}}},"401":{"$ref":"#/components/responses/UnauthorizedRequest"},"500":{"$ref":"#/components/responses/UnknownServerError"}}}},"/payment-instrument-verifications":{"post":{"tags":["Payment Instrument Verification"],"summary":"Verify details held by a PSP","description":"Request for verification of details held by a payment service provider (PSP).\n\nPSPs may offer functionality to verify details held by them.\n\nThis endpoint accepts information the consumer wishes to verify, and will return information provided by the PSP on whether that information matches their records.\n","operationId":"verifyCustomerUsingPOST","security":[{"ServerApiKey":[]}],"requestBody":{"required":true,"description":"Information to be verified","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationRequest"},"examples":{"trustly-verification-request":{"$ref":"#/components/examples/trustly-verification-request"},"neteller-verification-request":{"$ref":"#/components/examples/neteller-verification-request"},"ott-verification-request":{"$ref":"#/components/examples/ott-verification-request"},"bluVoucher-verification-request":{"$ref":"#/components/examples/bluVoucher-verification-request"}}}}},"responses":{"200":{"description":"Verification request completed successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationResponse"},"examples":{"trustly-verification-response":{"$ref":"#/components/examples/trustly-verification-response"},"neteller-verification-response":{"$ref":"#/components/examples/neteller-verification-response"},"ott-verification-response":{"$ref":"#/components/examples/ott-verification-response"},"bluVoucher-verification-response":{"$ref":"#/components/examples/bluVoucher-verification-response"}}}}},"400":{"description":"Unsuccessful verification of payment instrument - bad request\n"},"500":{"$ref":"#/components/responses/UnknownServerError"}},"callbacks":{"Payment Instrument Verification Event":{"$ref":"#/components/callbacks/PaymentInstrumentVerificationEvent"}}}},"/payment-instruments/{token}/network-token-cryptogram":{"parameters":[{"$ref":"#/components/parameters/pathToken"}],"post":{"tags":["Payment Instrument Tokenization"],"summary":"Create a cryptogram for a Card-on-File","operationId":"postPaymentInstrumentNetworkTokenCryptogram","security":[{"ServerApiKey":[]}],"responses":{"201":{"description":"Cryptogram created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CryptogramProvisioningResponse"},"examples":{"cryptogram provisioned":{"summary":"Cryptogram Provisioned","description":"A cryptogram has been provisioned and its value returned.\nThe network token associated with the provided `token` is also\nreturned alongside the provisioned cryptogram.\n","value":{"cryptogram":"Y3J5cHRvZ3JhbSBwcm92aXNpb25lZA==","eci":"07","networkToken":{"id":"61XJzB_BQ9qa29nGa7JZrQ000000000000US","token":"5299920000000149","expiryDate":"12-99","issuer":"VISA","status":"ACTIVE","tokenUniqueReference":"DM4MMC0000000001cd2826c715b7475bb089b7622366ebe4","paymentAccountReference":"5001EUMYTT3AESCZGUEC77KPCLETI","lastFour":"0149","cardBin":"001234","cardLastFour":"1234","cardExpiryDate":"12-34","cardIssuer":"Bank of BR-DGE"}}}}}}},"400":{"description":"Unable to provision Cryptogram - Bad Request"},"401":{"$ref":"#/components/responses/UnauthorizedRequest"},"403":{"description":"Functionality not enabled for retail channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Functionality not enabled":{"description":"This example shows the [4031 error code]\n\nA full list of possible response codes is available [here].\n\n[4031 error code]: https://docs.br-dge.io/docs/response-codes#4031\n[here]: https://docs.br-dge.io/docs/response-codes\n","value":{"code":"4031","message":"Request Error: This functionality is not enabled for the retail channel.\n","additionalErrorDetails":"Network Token Cryptogram not enabled, please contact Customer Support."}}}}}},"404":{"$ref":"#/components/responses/EntityNotFound"},"500":{"$ref":"#/components/responses/UnknownServerError"}}}},"/payment-instruments/{token}/network-token":{"parameters":[{"$ref":"#/components/parameters/pathToken"}],"post":{"tags":["Payment Instrument Tokenization"],"summary":"Create a Network Token for a Card-on-File.","description":"Create a Network Token for a Card-on-File.\n\nNetwork tokens are automatically provisioned when creating a BR-DGE Card-on-File. However, in situation where this didn't happen (for example if network token support was not enabled at the time of Card-on-File creation or a temporary failure to provision network tokens), you can use this endpoint to manually trigger network token provisioning.\n","operationId":"postPaymentInstrumentNetworkToken","security":[{"ServerApiKey":[]}],"responses":{"201":{"description":"Network Token created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkToken"},"examples":{"network token provisioned":{"summary":"Network Token Provisioned","description":"A network token has been provisioned and its value returned.\n","value":{"id":"61XJzB_BQ9qa29nGa7JZrQ000000000000US","token":"5299920000000149","expiryDate":"12-99","issuer":"VISA","status":"ACTIVE","tokenUniqueReference":"DM4MMC0000000001cd2826c715b7475bb089b7622366ebe4","paymentAccountReference":"5001EUMYTT3AESCZGUEC77KPCLETI","lastFour":"0149","cardBin":"001234","cardLastFour":"1234","cardExpiryDate":"12-34","cardIssuer":"Bank of BR-DGE"}}}}}},"400":{"description":"Unable to provision Network Token - Bad Request"},"401":{"$ref":"#/components/responses/UnauthorizedRequest"},"404":{"$ref":"#/components/responses/EntityNotFound"},"409":{"description":"The network token already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"conflict":{"value":{"code":"4215","message":"Request Error: Conflict","additionalErrorDetails":"Pre existing network token exists for card on file with id:696ecc1d-63ab-4368-b69c-96f22f961b74","id":"68f113f7daee63d93b3bbcdf5f32fb29"}}}}}},"500":{"$ref":"#/components/responses/UnknownServerError"}}}},"/payment-instruments/{token}":{"parameters":[{"$ref":"#/components/parameters/pathToken"}],"delete":{"tags":["Payment Instrument Tokenization"],"summary":"Delete a Card-on-File","operationId":"deleteTokenizeInstrument","description":"Delete a BR-DGE Card-on-File. Please note that any associated Network Tokens will also be deleted.\n","security":[{"ClientApiKey":[]},{"ServerApiKey":[]}],"responses":{"200":{"description":"Successful deletion of Card-on-File."},"400":{"description":"Unsuccessful deletion of Card-on-File - bad request"},"404":{"description":"Card-on-File not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Token was not found":{"value":{"code":"4000","message":"Request Error: The request is invalid","additionalErrorDetails":"Could not find payment instrument for given token","id":"67e2af7457c0ae02dda9f54b768fbccf"},"description":"This example shows the 4000 BR-DGE response code when attempting to delete a token that does not exist or has already been removed.\n"}}}}},"500":{"$ref":"#/components/responses/UnknownServerError"}}}},"/payment-instruments/google-pay/query":{"post":{"tags":["Payment Instrument Tokenization"],"summary":"Get Google Pay token metadata","description":"Retrieve details for Google Pay card.\n","operationId":"queryGooglePayDetailsPOST","security":[{"ServerApiKey":[]}],"requestBody":{"description":"Google Pay token","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GooglePayTokenRequest"},"examples":{"google-pay-token-nonce":{"summary":"PSP bound nonce provided by Web SDK","value":{"token":"XX#868e8b42-d8bc-470c-9b84-49bf6d4e9a23"}},"google-pay-token-json":{"summary":"Token provided by Google Pay API","value":{"token":"{\"apiVersion\":2,\"apiVersionMinor\":0,\"paymentMethodData\":{\"description\": ..."}}}}}},"responses":{"200":{"description":"Successful retrieval of Google Pay details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GooglePayDetails"},"examples":{"full Google Pay card metadata":{"description":"Google Pay full card metadata and decrypted payload","value":{"decryptedPayload":{"gatewayMerchantId":"some-merchant-id","messageExpiration":"1650574736277","messageId":"AH2Ejtc88ZHJ-2aYBQWzHwvp6l0JsCHgxVt8s91A-ZUikaXNbcjsFm6gg9ExeVR-jzIyT-mJvA_ntvfRsDDOH2jnKMjdTtXIJvPt0NBUU45R7-gnjxkx-sI0ldcWvbDHsV0735yFDbWk","paymentMethod":"CARD","paymentMethodDetails":{"pan":"####-####-####-4444","expirationMonth":5,"expirationYear":2025,"authMethod":"PAN_ONLY","eciIndicator":"07","assuranceDetails":{"accountVerified":true,"cardholderAuthenticated":true}}},"metadata":{"metadataType":"cardMetaData","cardBrand":"VISA","issuer":"ACMEBANK","type":"DEBIT","category":"CLASSIC","countryIsoA2":"GB","commercial":true,"bin":"45678765"},"expiryDate":"05-25","fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60525"}}}}}},"400":{"description":"Bad request - the request was in an invalid format or contained invalid information.\n\nIf have any questions about why you are receiving these responses, please raise a ticket with support on the BR-DGE Support Portal at <https://docs.br-dge.io/docs/support#contact-support> with the `id` from the response so we can track down the individual requests on our end.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Bad request with wrong format error":{"value":{"code":"4000","message":"Invalid request","id":"5bbd919b637167ac","additionalErrorDetails":"Provided Google Pay token is in unknown format. Supported formats: PSP bound nonce, raw JSON."}}}}}},"401":{"$ref":"#/components/responses/UnauthorizedRequest"},"500":{"$ref":"#/components/responses/UnknownServerError"}}}},"/payment-instrument-registrations":{"post":{"tags":["Payment Instrument Registration"],"summary":"Register with an open banking account","description":"Create an account with an open banking provider","operationId":"paymentInstrumentRegistrationUsingPOST","security":[{"ServerApiKey":[]}],"requestBody":{"description":"Create an account using open banking","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistrationRequest"},"examples":{"regular":{"summary":"Register an account with Trustly Open Banking","value":{"type":"trustly","customer":{"customerId":"123123","firstName":"Steve","lastName":"Smith","country":"SE","postcode":"SE-11253","town":"Stockholm","addressLine1":"Main Street 1","addressLine2":"Main Street 2","phoneNumber":"+46709876543","documentId":"900219-1234","email":"test@brdge.co.uk","dateOfBirth":"1990-02-19"},"bank":{"bankNumber":"6112","clearingHouse":"SWEDEN","accountNumber":"69706212"}}}}}},"required":true},"responses":{"200":{"description":"Successfully registered an account at an Open Banking provider","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistrationResponse"},"example":{"type":"trustly","code":"1004","message":"Request succeeded","id":"67bdef06273ab98eccd9df27227f922f","paymentInstrumentRegistrationId":"81f7baee-2955-4fee-8d6f-289f8579b360","accountId":"7653385737","clearingHouse":"SWEDEN","bank":"Handelsbanken","descriptor":"**706212"}}}},"400":{"description":"Payment instrument registration request failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"code":"4200","message":"Request Failed","id":"6813767c9823bbfb21d9244c46d7c0d3"}}}},"500":{"$ref":"#/components/responses/UnknownServerError"}},"callbacks":{"Payment Instrument Registration Event":{"$ref":"#/components/callbacks/PaymentInstrumentRegistrationEvent"}}}},"/payment-instruments/apple-pay/query":{"post":{"tags":["Payment Instrument Tokenization"],"summary":"Get Apple Pay token metadata","description":"Apple Pay tokens contain encrypted data that only BR-DGE can decrypt. This endpoint lets you access that previously encrypted data, along with Bank Identifier Number (BIN) lookup data derived from the decrypted Apple Pay DPAN. This is particularly useful for performing your own pre-payment checks.","operationId":"queryApplePayDetailsPOST","security":[{"ServerApiKey":[]}],"requestBody":{"description":"Apple Pay token","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplePayTokenRequest"},"examples":{"apple-pay-token-nonce":{"summary":"Apple Pay PSP-bound nonce","value":{"token":"XX#868e8b42-d8bc-470c-9b84-49bf6d4e9a23"}},"apple-pay-raw-token":{"summary":"Apple Pay Raw Encrypted Token","value":{"token":"{\"token\":{\"paymentData\":{\"data\":\"ZPqomcCPxM9cuWCEcWgZ..."}}}}}},"responses":{"200":{"description":"Successful retrieval of Apple Pay details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplePayDetails"},"examples":{"full Apple Pay card metadata":{"description":"Apple Pay full card metadata and decrypted payload","value":{"decryptedPayload":{"applicationPrimaryAccountNumber":"4818528840216497","applicationExpirationDate":"281231","currencyCode":"826","transactionAmount":100,"cardholderName":"John Smith","deviceManufacturerIdentifier":"040010030273","paymentDataType":"3DSecure","paymentData":{"eciIndicator":7},"transactionId":"31675461ec268fed0ca9699e632753447d1a1de0aa65170e049033d7a801d3f3"},"paymentMethod":{"displayName":"MasterCard 0839","network":"MasterCard","type":"credit"},"metadata":{"metadataType":"cardMetaData","cardBrand":"VISA","issuer":"ACMEBANK","type":"DEBIT","category":"CLASSIC","countryIsoA2":"GB","commercial":true,"bin":"45678765"},"expiryDate":"12-28","fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c61228"}}}}}},"400":{"description":"Bad request - the request was in an invalid format or contained invalid information.\n\nIf have any questions about why you are receiving these responses, please raise a ticket with support on the BR-DGE Support Portal at <https://docs.br-dge.io/docs/support#contact-support> with the `id` from the response so we can track down the individual requests on our end.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Bad request with wrong format error":{"value":{"code":"4000","message":"Invalid request","id":"5bbd919b637167ac","additionalErrorDetails":"Provided Apple Pay token is in unknown format. Supported formats: PSP bound nonce, raw JSON."}}}}}},"401":{"$ref":"#/components/responses/UnauthorizedRequest"},"500":{"$ref":"#/components/responses/UnknownServerError"}}}},"/payment-instruments/psp-token/{pspName}/{pspToken}":{"get":{"tags":["Payment Instrument Tokenization"],"summary":"Get a Card-on-File from a PSP token","operationId":"retrievePaymentInstrumentByPspToken","description":"Use this endpoint to query a Card on File for a customer, identified by the PSP token and name.\n","security":[{"ServerApiKey":[]}],"parameters":[{"name":"pspName","in":"path","description":"The identifier for the Payment Service Provider (PSP) associated with the token.\n","required":true,"schema":{"$ref":"#/components/schemas/PspName"},"example":"Checkout.com"},{"name":"pspToken","in":"path","description":"The token generated by the Payment Service Provider (PSP).\n","required":true,"schema":{"type":"string","minLength":1},"example":"src_5ormqfczt43efnx7xe2mwod4vq"},{"$ref":"#/components/parameters/queryShowPanLeadingChars"}],"responses":{"200":{"description":"Returns the matching obfuscatedCard with associated multi-use token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObfuscatedCard"},"examples":{"BR-DGE Card-on-File while Network Token is Provisioning":{"description":"If enabled on your BR-DGE Retail Channel, a Network Token may be provisioned for your BR-DGE Card-on-File.","value":{"cardType":"MASTERCARD","pan":"####-####-####-4590","expiryDate":"02-36","startDate":"12-22","metadata":{"metadataType":"cardMetaData","cardBrand":"MASTERCARD","type":"CREDIT","countryIsoA2":"US","commercial":false,"bin":"45678765"},"cardArtUri":"https://stage.assets.mastercard.com/card-art/combined-image-asset/MyBank-mastercard.png","fingerprint":"badc12faf7f0d63935770a9b8ed07b4cef6dd4d1659ffbc9b41b9a8502dfaefd","networkTokenProvisioningStatus":"PROVISIONING"}},"BR-DGE Card-on-File with PSP token":{"description":"Card-on-File returned with matching psp token information.","value":{"cardType":"MASTERCARD","pan":"####-####-####-4590","expiryDate":"02-36","startDate":"12-22","metadata":{"metadataType":"cardMetaData","cardBrand":"MASTERCARD","type":"CREDIT","countryIsoA2":"US","commercial":false,"bin":"45678765"},"cardArtUri":"https://stage.assets.mastercard.com/card-art/combined-image-asset/MyBank-mastercard.png","fingerprint":"badc12faf7f0d63935770a9b8ed07b4cef6dd4d1659ffbc9b41b9a8502dfaefd","fingerprintExtended":"badc12faf7f0d63935770a9b8ed07b4cef6dd4d1659ffbc9b41b9a8502dfaefd0236","associatedMultiUseToken":"de92efe1-a89a-44ad-9ee3-bd6257287e10","pspTokens":[{"pspName":"Checkout.com","token":"src_5ormqfczt43efnx7xe2mwod4vq","pspCardFingerprint":"C7BB2667AF7EDEA0745B8C2E8B7B68ED447711B794BA3151B3D91E2A63E40102"}]}},"BR-DGE Card-on-File with PSP token and Provisioned Network Token":{"description":"Card-on-File returned with matching psp token information.","value":{"cardType":"MASTERCARD","pan":"####-####-####-4590","expiryDate":"02-36","startDate":"12-22","metadata":{"metadataType":"cardMetaData","cardBrand":"MASTERCARD","type":"CREDIT","countryIsoA2":"US","commercial":false,"bin":"45678765"},"cardArtUri":"https://stage.assets.mastercard.com/card-art/combined-image-asset/MyBank-mastercard.png","fingerprint":"badc12faf7f0d63935770a9b8ed07b4cef6dd4d1659ffbc9b41b9a8502dfaefd","fingerprintExtended":"badc12faf7f0d63935770a9b8ed07b4cef6dd4d1659ffbc9b41b9a8502dfaefd0236","associatedMultiUseToken":"de92efe1-a89a-44ad-9ee3-bd6257287e10","pspTokens":[{"pspName":"Checkout.com","token":"src_5ormqfczt43efnx7xe2mwod4vq","pspCardFingerprint":"C7BB2667AF7EDEA0745B8C2E8B7B68ED447711B794BA3151B3D91E2A63E40102"}],"networkTokenProvisioningStatus":"PROVISIONED","networkToken":{"id":"61XJzB_BQ9qa29nGa7JZrQ000000000000US","token":"5299920000000149","expiryDate":"12-99","issuer":"VISA","status":"ACTIVE","tokenUniqueReference":"DM4MMC0000000001cd2826c715b7475bb089b7622366ebe4","paymentAccountReference":"5001EUMYTT3AESCZGUEC77KPCLETI","lastFour":"0149","cardBin":"001234","cardLastFour":"1234","cardExpiryDate":"12-34","cardIssuer":"Bank of BR-DGE"}}}}}}},"400":{"description":"Bad request - the request was in an invalid format or contained invalid information.\n\nIf have any questions about why you are receiving these responses, please raise a ticket with support on the BR-DGE Support Portal at <https://docs.br-dge.io/docs/support#contact-support> with the `id` from the response so we track down the individual requests on our end.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Bad request with validation errors":{"value":{"code":"4000","message":"Request Error - The request is invalid","id":"4fad8e2e06a15656","validationErrors":{"paymentId":"4042103 - The value entered for PSP is incorrect. It is not a known PSP name."}},"description":"This example shows the [4042103] **Validation Error**.\n\nA full list of possible validation errors are available [here].\n\n[4042103]: https://docs.br-dge.io/docs/validation-errors#4042103\n\n[here]: https://docs.br-dge.io/docs/validation-errors\n"}}}}},"401":{"$ref":"#/components/responses/UnauthorizedRequest"},"404":{"$ref":"#/components/responses/EntityNotFound"},"500":{"$ref":"#/components/responses/UnknownServerError"}}}},"/payment-instruments/{token}/verifications":{"parameters":[{"$ref":"#/components/parameters/pathToken"}],"post":{"tags":["Verify"],"summary":"Verify the account name for a Card-on-File.","description":"Verifies whether the account name provided matches the issuer-held account name for an existing Card-on-File. This endpoint currently supports Visa Card-on-File multi-use tokens with an active Visa Network Token. If the supplied Card-on-File is not eligible for account name verification, an error response will be returned.\n","operationId":"verifyPaymentInstrumentAccount","security":[{"ServerApiKey":[]}],"requestBody":{"description":"Account-name verification request for an existing Card-on-File.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyRequest"},"examples":{"Verify account name":{"description":"Verify account name for Card-on-File with given Multi-use Token.","value":{"verify":{"accountName":{"firstName":"John","lastName":"Doe"}}}}}}},"required":true},"responses":{"200":{"description":"Account name verification completed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyResponse"},"examples":{"Account name matched":{"value":{"scheme":"VISA","accountNameResult":{"overall":"MATCH","firstName":"MATCH","lastName":"MATCH"}}},"Account name partially matched":{"value":{"scheme":"VISA","accountNameResult":{"overall":"PARTIAL_MATCH","firstName":"MATCH","lastName":"MATCH"}}},"Account name did not match":{"value":{"scheme":"VISA","accountNameResult":{"overall":"NO_MATCH","firstName":"NO_MATCH","lastName":"NO_MATCH"}}}}}}},"400":{"description":"Bad request. The request was invalid, or the supplied token could not be used for account name verification.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Invalid request":{"value":{"code":"4000","message":"Request Error - The request is invalid","id":"4fad8e2e06a15656","validationErrors":{"verify.accountName.firstName":"First name cannot be blank.","verify.accountName.lastName":"Last name cannot be blank."}}},"Card-on-File is not Visa":{"description":"Returned when the supplied Card-on-File is linked to a non-Visa network. Visa is currently the only supported scheme for this account name verification endpoint.\n","value":{"code":"4700","message":"Request Error - Unsupported card network","additionalErrorDetails":"Account name verification is currently only supported for Visa Card-on-File tokens.","id":"4fad8e2e06a15656"}},"Payment instrument is not a card":{"description":"Returned when the supplied token resolves to a payment instrument that is not a card, and so cannot be used for account name verification.\n","value":{"code":"4218","message":"Request Error - Unsupported operation for this payment instrument","additionalErrorDetails":"The supplied payment instrument is not a card.","id":"4fad8e2e06a15656"}},"Issuer does not support account name verification":{"description":"Returned when Visa indicates that the issuer does not support account name verification for the supplied payment instrument.\n","value":{"code":"4806","message":"Request Error - Account name verification is not supported","additionalErrorDetails":"The issuer does not support account name verification for this payment instrument.","id":"4fad8e2e06a15656"}},"Visa account verification not enrolled":{"description":"Returned when Visa indicates, via downgrade indicator `NOT_ENROLLED`, that account verification is not enrolled for the supplied payment instrument or configuration.\n","value":{"code":"4102","message":"Request Error - Merchant account config error on payment processor","additionalErrorDetails":"Visa account name verification is not enrolled for this payment instrument or configuration.","id":"4fad8e2e06a15656"}},"Visa account verification enrollment incomplete":{"description":"Returned when Visa indicates, via downgrade indicator `ENROLLMENT_INCOMPLETE`, that account verification enrollment is incomplete for the supplied payment instrument or configuration.\n","value":{"code":"4102","message":"Request Error - Merchant account config error on payment processor","additionalErrorDetails":"Visa account name verification enrollment is incomplete for this payment instrument or configuration.","id":"4fad8e2e06a15656"}}}}}},"401":{"$ref":"#/components/responses/UnauthorizedRequest"},"403":{"description":"BR-DGE Verify or Visa Network Tokens are not enabled for the retail channel, or the Visa account verification configuration is missing.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Verify not enabled":{"description":"Returned when the merchant or retail channel is not configured for BR-DGE Verify or Visa Network Tokens, or the Visa account verification configuration is missing.\n","value":{"code":"4031","message":"Request Error - This functionality is not enabled for the retail channel.","additionalErrorDetails":"BR-DGE Verify or Visa Network Tokens are not enabled. Please contact Customer Support.","id":"4fad8e2e06a15656"}}}}}},"404":{"description":"The supplied Card-on-File was not found, or has no active Network Token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Active multi-use token not found":{"description":"Returned when BR-DGE cannot find an active Card-on-File for the supplied multi-use token.\n","value":{"code":"4253","message":"Request Error - Active payment instrument not found","additionalErrorDetails":"Could not find an active Card-on-File for the supplied token.","id":"4fad8e2e06a15656"}},"Network Token not found":{"description":"Returned when BR-DGE finds the supplied Card-on-File, but no active Network Token is assigned to it.\n","value":{"code":"4703","message":"No network token found for this Card-on-File","additionalErrorDetails":"No active Network Token is associated with the supplied Card-on-File.","id":"4fad8e2e06a15656"}}}}}},"500":{"$ref":"#/components/responses/UnknownServerError"},"502":{"description":"Downstream Visa service unavailable, timed out, or returned an unsuccessful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Visa service unavailable":{"description":"Returned when BR-DGE cannot complete the account name verification because Visa or a downstream dependency is unavailable, or Visa indicates a processing error via downgrade indicator `AV_ERROR`.\n","value":{"code":"5003","message":"Unexpected error","additionalErrorDetails":"A downstream service was unavailable while processing the account name verification request.","id":"4fad8e2e06a15656"}},"Visa account verification timed out":{"description":"Returned when the account name verification call to Visa times out, including when Visa indicates a timeout via downgrade indicator `AV_TIMEOUT`.\n","value":{"code":"5305","message":"Network timeout","additionalErrorDetails":"The account name verification request to Visa timed out.","id":"4fad8e2e06a15656"}}}}}}}}}},"components":{"schemas":{"ApplePayTokenRequest":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/ApplePayToken"}}},"ApplePayToken":{"description":"If you are directly integrating with Apple Pay APIs on your client app then please refer to our [Apple Pay REST API guide] for details on how to generate an Apple Pay token for BR-DGE Payments.\n\nAlternatively you can use the [BR-DGE Web SDK Apple Pay module] to directly generate Apple Pay tokens for BR-DGE Payments.\n\n[Apple Pay REST API guide]: https://docs.br-dge.io/docs/rest-api-apple-pay\n[BR-DGE Web SDK Apple Pay module]: https://docs.br-dge.io/docs/apple-pay-module\n","type":"string","example":"BR#00000000-0000-0000-0000-000000000000"},"ApplePayDetails":{"description":"Additional information about Apple Pay Payment Instruments.","allOf":[{"$ref":"#/components/schemas/DetailsOfAssociatedCardPaymentInstrument"},{"type":"object","description":"Decrypted Apple Pay information and card metadata\n","properties":{"decryptedPayload":{"$ref":"#/components/schemas/ApplePayDecryptedPayload"},"paymentMethod":{"$ref":"#/components/schemas/ApplePayPaymentMethod"}}}]},"ApplePayDecryptedPayload":{"type":"object","description":"[Apple Pay decrypted payload] excluding sensitive fields, such as cryptogram\n\n[Apple Pay decrypted payload]: https://developer.apple.com/documentation/passkit_apple_pay_and_wallet/apple_pay/payment_token_format_reference#3949536\n","required":["applicationPrimaryAccountNumber","applicationExpirationDate","currencyCode","transactionAmount","deviceManufacturerIdentifier","paymentDataType","paymentData","transactionId"],"properties":{"applicationPrimaryAccountNumber":{"type":"string","example":"4818528840216497","description":"Device-specific account number of the card that funds this transaction"},"applicationExpirationDate":{"type":"string","example":"281231","description":"Card expiration date in the format YYMMDD"},"currencyCode":{"example":"826","type":"string","description":"ISO 4217 numeric currency code, as a string to preserve leading zeros"},"transactionAmount":{"example":100,"type":"integer","description":"Transaction amount in the lowest denomination of the given currency"},"cardholderName":{"example":"John Smith","type":"string","description":"Optional field containing cardholder's name if present"},"deviceManufacturerIdentifier":{"example":"040010030273","type":"string","description":"Hex-encoded device manufacturer identifier"},"paymentDataType":{"example":"3DSecure","type":"string","description":"Transaction type.\n\nEMV relates to POS terminal transactions. 3D-Secure relates to ecommerce transactions.\n","enum":["3DSecure","EMV"]},"paymentData":{"$ref":"#/components/schemas/ApplePayDecryptedPaymentData"},"transactionId":{"example":"31675461ec268fed0ca9699e632753447d1a1de0aa65170e049033d7a801d3f3","type":"string","description":"Transaction identifier, generated on the device.\n\nRetrieved from [header] of decoded Apple Pay token.\n\n[header]: https://developer.apple.com/documentation/passkit_apple_pay_and_wallet/apple_pay/payment_token_format_reference#3949539\n"}}},"ApplePayDecryptedPaymentData":{"type":"object","description":"Detailed payment data, excluding cryptogram","properties":{"eciIndicator":{"type":"integer","example":7,"description":"Optional. ECI indicator, as defined by 3D-Secure.\n\nThe card network may add an ECI indicator to the payment data that the payment token includes.\n"}}},"ApplePayPaymentMethod":{"type":"object","description":"Details from the `paymentMethod` section of the ApplePay token","properties":{"displayName":{"type":"string","example":"MasterCard 0839"},"network":{"type":"string","example":"MasterCard"},"type":{"type":"string","example":"credit"}}},"GooglePayTokenRequest":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/GooglePayToken"}}},"GooglePayToken":{"description":"## If you integrate directly with the Google Pay&trade; API\nFollow the procedure in the Google Pay documentation to integrate your [web](https://developers.google.com/pay/api/web/guides/setup) or [Android](https://developers.google.com/pay/api/android/guides/setup) application.\nIn the step where you choose a payment tokenization method, choose `Gateway`, then set `comcarde` as your `gateway`. If you have not been provided with a `gatewayMerchantId` parameter, please raise a ticket with support on the BR-DGE Support Portal at <https://docs.br-dge.io/docs/support#contact-support>.\n## If you use a BR-DGE SDK\nThe BR-DGE SDK can optionally be used to automate client side interactions with the Google Pay&trade; API. The SDK will output a nonce that you can directly use.\nFor more information please refer to the [Google Pay Feature](https://docs.br-dge.io/docs/features-google-pay) page.\n","type":"string","example":"{\"apiVersion\":2,\"apiVersionMinor\":0, \"paymentMethodData\":{\"description\": \"Test Card: Visa •••• 1111\", \"info\":{\"assuranceDetails\":{\"accountVerified\":true, \"cardHolderAuthenticated\":false},\"cardDetails\":\"1111\", \"cardNetwork\":\"VISA\"},\"tokenizationData\":{\"token\": \"{\"signature\":\"MEUCIBSc1HRfQds/JkpNXakkaJf2geKR9HZE4Rhof/ qnNRymAiEArDzEmaOC+lTqzHmvA+Z1sFfRMROdtr0pTAGVFWUjLV4u003d\", \"intermediateSigningKey\":{\"signedKey\":\"{\"keyValue\": \"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE60Dnzr+/JD +xJOOIFBMRyVoqPCbQcBjj/TwGJu9ct/srT8tZDDWJzNZo2vDE50YLE38oHBJWLjAws hqDzKfQKQu003du003d\",\"keyExpiration \":\"1710831722061\"}\",\"signatures\":[\"M EUCIQDqib3bqGDAzyQRRtc7xci1EzhNqxAj1oEIrCfSiUd7WAIgc09CIVz7zKa9StsZ Bw95vvoRORsbF1qCKtPk5ltQihEu003d\"]},\"protocolVersion\": \"ECv2\",\"signedMessage\":\"{\"encryptedMessage \":\"My/Y7NLgWNCMiQzd/muw8XyCMDhMS38j9FjTyKPsmKNWM5UHl+PkT urYyVv6kSJGAkWF6HCBIx3J1Ch6kJtx4w8/pmP7ujxCwEiDiynsffAIeubQpkv69gIp +H/SZs7DiqOvdhXhHF5vpkYvU3NmVMjvNZeU3rgclwldC1IAJzGyxdafLYu7WKtajEv bBfIq/Rp+XXGkTw4pkGt7MYVNcWqUY4qO1mRmIyyj+UrR5wru9rXlxZu9xA0ofdBc4a 8tkOp6wUgD+5+VMZ3GbUrQZbV+hnwFqMl60U1+u2nSr9PInbusVT73tqr2Y37EmViCC I1s0Evoj8nakWgblLQ9L0HMS2G9XdIvktuLS2oDDxZziv1IquBShyYeik0Hhceq5HK9 d16MTIpLm1kP188YL1TtHoVCRNJX0T5lTfsTATN9PsMp9fl+SRBzjr2ZrfFtyjJB652 wi6FMJquIcVIoc1t6HAJ6ZQQyaR8gWaV+/BmkIm6EPmOUczF5sYTNGXilnKf91PwaoN zhBnatlx468fqkvyKGN5pjfsK2BCUGJJw9UwiYPWNrD24fzJ/Fwlxh0uToo5CiT8KmA qoKSxzJ9Fh/XtVsbbH0+yfUBNUfLsWs3Rsu003d\",\"eph emeralPublicKey\":\"BLyIO17wMMcKccD9XJMlUQ8vHnI3IfoE6Ss bQuVxerTtolZ7ICGRhW0lbxF3q7blzvgSDIYLk9cab27mCKT0sy0u003d \",\"tag\":\"CIKT0sRruAuW7nJ3THAgZuWHpE0PJBc4 eLmfHRWZgpsu003d\"}\"}\", \"type\":\"PAYMENT_GATEWAY\"},\"type\":\"CARD\"}}"},"GooglePayDetails":{"description":"Additional information about Google Pay Payment Instruments.","allOf":[{"$ref":"#/components/schemas/DetailsOfAssociatedCardPaymentInstrument"},{"type":"object","description":"Decrypted Google Pay information and card metadata\n","properties":{"decryptedPayload":{"$ref":"#/components/schemas/GooglePayDecryptedPayload"}}}]},"GooglePayDecryptedPayload":{"type":"object","description":"[Google Pay decrypted payload] excluding sensitive fields, such as cryptogram\n\n[Google Pay decrypted payload]: https://developers.google.com/pay/api/android/guides/resources/payment-data-cryptography#encrypted-message\n","properties":{"gatewayMerchantId":{"type":"string","example":"some-merchant-id","description":"Google Pay gateway merchant ID."},"messageExpiration":{"type":"string","example":"1650574736277","description":"Date and time at which the message expires as UTC milliseconds since epoch.\n"},"messageId":{"type":"string","example":"AH2Ejtc88ZHJ-2aYBQWzHwvp6l0JsCHgxVt8s91A-ZUikaXNbcjsFm6gg9ExeVR-jzIyT-mJvA_ntvfRsDDOH2jnKMjdTtXIJvPt0NBUU45R7-gnjxkx-sI0ldcWvbDHsV0735yFDbWk","description":"A unique ID that identifies the message in case it needs to be revoked or located at a later time.\n"},"paymentMethod":{"type":"string","example":"CARD","enum":["CARD"],"description":"The type of the payment credential. Currently, only CARD is supported.\n"},"paymentMethodDetails":{"$ref":"#/components/schemas/GooglePayDecryptedPaymentMethodDetails"}}},"GooglePayDecryptedPaymentMethodDetails":{"type":"object","description":"The Google Pay payment credential, excluding cryptogram.","properties":{"pan":{"type":"string","example":"####-####-####-4444","description":"The personal account number of the card that the Google Pay token relates to.\nThe value of this field depends on the value of `authMethod`.\n  - If authMethod is PAN_ONLY:\n    - This is an obfuscated PAN, where only the last 4 digits are present.\n  - If authMethod is CRYPTOGRAM_3DS:\n    - This is the full DPAN value generated by Google Pay.\n"},"expirationMonth":{"type":"integer","example":5,"description":"The expiration month of the card, where 1 represents January, 2 represents February, and so on."},"expirationYear":{"type":"integer","example":2025,"description":"The four-digit expiration year of the card, such as 2020."},"authMethod":{"type":"string","example":"PAN_ONLY","description":"The authentication method of the card transaction.","enum":["PAN_ONLY","CRYPTOGRAM_3DS"]},"eciIndicator":{"type":"string","example":"07","description":"This string isn’t always present. It returns only for authenticated device tokens transactions on Android (CRYPTOGRAM_3DS). This value must be passed down the payment processing flow.\n\nPossible values: \"\"(empty), 02, 06, 05, 07\n"},"assuranceDetails":{"$ref":"#/components/schemas/GooglePayDecryptedAssuranceDetails"}}},"GooglePayDecryptedAssuranceDetails":{"type":"object","description":"This object provides information about the validation performed on the returned payment data.","properties":{"accountVerified":{"type":"boolean","description":"If true, indicates that Cardholder possession validation has been performed on returned payment credential.\n"},"cardholderAuthenticated":{"type":"boolean","description":"If true, indicates that identification and verifications (ID&V) was performed on the returned payment credential.\n\nIf false, the same risk-based authentication can be performed as you would for card transactions. This risk-based authentication can include, but is not limited to, 3D-Secure authentication if applicable.\n"}}},"DetailsOfAssociatedCardPaymentInstrument":{"type":"object","description":"Reusable details which can be returned on various card payment instrument backed payment instrument types. All details which are returned here are considered obfuscated.\n","properties":{"metadata":{"$ref":"#/components/schemas/CardMetadata"},"expiryDate":{"$ref":"#/components/schemas/CardExpiryDate"},"fingerprint":{"$ref":"#/components/schemas/Fingerprint"},"fingerprintExtended":{"$ref":"#/components/schemas/FingerprintExtended"}}},"FingerprintExtended":{"type":"string","description":"A fingerprint with card expiry date appended in MMYY format.\n"},"CryptogramProvisioningResponse":{"type":"object","description":"A provisioned network token cryptogram.\nThis cryptogram field will only be included if `networkTokenProvisioning`\nis set to `cryptogram` and the cryptogram provisioning succeeds.\n","allOf":[{"$ref":"#/components/schemas/NetworkTokenCryptogram"},{"type":"object","properties":{"networkToken":{"$ref":"#/components/schemas/NetworkToken"}}}]},"ErrorResponse":{"title":"ErrorResponse","type":"object","properties":{"additionalErrorDetails":{"type":"string","description":"Additional information that may sometimes be returned about the reason an error occurred."},"code":{"$ref":"#/components/schemas/Code"},"id":{"$ref":"#/components/schemas/RequestId"},"message":{"$ref":"#/components/schemas/Message"},"validationErrors":{"type":"object","additionalProperties":{"type":"string"},"description":"An object that contains validation errors"}}},"ResponseMapObfuscatedCard":{"title":"ResponseMapObfuscatedCard","type":"object","description":"Map of Card-on-Files, keyed by their multi-use token.","properties":{"id":{"$ref":"#/components/schemas/RequestId"},"results":{"type":"object","description":"Map of obfuscated cards keyed by multi-use token","additionalProperties":{"$ref":"#/components/schemas/ObfuscatedCard"}}},"example":{"id":"example-response-trace-id","results":{"3d967f3e-8710-4c2b-9828-28b9531617f1":{"cardType":"VISA","nameOnCard":"John F Doe","pan":"#### #### #### 1111","expiryDate":"06-30","startDate":"01-20","issueNumber":0,"customerId":"example-customer-id","tokenType":"CARD","metadata":{"metadataType":"cardMetaData","cardBrand":"VISA","issuer":"ACMEBANK","type":"DEBIT","category":"CLASSIC","countryIsoA2":"GB","commercial":true,"bin":"45678765"},"fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60630"},"example-token-2":{"cardType":"MASTERCARD","nameOnCard":"Jane Doe","pan":"#### #### #### 1234","expiryDate":"07-31","startDate":"09-21","issueNumber":2,"customerId":"example-customer-id","tokenType":"CARD","fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60731"},"4c5f1e1d-a8d4-403c-8199-e9705da98735":{"cardType":"MASTERCARD","nameOnCard":"John F Doe","pan":"#### #### #### 4321","expiryDate":"02-29","startDate":"10-20","customerId":"example-customer-id","tokenType":"CARD","metadata":{"metadataType":"cardMetaData","cardBrand":"MASTERCARD","type":"DEBIT","countryIsoA2":"GB","bin":"45678765"},"fingerprint":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6","fingerprintExtended":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c60229"}}}},"ObfuscatedCard":{"description":"Information about card payment instruments. This can be used to help cardholders identify which of their cars were used (without becoming PCI sensitive) in addition to the metadata providing useful insights for merchants.\n","type":"object","properties":{"tokenType":{"type":"string","example":"CARD","description":"Always `CARD`"},"cardType":{"type":"string","description":"Please use `metadata`.`cardBrand` instead.\n\nThis field is now deprecated and will be removed in a future update.\n","example":"VISA","deprecated":true},"nameOnCard":{"type":"string","description":"Name on the credit or debit card.","example":"John F Doe"},"pan":{"type":"string","description":"PAN of the credit or debit card in obfuscated form.","example":"#### #### #### 1111"},"expiryDate":{"$ref":"#/components/schemas/CardExpiryDate"},"startDate":{"type":"string","description":"Start date of the credit or debit card.","example":"01-20"},"issueNumber":{"type":"integer","description":"Issue number of the credit or debit card.","format":"int32"},"customerId":{"type":"string","description":"ID of the merchant's customer who owns the payment instrument (if available)\n","example":"example-customer-id"},"pspTokens":{"type":"array","description":"A set of PSP tokens linked to this Card-on-File","items":{"type":"object","description":"The PSP token linked to this Card-on-File","properties":{"pspName":{"$ref":"#/components/schemas/PspName"},"token":{"type":"string","description":"The token generated by the PSP"},"pspCardFingerprint":{"type":"string","description":"The PSP fingerprint for the payment instrument (if available)"},"tokenProvisioningStatus":{"$ref":"#/components/schemas/PspTokenProvisioningStatus"},"additionalData":{"$ref":"#/components/schemas/PspTokenAdditionalData"}}}},"fingerprint":{"$ref":"#/components/schemas/Fingerprint"},"fingerprintExtended":{"type":"string","description":"A fingerprint with card expiry date appended in MMYY format.\n"},"cardArtUri":{"type":"string","description":"URI to card art","format":"uri","example":"https://example.com/card-art/09a29968-f53f-4bdb-9744-6033996ee55f"},"metadata":{"$ref":"#/components/schemas/PaymentInstrumentMetadata"},"networkTokenProvisioningStatus":{"$ref":"#/components/schemas/NetworkTokenProvisioningStatus"},"networkToken":{"$ref":"#/components/schemas/NetworkTokenWithCryptogram"},"associatedMultiUseToken":{"type":"string","description":"Multi-use token associated with the card","example":"4fg0498a-98cb-42ha-9g6a-06c7e63uc38f"},"customMetadata":{"$ref":"#/components/schemas/CustomMetadata"}}},"PspTokenProvisioningStatus":{"type":"string","description":"The status of the PSP token provisioning. It can be one of the following states:\n\n- `UNPROVISIONED`: A PSP token has not attempted to be provisioned for this payment instrument.\n- `PROVISIONING`: Provisioning has been triggered but is not completed.\n- `FAILED`: Provisioning has failed, and could not be completed.\n- `PROVISIONED`: Provisioning was successful, and a PSP token is available for use.\n- `DELETED`: The PSP token has been deleted at BR-DGE and BR-DGE.\n","enum":["UNPROVISIONED","PROVISIONING","FAILED","PROVISIONED","DELETED"],"example":"PROVISIONED"},"CardMetadata":{"type":"object","description":"If a card payment instrument is used then BR-DGE may be able to provide metadata about the card\n\n**Please note: All text will be UPPERCASE and all fields can be null**\n","properties":{"metadataType":{"type":"string","description":"Discriminator field. Discriminator field. Please see the discriminator mapping for the PaymentInstrumentMetadata schema.\n"},"cardBrand":{"type":"string","example":"MASTERCARD","description":"MASTERCARD, VISA, etc"},"issuer":{"type":"string","description":"Name of issuing bank"},"type":{"type":"string","enum":["DEBIT","CREDIT","CHARGE_CARD","CHARGE","DEFERRED_DEBIT","PREPAID","PREPAID_RELOADABLE","UNKNOWN"]},"category":{"type":"string","example":"CLASSIC","description":"CLASSIC, BUSINESS, MIXED_PRODUCT, etc"},"countryIsoA2":{"type":"string","description":"ISO 3166 Alpha-2 Country code","example":"GB"},"commercial":{"type":"boolean","description":"Indicates if the card is corporate or retail","example":true},"bin":{"type":"string","description":"The Bank Identification Number that identifies the bank or financial institution that issued the card","example":"48321456","pattern":"^[0-9]+$","minLength":6,"maxLength":8}}},"PaymentInstrumentMetadata":{"oneOf":[{"$ref":"#/components/schemas/CardMetadata"}],"discriminator":{"propertyName":"metadataType","mapping":{"cardMetaData":"#/components/schemas/CardMetadata"}}},"CardExpiryDate":{"type":"string","example":"05-25","description":"Card expiry date in MM-YY format.\n"},"NetworkTokenProvisioningStatus":{"type":"string","description":"The status of the Network Token provisioning. It can be one of the following states:\n\n- `UNPROVISIONED`: A Network Token has not attempted to be provisioned, is not enabled or not valid for this payment instrument.\n- `PROVISIONING`: Provisioning has been triggered but is not completed.\n- `FAILED`: Provisioning has failed. The provisioning could not be completed.\n- `PROVISIONED`: Provisioning was successful, and a Network Token is available for use.\n","enum":["UNPROVISIONED","PROVISIONING","FAILED","PROVISIONED"],"example":"PROVISIONED"},"NetworkTokenCryptogram":{"type":"object","required":["cryptogram","eci"],"properties":{"cryptogram":{"description":"The cryptogram value, from the provider of the Network Token.\nThis value is one time use, for subsequent payments a new cryptogram should be retrieved.\n","type":"string","example":"Qwertyuio0987654321asdfghjklpois"},"eci":{"description":"The electronic commerce indicator (ECI).","type":"string","example":"07"}}},"NetworkToken":{"description":"Information about a Network Token.\n","type":"object","required":["expiryDate","issuer","status","id","tokenUniqueReference","paymentAccountReference"],"properties":{"id":{"type":"string","description":"A unique identifier that represents the token associated with a card enrolled into the Card Network Service","example":"WXdfRANqUrBalltlBKaaWHVGrFoWrIHsZAK"},"token":{"type":"string","description":"The unique token for the enrolled PAN which can be used\nin authorization as per ISO/IEC 7812 format.\n\n\nThis will only be available once a cryptogram has been provisioned\nat least once.\n","example":"5186151969968300"},"expiryDate":{"type":"string","description":"Expiration date of the token, noted in MM-YY format","example":"08-26","pattern":"^(0[1-9]|1[0-2])-\\d{2}$"},"issuer":{"$ref":"#/components/schemas/NetworkTokenIssuer"},"status":{"$ref":"#/components/schemas/NetworkTokenStatus"},"tokenUniqueReference":{"type":"string","description":"Unique identifier for the Network Token provided by the Card Network","example":"DM4MMC0000000001cd2826c715b7475bb089b7622366ebe4"},"paymentAccountReference":{"type":"string","description":"A non-financial reference assigned to each unique funding PAN (FPAN) that's used to link the payment account of that PAN to affiliated payment tokens. See our [dedicated PAR guide](https://docs.br-dge.io/docs/payment-account-reference) for more info.\n","example":"5001EUMYTT3AESCZGUEC77KPCLETI"},"lastFour":{"type":"string","description":"Last four digits of the Network Token","example":"1234"},"cardBin":{"type":"string","description":"BIN of the associated associated Card","example":"00123456"},"cardLastFour":{"type":"string","description":"Last four digits of the associated Card","example":"1234"},"cardExpiryDate":{"type":"string","description":"Expiration date of the associated Card, noted in MM-YY Format","example":"08-26","pattern":"^(0[1-9]|1[0-2])-\\d{2}$"},"cardIssuer":{"type":"string","description":"Name of the issuing bank","example":"Bank of BR-DGE"}}},"NetworkTokenWithCryptogram":{"allOf":[{"$ref":"#/components/schemas/NetworkToken"},{"type":"object","properties":{"cryptogram":{"$ref":"#/components/schemas/NetworkTokenCryptogram"},"cryptogramProvisioningStatus":{"$ref":"#/components/schemas/CryptogramProvisioningStatus"}}}]},"Fingerprint":{"type":"string","maxLength":64,"description":"A unique token that can be used to detect if two BR-DGE tokens represent the same underlying Payment Instrument.\n","example":"63c8563d876b993878e1b5506b5fc5826e9e46266daaadac018a71ed307748c6"},"CryptogramProvisioningStatus":{"type":"string","description":"A cryptogram provisioning status is only given when provisioning is attempted while synchronously provisioning a network token.\n\nAs cryptogram provisioning is a synchronous operation, this status will never be `PROVISIONING`.\nThe status of the network token cryptogram provisioning. It can be one of the following states:\n\n- `FAILED`: Provisioning has failed. The provisioning could not be completed.\n- `PROVISIONED`: Provisioning was successful, and a NT cryptogram is available for use.\n","enum":["FAILED","PROVISIONED"],"example":"PROVISIONED"},"VerificationRequest":{"description":"Represents a request to verify details held by the Payment Service Provider (PSP).","required":["psp","verificationDetails"],"properties":{"psp":{"$ref":"#/components/schemas/PspName"},"verificationDetails":{"$ref":"#/components/schemas/VerificationDetails"}}},"VerificationDetails":{"oneOf":[{"$ref":"#/components/schemas/TrustlyVerificationDetails"},{"$ref":"#/components/schemas/NetellerVerificationDetails"},{"$ref":"#/components/schemas/SkrillVerificationDetails"},{"$ref":"#/components/schemas/OttVerificationDetails"},{"$ref":"#/components/schemas/BluVoucherVerificationDetails"}],"discriminator":{"propertyName":"type","mapping":{"trustly":"#/components/schemas/TrustlyVerificationDetails","neteller":"#/components/schemas/NetellerVerificationDetails","skrill":"#/components/schemas/SkrillVerificationDetails","ottVoucher":"#/components/schemas/OttVerificationDetails","bluVoucher":"#/components/schemas/BluVoucherVerificationDetails"}}},"TrustlyVerificationDetails":{"description":"Contains information used to identify the customer.\n","type":"object","required":["type","firstName","lastName","customerId","country","locale","email"],"properties":{"type":{"type":"string","description":"Discriminator field. Please see the discriminator mapping for the VerificationDetails schema.\n","example":"trustly"},"firstName":{"type":"string","example":"John","description":"Customer's first name.","maxLength":255},"lastName":{"type":"string","example":"Smith","description":"Customer's last name.","maxLength":255},"customerId":{"type":"string","description":"Customer's customer ID.","maxLength":100,"example":"def456"},"country":{"$ref":"#/components/schemas/CountryIsoCode"},"locale":{"$ref":"#/components/schemas/LocaleIsoCodes"},"email":{"type":"string","example":"a.b@example.com","description":"Customer's email.","format":"email"},"successUrl":{"type":"string","minLength":2,"maxLength":300,"example":"https://myurl.com/success/f219ea52-d91f-4059-a560-8dd7cbd31fd0","description":"A URL that is invoked after a successful Trustly transaction.\n\nBy 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.\n"},"errorUrl":{"type":"string","maxLength":300,"description":"A URL that is invoked after an unsuccessful Trustly transaction.","example":"https://myurl.com/error"},"ipAddress":{"pattern":"^$|^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|::(ffff(:0{1,4})?:)?((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)))$","type":"string","description":"Customer's IP address (IPv4 or IPv6).","example":"123.100.100.200"},"documentId":{"maxLength":255,"type":"string","description":"Customer's social security number / personal number / birth number / etc.\n\nUsed by some countries (currently only Sweden) to perform additional verification when logging into a bank account.\n","example":"ABC-123456"},"phoneNumber":{"maxLength":255,"pattern":"^$|^[+]?[(0-9][0-9 ()-]*[0-9]$","type":"string","description":"Customer's telephone number.\nPlease use only numbers, spaces and an optional leading +.","example":"+44 123 1110000"},"dateOfBirth":{"type":"string","format":"date","description":"Customer's date of birth.","example":"2000-01-01"}}},"NetellerVerificationDetails":{"description":"Contains information to identify the customer (\"customer\") and details about the customer that should be verified (\"customerDetails\")\n","type":"object","required":["type","customer"],"properties":{"type":{"type":"string","description":"Discriminator field. Please see the discriminator mapping for the VerificationDetails schema.\n","example":"trustly"},"customer":{"$ref":"#/components/schemas/NetellerVerificationCustomer"},"customerDetails":{"$ref":"#/components/schemas/NetellerVerificationCustomerDetails"}}},"NetellerVerificationCustomer":{"title":"Neteller customer for verification","description":"Details used to identify a customer for verification. One of email or accountId must be provided.\n","type":"object","minProperties":1,"properties":{"email":{"type":"string","description":"Customer's email.","format":"email","example":"a.b@example.com"},"accountId":{"type":"string","description":"Customer's account ID.","maxLength":15,"example":"123456"}}},"NetellerVerificationCustomerDetails":{"title":"Neteller customer records to verify","description":"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\").\n","type":"object","properties":{"firstName":{"type":"string","description":"Customer's first name.","maxLength":255,"example":"John"},"lastName":{"type":"string","description":"Customer's last name.","maxLength":255,"example":"Smith"},"dateOfBirth":{"type":"string","format":"date","description":"Customer's date of birth.","example":"2000-01-01"},"houseNumber":{"type":"string","description":"Customer's house number.","example":"101"},"country":{"$ref":"#/components/schemas/CountryIsoCode"},"postcode":{"maxLength":255,"type":"string","description":"Customer's postcode.","example":"BH23 6AA"}}},"SkrillVerificationDetails":{"description":"Contains information to identify the customer (\"customer\") and details about the customer that should be verified (\"customerDetails\")\n","type":"object","required":["type","customer"],"properties":{"type":{"type":"string","description":"Discriminator field. Please see the discriminator mapping for the VerificationDetails schema.\n","example":"skrill"},"customer":{"$ref":"#/components/schemas/SkrillVerificationCustomer"},"customerDetails":{"$ref":"#/components/schemas/SkrillVerificationCustomerDetails"}}},"SkrillVerificationCustomer":{"title":"Skrill customer for verification","description":"Details used to identify a customer for verification. One of email or accountId must be provided.\n","type":"object","minProperties":1,"properties":{"email":{"type":"string","description":"Customer's email.","format":"email","example":"a.b@example.com"},"customerId":{"type":"string","description":"Customer's account ID.","maxLength":15,"example":"123456"}}},"SkrillVerificationCustomerDetails":{"title":"Skrill customer records to verify","description":"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\").\n","type":"object","properties":{"firstName":{"type":"string","description":"Customer's first name.","maxLength":255,"example":"John"},"lastName":{"type":"string","description":"Customer's last name.","maxLength":255,"example":"Smith"},"dateOfBirth":{"type":"string","format":"date","description":"Customer's date of birth.","example":"2000-01-01"},"houseNumber":{"type":"string","description":"Customer's house number.","example":"101"},"country":{"$ref":"#/components/schemas/AlphaThreeCountryIsoCode"},"postcode":{"maxLength":255,"type":"string","description":"Customer's postcode.","example":"BH23 6AA"}}},"OttVerificationDetails":{"description":"Contains information to identify the voucher to be verified.\n","type":"object","required":["type","voucherPin"],"properties":{"type":{"type":"string","description":"Discriminator field. Please see the discriminator mapping for the VerificationDetails schema.\n","example":"ottVoucher"},"voucherPin":{"type":"string","description":"The PIN of the Voucher to be checked.","maxLength":20,"pattern":"^[0-9]*$","example":"123456789012"}}},"BluVoucherVerificationDetails":{"description":"Contains information to identify the voucher to be verified.\n","type":"object","required":["type","pin"],"properties":{"type":{"type":"string","description":"Discriminator field. Please see the discriminator mapping for the VerificationDetails schema.\n","example":"bluVoucher"},"pin":{"type":"string","description":"The PIN of the Voucher to be checked.","minLength":9,"maxLength":16,"pattern":"^[0-9]+$","example":"123456789012"}}},"VerificationResponse":{"description":"Response from a verification request.","type":"object","required":["id","verificationId","psp","code","message","verificationResult"],"properties":{"id":{"$ref":"#/components/schemas/RequestId"},"verificationId":{"type":"string","description":"The ID of the verification record.\n","example":"9450a0b0-c62a-457f-9eb0-39c36d883557"},"psp":{"$ref":"#/components/schemas/PspName"},"code":{"$ref":"#/components/schemas/Code"},"message":{"$ref":"#/components/schemas/Message"},"verificationResult":{"$ref":"#/components/schemas/VerificationResult"}}},"VerificationResult":{"oneOf":[{"$ref":"#/components/schemas/TrustlyVerificationResult"},{"$ref":"#/components/schemas/NetellerVerificationResult"},{"$ref":"#/components/schemas/SkrillVerificationResult"},{"$ref":"#/components/schemas/OttVerificationResult"},{"$ref":"#/components/schemas/BluVoucherVerificationResult"}],"discriminator":{"propertyName":"type","mapping":{"trustly":"#/components/schemas/TrustlyVerificationResult","neteller":"#/components/schemas/NetellerVerificationResult","skrill":"#/components/schemas/SkrillVerificationResult","ottVoucher":"#/components/schemas/OttVerificationResult","bluVoucher":"#/components/schemas/BluVoucherVerificationResult"}}},"TrustlyVerificationResult":{"description":"Result of payment instrument verification with Trustly.\n\nUser will be redirected to log into their bank account using Trustly.\n","type":"object","required":["type","actionRequired","action"],"properties":{"type":{"type":"string","description":"Discriminator field. Please see the discriminator mapping for the VerificationResult schema.\n","example":"trustly"},"actionRequired":{"type":"boolean","default":false,"description":"Boolean value indicating whether further action should be taken after the response is received.\n","example":true},"action":{"$ref":"#/components/schemas/Action"}}},"NetellerVerificationResult":{"description":"Response from verification request to Neteller.","type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Discriminator field. Please see the discriminator mapping for the VerificationResult schema.\n","example":"neteller"},"accountId":{"type":"string","description":"Customer's Neteller account ID","example":"abc123"},"verificationLevel":{"$ref":"#/components/schemas/NetellerVerificationLevel"},"customerDetails":{"$ref":"#/components/schemas/NetellerCustomerDetails"}}},"NetellerVerificationLevel":{"title":"Neteller verification level","description":"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>.\nThe Neteller verification level indicates whether the Neteller member has been verified, and whether they have a registered payment instrument.\n","type":"object","properties":{"verifiedCustomerIdentity":{"description":"Flag indicating whether Neteller has verified the member","type":"boolean"},"hasRegisteredPaymentInstrument":{"description":"Flag indicating whether the customer has a registered payment instrument","type":"boolean"}}},"NetellerCustomerDetails":{"title":"Neteller customer records verification results","description":"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).\n","type":"object","properties":{"firstName":{"$ref":"#/components/schemas/ResultMatch"},"lastName":{"$ref":"#/components/schemas/ResultMatch"},"dateOfBirth":{"$ref":"#/components/schemas/ResultMatch"},"houseNumber":{"$ref":"#/components/schemas/ResultMatch"},"country":{"$ref":"#/components/schemas/ResultMatch"},"postcode":{"$ref":"#/components/schemas/ResultMatch"}}},"SkrillVerificationResult":{"description":"Response from verification request to Skrill.","type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Discriminator field. Please see the discriminator mapping for the VerificationResult schema.\n","example":"skrill"},"customerId":{"type":"string","description":"Customer's Skrill account ID","example":"abc123"},"verificationLevel":{"$ref":"#/components/schemas/SkrillVerificationLevel"},"customerDetails":{"$ref":"#/components/schemas/SkrillCustomerDetails"}}},"SkrillVerificationLevel":{"title":"Skrill verification level","description":"Describes the verification level of the customer reported by Skrill.\nThe Skrill verification level indicates whether the Skrill customer has been verified, and whether they have a registered payment instrument.\n","type":"object","properties":{"verifiedCustomerIdentity":{"description":"Flag indicating whether Skrill has verified the customer","type":"boolean"},"hasRegisteredPaymentInstrument":{"description":"Flag indicating whether the customer has a registered payment instrument","type":"boolean"}}},"SkrillCustomerDetails":{"title":"Skrill customer records verification results","description":"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).\nFor Skrill, if the email is provided in the request then a match field for it will be provided in the response.\n","type":"object","properties":{"email":{"$ref":"#/components/schemas/ResultMatch"},"firstName":{"$ref":"#/components/schemas/ResultMatch"},"lastName":{"$ref":"#/components/schemas/ResultMatch"},"dateOfBirth":{"$ref":"#/components/schemas/ResultMatch"},"houseNumber":{"$ref":"#/components/schemas/ResultMatch"},"country":{"$ref":"#/components/schemas/ResultMatch"},"postcode":{"$ref":"#/components/schemas/ResultMatch"}}},"OttVerificationResult":{"description":"Result of voucher verification with OTT.\n","type":"object","required":["type","success","message"],"properties":{"type":{"type":"string","description":"Discriminator field. Please see the discriminator mapping for the VerificationResult schema.\n","example":"ottVoucher"},"success":{"type":"boolean","description":"Boolean value indicating whether the voucher was successfully verified.","example":true},"message":{"type":"string","description":"Message describing outcome of voucher verification query.\n","example":"Voucher Valid"},"serial":{"type":"string","description":"Serial number of voucher.\n","example":"300001095954"},"value":{"$ref":"#/components/schemas/VoucherAmount"},"errorCode":{"type":"string","description":"Identifier code of error that occurred when verifying voucher.\n","example":"7"}}},"BluVoucherVerificationResult":{"description":"Result of voucher verification with BluVoucher.\n","type":"object","required":["type","status"],"properties":{"type":{"type":"string","description":"Discriminator field. Please see the discriminator mapping for the VerificationResult schema.\n","example":"bluVoucher"},"status":{"type":"string","description":"Message describing outcome of voucher verification query.\n","example":"ACTIVE"},"serial":{"type":"string","minLength":16,"maxLength":16,"description":"Serial number of voucher.\n","example":"BL016C1E46AD2768"},"amount":{"$ref":"#/components/schemas/VoucherAmount"}}},"Action":{"description":"An object that contains information required to perform an action after the response is received.\n","oneOf":[{"$ref":"#/components/schemas/RedirectAction"}],"discriminator":{"propertyName":"type","mapping":{"REDIRECT":"#/components/schemas/RedirectAction"}}},"VoucherAmount":{"type":"integer","description":"Monetary value of voucher in South African Rand cents. This means that a value of 10000 is equal to R100.00.\n","example":3000},"RedirectAction":{"title":"Redirect Action","description":"Browser redirect action consistent with [BR-DGE Redirect Payment Flow](https://secure.comcarde.com/docs/#redirect-payment-flow).\n","properties":{"type":{"type":"string","description":"Discriminator field. Please see the discriminator mapping for the Action schema."},"data":{"type":"object","properties":{"url":{"type":"string","description":"URL to redirect your customer towards."}}}}},"CountryIsoCode":{"type":"string","description":"ISO 3166 Alpha-2 Country code","example":"GB","minLength":2,"maxLength":2,"pattern":"^[A-Z]+$"},"AlphaThreeCountryIsoCode":{"type":"string","description":"ISO-3166-1 Alpha-3 Country Code","example":"GBR","minLength":3,"maxLength":3,"pattern":"^[A-Z]{3}$"},"LocaleIsoCodes":{"type":"string","description":"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.\n","example":"en_GB","minLength":5,"maxLength":5,"pattern":"^[a-z]{2}_[A-Z]{2}"},"Message":{"type":"string","description":"A description of the outcome of the request."},"RequestId":{"type":"string","description":"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.\n","example":"a7f45953-1e8b-4f33-87b0-3293f4f6972f"},"ResultMatch":{"description":"Indicates whether a field has matched or not when verifying.\n","type":"string","enum":["MATCH","NO_MATCH"]},"CardholderData":{"description":"Payment instrument that is a credit or debit card.","allOf":[{"$ref":"#/components/schemas/PaymentInstrumentRequestBase"},{"type":"object","required":["expiryDate","pan"],"properties":{"address":{"type":"object","properties":{"buildingNumberOrName":{"$ref":"#/components/schemas/BuildingNumberOrName"},"address1":{"$ref":"#/components/schemas/AddressLineOne"},"address2":{"$ref":"#/components/schemas/AddressLineTwo"},"address3":{"$ref":"#/components/schemas/AddressLineThree"},"town":{"$ref":"#/components/schemas/Town"},"county":{"$ref":"#/components/schemas/County"},"postcode":{"$ref":"#/components/schemas/Postcode"},"country":{"$ref":"#/components/schemas/CountryIsoCode"},"countrySubdivisionCode":{"$ref":"#/components/schemas/CountrySubdivisionCode"}}},"nameOnCard":{"maxLength":255,"minLength":1,"pattern":"^([\\p{L}\\p{M} 0-9'\\[\\]()@?!\\-/.,_&*:;+=`]*)$","type":"string","description":"Name on the credit or debit card. This may be required by the payment services provider (PSP).","example":"John F Doe"},"pan":{"type":"string","description":"PAN of the credit or debit card.","example":"4444 3333 2222 1111"},"expiryDate":{"$ref":"#/components/schemas/CardExpiryDate"},"startDate":{"type":"string","description":"Start date of the credit or debit card.","example":"01-00"},"issueNumber":{"maximum":9,"minimum":1,"type":"integer","description":"Issue number of the credit or debit card.","format":"int32","example":1},"cv2":{"type":"string","pattern":"[0-9]*$"},"pspTokens":{"type":"array","uniqueItems":true,"description":"A set of PSP tokens linked to this Card-on-File","items":{"$ref":"#/components/schemas/PspToken"}},"storedCredentialIndicator":{"type":"string","description":"Indicates whether a card has been stored externally to our system,\nand if it has been used previously.\n\nUsed for the situation where you have previously used and stored the card outside\nour system.  This will override the value sent to the card networks, (e.g. Visa/Mastercard)\non the *first* time the card is used within our systems.\n\nIf your systems don't ever store card details *this field should be ignored*.\n\nWhen sent to us this affects the first time the tokenized card is used within our systems.\nIn the case of a card that you never want tokenized with us, but is tokenized externally,\nwe will require the correct value on every call.\n\nThis is related to [Credential on file mandate compliance](https://docs.br-dge.io/docs/vault#credentials-on-file-mandate-compliance).\n\n## Possible Values\n\n* UNUSED - The card has not been previously used in a transaction,\n  this is used as a hint to the networks that the card will be stored from\n  this point onward.\n* USED - The card has been previously used in a transaction on your systems,\n  this lets the networks know that this is a previously stored card.\n\n*Usage Notes:*\n\n* Not sending a value for this implies that you have not stored the card for reuse\n  within your systems.\n* If your company never stores cards for reuse then there is no need to ever send\n  a value for this field.\n* This field is optional but *MUST* be filled when using a previously/externally stored card.\n","enum":["USED","UNUSED"]},"networkTokenProvisioning":{"$ref":"#/components/schemas/NetworkTokenProvisioning"}}}]},"PspToken":{"type":"object","description":"The PSP token linked to this Card-on-File","properties":{"pspName":{"$ref":"#/components/schemas/PspName"},"token":{"type":"string","description":"The token generated by the PSP"},"pspCardFingerprint":{"type":"string","description":"The PSP fingerprint for the payment instrument (if available)"},"tokenProvisioningStatus":{"$ref":"#/components/schemas/PspTokenProvisioningStatus"},"additionalData":{"$ref":"#/components/schemas/PspTokenAdditionalData"}}},"Tokenized":{"description":"For use by BR-DGE SDK","allOf":[{"$ref":"#/components/schemas/PaymentInstrumentRequestBase"},{"type":"object","required":["token"],"properties":{"token":{"type":"string","maxLength":200,"minLength":1,"description":"The token that represents a payment instrument.","example":"00000000-0000-0000-0000-000001000000"},"cv2":{"type":"string","minLength":3,"maxLength":4,"description":"CV2 of the Tokenized payment instrument.","example":"123"},"updateStoredCredentialIndicator":{"description":"When provided this updates the indicator of whether a card has been stored externally to our system, and if it has been used previously.\n\nUsed for the situation where you have registered a card with our system, but used it externally before returning to our system to make a subsequent payment. This will override the value sent to the card networks, (e.g. Visa/Mastercard) on the *first* time the card is used within our systems.\n\nIf you do not use the card outside of the payment flow in our system before the first payment event, this feature can be ignored, as the standard used functionality will track this.\n\nThis will effectively update the payment instrument's used status before creating the single use token, as such, if an update is needed it is only required on the first payment request in our system.\n\nThis is related to [Credential on file mandate compliance].\n\n## Possible Values\n\n* USED - The card has been previously used in a transaction on your systems, this lets the networks know that this is a previously stored card.\n\n*Usage Notes:*\n\n* Not sending a value for this implies no updates are needed, and so the existing status will be used from\n  our system.\n* The update value is only needed on the first payment on our system, subsequent calls will just result in\n  extra processing.\n* This field is optional but *MUST* be filled when a card has been used outside our system before making a\n  first payment inside our system.\n\n\n[Credential on file mandate compliance]: https://docs.br-dge.io/docs/vault#credentials-on-file-mandate-compliance\n","type":"string","enum":["USED"]}}}]},"TokenizedWithApmData":{"description":"For use by BR-DGE SDK","allOf":[{"$ref":"#/components/schemas/Tokenized"},{"type":"object","required":["apmProvider","data"],"properties":{"apmProvider":{"type":"string","description":"An APM provider ID","enum":["VIS"]},"data":{"$ref":"#/components/schemas/VisaInstallmentsApmData"}}}]},"VisaInstallmentsApmData":{"description":"For use by BR-DGE SDK","type":"object","properties":{"planId":{"type":"string","description":"Visa-generated identifier for an Installment plan"},"termsAndConditionsVersionNumber":{"type":"integer","description":"Version number of the Terms and Conditions accepted by the user"}}},"DigitalWallet":{"description":"For use by BR-DGE SDK","required":["token"],"allOf":[{"$ref":"#/components/schemas/PaymentInstrumentRequestBase"},{"type":"object","properties":{"token":{"type":"string","maxLength":10000,"minLength":1,"pattern":"^([\\p{L}\\p{M} 0-9'\\[\\]()@?!\\-/.,_&*:;+=`]*)$","description":"The content of the digital wallet to store as a Single Use token.\n"},"digitalWalletType":{"type":"string","enum":["APPLE_PAY","GOOGLE_PAY","CLICK_TO_PAY"],"description":"The type of digital wallet, currently supports Apple Pay and Google Pay.\n"}}}]},"ImportPspToken":{"description":"An existing PSP token to be imported into BR-DGE.","allOf":[{"$ref":"#/components/schemas/PaymentInstrumentRequestBase"},{"type":"object","required":["token","pspId"],"properties":{"token":{"type":"string","minLength":1,"pattern":"^([\\p{L}\\p{M} 0-9'\\[\\]()@?!\\-/.,_&*:;+=`]*)$","description":"The token that represents a payment instrument.","example":"7030000000012345678"},"pspId":{"type":"string","maxLength":11,"minLength":1,"pattern":"^[A-Z0-9_]*$","description":"The PSP associated with the token to be imported.","example":"CYBER"}}}]},"CustomMetadata":{"title":"Custom Metadata for the payment instrument.","description":"Optional custom metadata string fields for the payment instrument.\n\nUp to 25 fields can be included with the following constraints:\n\nThe field name may not be empty or have leading or trailing whitespace, and can consist of upper and lowercase letters, numbers, space, underscore \"_\", hyphen \"-\" and single quote \"'\".\n\nMaximum string length of either field name and field value is 200 chars.\n","type":"object","additionalProperties":{"type":"string","maxLength":200,"nullable":false},"maxProperties":25,"example":{"accountAge":"2","transactionType":"Other"}},"SingleUsePaymentInstrumentRequest":{"type":"object","oneOf":[{"$ref":"#/components/schemas/CardholderData"},{"$ref":"#/components/schemas/DigitalWallet"},{"$ref":"#/components/schemas/Tokenized"},{"$ref":"#/components/schemas/TokenizedWithApmData"}],"discriminator":{"propertyName":"type","mapping":{"card":"#/components/schemas/CardholderData","digitalWallet":"#/components/schemas/DigitalWallet","tokenized":"#/components/schemas/Tokenized","tokenizedWithApmData":"#/components/schemas/TokenizedWithApmData"}}},"TrustlyRegistrationRequest":{"type":"object","required":["type","customer","bank"],"properties":{"type":{"type":"string","description":"Discriminator field. Please see the discriminator mapping for the RegistrationRequest schema.","example":"trustly"},"customer":{"$ref":"#/components/schemas/TrustlyRegistrationCustomerDetails"},"bank":{"$ref":"#/components/schemas/TrustlyRegistrationBankDetails"}}},"TrustlyRegistrationCustomerDetails":{"description":"The details of the customer who this account is being created for","type":"object","required":["customerId","firstName","lastName"],"properties":{"customerId":{"type":"string","description":"Customer's customer ID.","maxLength":100,"example":"def456"},"firstName":{"type":"string","example":"John","description":"Customer's first name.","maxLength":255},"lastName":{"type":"string","example":"Smith","description":"Customer's last name.","maxLength":255},"country":{"$ref":"#/components/schemas/CountryIsoCode"},"postcode":{"type":"string","description":"The post code of the customer's home address.","example":"EH12 5JB"},"town":{"type":"string","description":"The town of the customer's home address.","example":"Edinburgh"},"addressLine1":{"type":"string","description":"The first line of the customer's home address.","example":"Stanhope House"},"addressLine2":{"type":"string","description":"The second line of the customer's home address.","example":"Address Line 2"},"phoneNumber":{"maxLength":255,"pattern":"^$|^[+]?[(0-9][0-9 ()-]*[0-9]$","type":"string","description":"Customer's telephone number.\nPlease use only numbers, spaces and an optional leading +.","example":"+44 123 1110000"},"dateOfBirth":{"type":"string","format":"date","description":"Customer's date of birth. ISO Format (YYYY-MM-DD)","example":"2000-01-01"},"documentId":{"maxLength":255,"type":"string","description":"Customer's social security number / personal number / birth number / etc.\n\nUsed by some countries (currently only Sweden) to perform additional verification when logging into a bank account.\n","example":"ABC-123456"},"email":{"type":"string","example":"a.b@example.com","description":"Customer's email.","format":"email"}}},"TrustlyRegistrationBankDetails":{"description":"The details of the bank account being registered.","type":"object","required":["clearingHouse","accountNumber"],"properties":{"bankNumber":{"type":"string","description":"The bank number identifying the customer's bank.\n","example":"6112"},"clearingHouse":{"type":"string","description":"The clearing house of the end-user's bank account. Typically the name of a country in uppercase letters.\n","example":"SWEDEN"},"accountNumber":{"type":"string","description":"The account number identifying the customer's account in the bank.\n","example":"123123"}}},"PaymentInstrumentRequestBase":{"type":"object","required":["type"],"properties":{"type":{"type":"string","example":"card","description":"Discriminator field. Please see the discriminator mapping for the PaymentInstrumentRequest schema.\n"},"customerId":{"type":"string","maxLength":100,"minLength":1,"pattern":"^([\\p{L}\\p{M} 0-9'\\[\\]()@?!\\-/.,_&*:;+=`]*)$","description":"Identifier for the merchant's customer who owns the payment instrument to be tokenized."},"customMetadata":{"$ref":"#/components/schemas/CustomMetadata"}}},"PaymentInstrumentRequest":{"type":"object","oneOf":[{"$ref":"#/components/schemas/CardholderData"},{"$ref":"#/components/schemas/ImportPspToken"}],"discriminator":{"propertyName":"type","mapping":{"card":"#/components/schemas/CardholderData","importPspToken":"#/components/schemas/ImportPspToken"}}},"NetworkTokenProvisioning":{"type":"string","default":"async","description":"Whether to synchronously or asynchronously enroll and\nprovision a network token and optionally include the\ncryptogram in the response when creating a card-on-file.\n\nIf unspecified and, if the retail channel is enabled for network\ntokenization, the `async` behaviour will be used by default.\n\nThis field accepts the following values:\n - `async`\n   - Asynchronously enrolls a card, a network token card\n     number will be available once a cryptogram is provisioned.\n - `networkToken`\n   - Synchronously enrolls a card and provisions a network token\n     when creating the card-on-file.\n - `networkTokenWithCryptogram`\n   - Synchronously enrolls a card and provisions a network token\n     when creating the card-on-file, providing the resulting\n     cryptogram in the same response.\n","enum":["async","networkToken","networkTokenWithCryptogram"]},"RegistrationRequest":{"description":"Schema that contains customer details bank account details to be registered\nat an Open Banking provider.\n","oneOf":[{"$ref":"#/components/schemas/TrustlyRegistrationRequest"}],"discriminator":{"propertyName":"type","mapping":{"trustly":"#/components/schemas/TrustlyRegistrationRequest"}}},"RegistrationResponse":{"description":"Successfully registered a new payment instrument account","oneOf":[{"$ref":"#/components/schemas/TrustlySuccessfulRegistrationResult"}],"discriminator":{"propertyName":"type","mapping":{"trustly":"#/components/schemas/TrustlySuccessfulRegistrationResult"}}},"BaseSuccessfulRegistrationResponse":{"type":"object","required":["code","message","id","paymentInstrumentRegistrationId"],"properties":{"code":{"$ref":"#/components/schemas/Code"},"message":{"$ref":"#/components/schemas/Message"},"id":{"$ref":"#/components/schemas/RequestId"},"paymentInstrumentRegistrationId":{"type":"string","description":"The ID of the registration record.\n","example":"9450a0b0-c62a-457f-9eb0-39c36d883557"}}},"TrustlySuccessfulRegistrationResult":{"type":"object","allOf":[{"$ref":"#/components/schemas/BaseSuccessfulRegistrationResponse"},{"type":"object","required":["type","accountId","clearingHouse","bank","descriptor"],"properties":{"type":{"type":"string","description":"Discriminator field. Please see the discriminator mapping for the RegistrationResponse schema.","example":"trustly"},"accountId":{"type":"string","description":"The returned account ID from the trustly registration request"},"clearingHouse":{"type":"string","description":"The clearing house of the end-user's bank account. Typically the name of a country in uppercase letters.\n","example":"SWEDEN"},"bank":{"type":"string","description":"The name of the bank which is tied to the account"},"descriptor":{"type":"string","description":"A descriptor for this account that is safe to show to the end user."}}}]},"TokenResponse":{"description":"Information about a newly tokenized Payment Instrument","allOf":[{"type":"object","required":["id","token"],"properties":{"id":{"type":"string","description":"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.\n"},"token":{"type":"string","description":"Identifier for the tokenized Payment Instrument"}}},{"$ref":"#/components/schemas/ObfuscatedCard"}]},"VerifyRequest":{"type":"object","description":"Request to verify details for an existing Card-on-File.","required":["verify"],"properties":{"verify":{"type":"object","required":["accountName"],"properties":{"accountName":{"$ref":"#/components/schemas/VerifyAccountName"}}}}},"VerifyAccountName":{"type":"object","description":"The account name to verify against the issuer-held account name for the payment instrument.\n","required":["firstName","lastName"],"properties":{"firstName":{"$ref":"#/components/schemas/FirstName"},"lastName":{"$ref":"#/components/schemas/LastName"}}},"VerifyResponse":{"type":"object","description":"Response to verify details for an existing Card-on-File.","required":["scheme","accountNameResult"],"properties":{"scheme":{"$ref":"#/components/schemas/VerifyScheme"},"accountNameResult":{"$ref":"#/components/schemas/VerifyAccountNameResult"}}},"VerifyScheme":{"type":"string","description":"Card scheme used to perform verification.","enum":["VISA"],"example":"VISA"},"VerifyAccountNameVerificationResult":{"type":"string","description":"Overall result of the account name verification check.\n\nMATCH = The supplied account name matched the issuer-held account name overall.\n\nPARTIAL_MATCH = The supplied account name has some meaningful similarity to the issuer-held account name, but there is a discrepancy.\n\nNO_MATCH = The supplied account name did not match the issuer-held account name overall.\n","enum":["MATCH","PARTIAL_MATCH","NO_MATCH"],"example":"MATCH"},"VerifyAccountNameResult":{"type":"object","description":"The verification result for the full account name and any name components returned by the scheme. Component-level results may be omitted when the scheme does not provide them.\n","required":["overall"],"properties":{"overall":{"$ref":"#/components/schemas/VerifyAccountNameVerificationResult"},"firstName":{"$ref":"#/components/schemas/VerifyNameMatchResult"},"lastName":{"$ref":"#/components/schemas/VerifyNameMatchResult"}}},"VerifyNameMatchResult":{"type":"string","description":"Indicates whether a name value matched the issuer-held account name.\n\nMATCH = The supplied name component matched the corresponding issuer-held account-name data.\n\nPARTIAL_MATCH = The supplied name component partially matched the corresponding issuer-held account-name data. This could be due to abbreviation, truncation, spelling variation, compound names, initials, or other scheme/issuer matching rules.\n\nNO_MATCH = The supplied name component did not match the corresponding issuer-held account-name data.\n","enum":["MATCH","PARTIAL_MATCH","NO_MATCH"],"example":"MATCH"},"PspName":{"description":"Name of Payment Service Provider (PSPs).\n\nPlease see [PSP Integrations] for a list of possible PSPs.\n\n[PSP Integrations]: https://docs.br-dge.io/docs/psp-integrations\n","type":"string","pattern":"^[A-Za-z0-9\\- ().]*$","maxLength":50,"example":"Checkout.com"},"PspTokenAdditionalData":{"type":"object","description":"Additional fields which may be returned for a subset of PSPs when provisioning a PSP token.\n","properties":{"customerToken":{"type":"string","description":"A token which represents customer information stored with the PSP. This field is only returned\nif a `customerId` was provided when provisioning the BR-DGE Card-on-File.\n","example":"20C17E0D04D14D26E063A2598D0A4024"},"instrumentIdentifierToken":{"type":"string","description":"A token which represents a card number stored with the PSP.","example":"7010000000016241111"}}},"NetworkTokenIssuer":{"type":"string","enum":["MASTERCARD","VISA"],"description":"The issuing card network of the Network Token","example":"MASTERCARD"},"NetworkTokenStatus":{"type":"string","description":"The status of the Network Token.\n\n- `ACTIVE`: Can be used to provision Cryptograms for payments.\n- `DISABLED`: This can be due to card suspensions, fraud, or other\n  temporary hold reasons and may be re-activated at a later date.\n\n- `DELETED`: The token is no longer valid and cannot be re-activated.\n  This can be due to token expirations, lost card or other\n  non-temporary reasons.\n","enum":["ACTIVE","DISABLED","DELETED"],"example":"ACTIVE"},"Code":{"type":"string","description":"[Response Code](https://docs.br-dge.io/docs/response-codes) signifying the outcome of the request.","example":"1000"},"BuildingNumberOrName":{"description":"The building number or name.\n\nProviding a building number or name separate from `address1` is recommended as\nsome payment service provider (PSP) APIs have a separate field.\n\nIf you are unsure whether you need to collect this data, please raise a\nticket with support on the BR-DGE Support Portal at\n<https://docs.br-dge.io/docs/support#contact-support>.\n\nPlease use only letters, spaces and these symbols: `-'.`","type":"string","maxLength":100,"example":"10a"},"AddressLineOne":{"description":"First line of the address.\n\nPlease use only letters, numbers, spaces and these symbols: `'[]()@?!\\-/.,_&*:;+=`","type":"string","minLength":1,"maxLength":255,"example":"Flat 1"},"AddressLineTwo":{"description":"Second line of the address.\n\nPlease use only letters, numbers, spaces and these symbols: `'[]()@?!\\-/.,_&*:;+=`","type":"string","maxLength":255,"example":"Victoria House"},"AddressLineThree":{"description":"Third line of the address.\n\nPlease use only letters, numbers, spaces and these symbols: `'[]()@?!\\-/.,_&*:;+=`","type":"string","maxLength":255,"example":"15 Apple Street"},"Town":{"description":"Town of the address.\n\nPlease use only letters, numbers, spaces and these symbols: `'[]()@?!\\-/.,_&*:;+=`","type":"string","minLength":1,"maxLength":255,"example":"Edinburgh"},"County":{"description":"County of the address.\n\nPlease use only letters, numbers, spaces and these symbols: `'[]()@?!\\-/.,_&*:;+=`","type":"string","maxLength":255,"example":"Lothian"},"Postcode":{"description":"Postcode of the address.\n\nPlease use at least one and no more than 9 alphanumeric characters (excl. spaces).","type":"string","maxLength":255,"example":"BH23 6AA"},"CountrySubdivisionCode":{"description":"ISO 3166-2 Country subdivision code.\n\nFor an ISO 3166-2 code like `GB-SCT` you should only provide `SCT`.","type":"string","minLength":1,"maxLength":3,"pattern":"^[A-Z0-9]+$","example":"WY"},"BaseCallback":{"type":"object","required":["type","merchantAccountId","code","message","hashCode"],"properties":{"type":{"type":"string"},"merchantAccountId":{"type":"string","description":"Identifier of the merchant account associated with the payment\n","example":"00000000-0000-0000-0000-000000000000"},"code":{"$ref":"#/components/schemas/Code"},"message":{"type":"string","description":"A description of the outcome"},"hashCode":{"type":"string","description":"Hash Code of select fields of the payload, used for authenticity checks.\n\nThe value in this field is a hashCode that can be used to verify that key fields in the notification message payload has not been tampered with and also to confirm that it has been sent from the BR-DGE platform.\n\nDetails can be found in [Notification Hashing] documentation.\n\n[Notification Hashing]: https://docs.br-dge.io/docs/notification-hashing\n"}}},"TokenCallback":{"allOf":[{"$ref":"#/components/schemas/BaseCallback"},{"type":"object","required":["token"],"properties":{"token":{"type":"string","description":"The token for the associated BR-DGE Card-on-File."},"customerId":{"type":"string","description":"The ID of the customer the token is attached to."}}}]},"BasePspInfo":{"type":"object","required":["name"],"properties":{"name":{"$ref":"#/components/schemas/PspName"},"message":{"type":"string","description":"Original message provided by PSP if applicable."}}},"PspTokenInfo":{"allOf":[{"$ref":"#/components/schemas/BasePspInfo"},{"type":"object","required":["pspToken"],"properties":{"pspToken":{"type":"string","description":"The token created by the PSP for the payment instrument\n"},"pspCardFingerprint":{"type":"string","description":"The PSP fingerprint for the payment instrument\n"},"additionalData":{"$ref":"#/components/schemas/PspTokenAdditionalData"}}}]},"PspTokenStatus":{"type":"string","description":"The status of the psp token.\n- `ACTIVE`: Can be used to make payments with the relevant PSP.\nAdditional statuses may be added in future\n","enum":["ACTIVE"],"example":"ACTIVE"},"PspTokenStatusChangeCallback":{"allOf":[{"$ref":"#/components/schemas/TokenCallback"},{"type":"object","required":["psp"],"properties":{"psp":{"allOf":[{"$ref":"#/components/schemas/PspTokenInfo"},{"type":"object","required":["status"],"properties":{"status":{"$ref":"#/components/schemas/PspTokenStatus"}}}]}}}]},"PspTokenProvisioningFailureCallback":{"allOf":[{"$ref":"#/components/schemas/TokenCallback"},{"type":"object","required":["psp"],"properties":{"psp":{"$ref":"#/components/schemas/PspTokenInfo"}}}]},"NetworkTokenProvisioningFailedCallback":{"allOf":[{"$ref":"#/components/schemas/TokenCallback"},{"type":"object"}]},"NetworkTokenProvisionedCallback":{"allOf":[{"$ref":"#/components/schemas/TokenCallback"},{"type":"object","required":["networkToken"],"properties":{"networkToken":{"type":"object","required":["status","issuer","paymentAccountReference"],"properties":{"token":{"type":"string","description":"The external identifier for the Network Token."},"status":{"$ref":"#/components/schemas/NetworkTokenStatus"},"issuer":{"$ref":"#/components/schemas/NetworkTokenIssuer"},"originalMessage":{"type":"string","description":"The original message received from the external issuer."},"paymentAccountReference":{"type":"string","description":"A non-financial reference assigned to each unique funding PAN (FPAN) that's used to link the payment account of that PAN to affiliated payment tokens. See our [dedicated PAR guide](https://docs.br-dge.io/docs/payment-account-reference) for more info.\n"}}}}}]},"NetworkTokenStatusChangeCallback":{"allOf":[{"$ref":"#/components/schemas/NetworkTokenProvisionedCallback"},{"type":"object"}]},"NetworkTokenMetadataUpdateCallback":{"allOf":[{"$ref":"#/components/schemas/NetworkTokenProvisionedCallback"},{"type":"object","required":["networkToken"],"properties":{"networkToken":{"type":"object","required":["isCardArtUpdated"],"properties":{"isCardArtUpdated":{"type":"boolean","description":"Whether the card art has been updated."}}}}}]},"TrustlyAccountInfo":{"type":"object","required":["type","accountId","bank","town","name","address","postcode","descriptor","clearingHouse"],"properties":{"type":{"type":"string","description":"Type of account","example":"trustly"},"accountId":{"type":"string","description":"The globally unique AccountID the account was assigned in the Trustly system.","example":"2568457620"},"bank":{"type":"string","description":"The name of the bank for this account.","example":"Handelsbanken"},"town":{"type":"string","description":"The town for this account.","example":"Stockholm"},"name":{"type":"string","description":"First and last name of the account holder","example":"Steve Smith"},"address":{"type":"string","description":"The address for this account.","example":"Main street 1, Main street 2"},"postcode":{"type":"string","description":"The postcode for this account.","example":"SE-11253"},"descriptor":{"type":"string","description":"A descriptor for this account that is safe to show to the end user.","example":"**706212"},"lastDigits":{"type":"string","description":"The last digits of the bank account number.","example":"888133"},"clearingHouse":{"type":"string","description":"The clearing house of the end-user's bank account. Typically the name of a country in uppercase letters.","example":"SWEDEN"},"verified":{"type":"boolean","description":"Whether the account is verified or not.","example":true}}},"PaymentInstrumentAccountInfo":{"type":"object","discriminator":{"propertyName":"type","mapping":{"trustly":"#/components/schemas/TrustlyAccountInfo"}},"oneOf":[{"$ref":"#/components/schemas/TrustlyAccountInfo"}]},"PaymentInstrumentCallback":{"allOf":[{"$ref":"#/components/schemas/BaseCallback"},{"type":"object","required":["id","psp","customerId","source","account"],"properties":{"id":{"type":"string","description":"For the `/payment-instrument-verifications` endpoint this value will match\n`verificationId` that the API returns.\n\nFor the `/payment-instrument-registrations` endpoint this value will match\n`paymentInstrumentRegistrationId` that the API returns.\n","example":"b0e8c6b3-e59e-4e8b-83f4-4efaa7320528"},"psp":{"$ref":"#/components/schemas/BasePspInfo"},"customerId":{"type":"string","description":"The `customer.customerId` value supplied in the API request.","example":"123123"},"source":{"type":"string","description":"The event that has triggered this notification.","example":"REGISTRATION","enum":["VERIFICATION","REGISTRATION"]},"account":{"$ref":"#/components/schemas/PaymentInstrumentAccountInfo"}}}]},"FirstName":{"description":"First name of the customer.\n\nPlease use only letters, spaces and these symbols: `-'.`","type":"string","maxLength":255,"example":"John"},"LastName":{"description":"Last name of the customer.\n\nPlease use only letters, spaces and these symbols: `-'.`","type":"string","maxLength":255,"example":"Smith"}},"responses":{"UnauthorizedRequest":{"description":"Unauthorized request."},"EntityNotFound":{"description":"The specified entity was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"entity-not-found":{"$ref":"#/components/examples/entity-not-found"}}}}},"UnknownServerError":{"description":"An internal server error occurred upstream while processing the request.\n\nIf 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.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Internal server error":{"description":"This example shows the [5001 error code]\n\nA full list of possible response codes is available [here].\n\n[5001 error code]: https://docs.br-dge.io/docs/response-codes#5001\n[here]: https://docs.br-dge.io/docs/response-codes\n","value":{"code":"5001","message":"Unexpected error","id":"4fad8e2e06a15656"}}}}}}},"parameters":{"pathToken":{"name":"token","in":"path","required":true,"description":"Multi-use token associated with the Card on File.\n","schema":{"type":"string"},"example":"e8ac1dd4-6f4d-456f-8263-91051bb43cdc"},"queryMultiUseTokenIdList":{"name":"tokens","in":"query","description":"Comma-separated list of multi-use tokens.\n\nThis is useful if you track associations between your customers and Card-on-Files yourselves, but still want to access obfuscated card details on demand\n","schema":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":20,"uniqueItems":true},"explode":false,"examples":{"oneId":{"summary":"Example of querying a single token","value":["72f31b02-d7cf-4050-9026-2ee3d8cc69bb"]},"multipleIds":{"summary":"Example of querying multiple tokens","value":["72f31b02-d7cf-4050-9026-2ee3d8cc69b","188dccfa-a8bc-4447-a81b-8c39422f9d5a","cc07dec1-144f-4d4d-9204-feec0222c9e4"]}}},"querySingleUseTokenIdList":{"name":"tokens","in":"query","description":"Comma-separated set of single-use tokens.","required":true,"schema":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":20,"uniqueItems":true},"explode":false,"examples":{"oneId":{"summary":"Example of querying a single token","value":["72f31b02-d7cf-4050-9026-2ee3d8cc69bb"]},"multipleIds":{"summary":"Example of querying multiple tokens","value":["72f31b02-d7cf-4050-9026-2ee3d8cc69b","188dccfa-a8bc-4447-a81b-8c39422f9d5a","cc07dec1-144f-4d4d-9204-feec0222c9e4"]}}},"queryShowPanLeadingChars":{"name":"showPanLeadingChars","in":"query","description":"The leading six digits of a cards PAN are the issuer identification number (IIN) sometimes referred to as the \"bank identification number (BIN)\" which may be required for some use cases.\n\nBy default this information is not provided, but you can opt-in by setting this flag to true if you specifically need it.\n\nE.g. `1234 56## #### 7890` instead of the default `#### #### #### 7890`\n","schema":{"type":"boolean"}}},"securitySchemes":{"ServerApiKey":{"type":"http","scheme":"bearer","description":"Operations intended for use by Merchant servers.\n\n**IMPORTANT** This key allows you to perform sensitive operations such as authorizing payments and refunds.\n\n**Production Server API keys must not be accessible outside your organization.**\n"},"ClientApiKey":{"type":"http","scheme":"bearer","description":"Separate Client API keys will be provided for use in client applications to support certain features that need to happen in untrusted client environments.\n\nClient API keys provide restricted permissions to ensure they cannot be misused.\n"}},"examples":{"entity-not-found":{"summary":"Entity Not Found Error","description":"This example shows the [4040 error code].\n\nThis occurs when an entity was not found for a given ID, the entity should be clear from context.\n\nA full list of possible response codes is available [here].\n\n[4040 error code]: https://docs.br-dge.io/docs/response-codes#4040\n[here]: https://docs.br-dge.io/docs/response-codes\n","value":{"code":"4040","message":"Entity not found","id":"4fad8e2e06a15656"}},"trustly-verification-request":{"summary":"A request to verify a Trustly customer.","value":{"psp":"Trustly","verificationDetails":{"type":"trustly","firstName":"John","lastName":"Smith","customerId":"def456","country":"GB","locale":"en_GB","email":"john.smith@example.com","ipAddress":"123.100.100.200","documentId":"ABC-123456","phoneNumber":"+44 123 1110000","dateOfBirth":"2000-01-01"}}},"trustly-verification-response":{"summary":"A response to a Trustly customer verification request.","value":{"id":"4fad8e6j06a26656","verificationId":"9450a0b0-c62a-457f-9eb0-39c36d883557","psp":"Trustly","code":"2101","message":"Pending: The operation has been accepted for processing and the outcome is not yet known\n","verificationResult":{"type":"trustly","actionRequired":true,"action":{"type":"REDIRECT","data":{"url":"https://checkout.test.trustly.com/checkout?OrderID=14402625813&SessionID=34fd71c8-d2bf-42d2-865e-02f22b946b8d\n"}}}}},"neteller-verification-request":{"summary":"A request to verify a Neteller customer.","value":{"psp":"Paysafe","verificationDetails":{"type":"neteller","customer":{"email":"john.smith@example.com","accountId":"123456"},"customerDetails":{"firstName":"John","lastName":"Smith","dateOfBirth":"2000-01-01","houseNumber":"101","country":"UK","postcode":"A111AA"}}}},"neteller-verification-response":{"summary":"A response to a Neteller customer verification request.","value":{"id":"687e304794fbc72b1b53c9e0ae8dc027","verificationId":"44f92986-2ff6-42e2-afec-6ea85b4658b2","psp":"Paysafe","code":"1004","message":"Request succeeded","verificationResult":{"type":"neteller","accountId":"123456","verificationLevel":{"verifiedCustomerIdentity":true,"hasRegisteredPaymentInstrument":false},"customerDetails":{"firstName":"MATCH","lastName":"MATCH","dateOfBirth":"NO_MATCH","houseNumber":"NO_MATCH","country":"MATCH","postcode":"NO_MATCH"}}}},"ott-verification-request":{"summary":"A request to verify a OTT voucher.","value":{"psp":"OTT Mobile","verificationDetails":{"type":"ottVoucher","voucherPin":"349524897455"}}},"ott-verification-response":{"summary":"A response to a OTT voucher verification request.","value":{"id":"907e304694fbc72b1b53c9e0fc8dc031","verificationId":"81f39986-2ff6-42e2-afec-6ea85b4658c3","psp":"OTT Mobile","code":"1004","message":"Request succeeded","verificationResult":{"type":"ottVoucher","success":true,"message":"Voucher Valid","serial":"300001095954","value":3000}}},"bluVoucher-verification-request":{"summary":"A request to verify a BluVoucher.","value":{"psp":"BluVoucher","verificationDetails":{"type":"bluVoucher","pin":"349524897455"}}},"bluVoucher-verification-response":{"summary":"A response to a BluVoucher verification request.","value":{"id":"907e304694fbc72b1b53c9e0fc8dc031","verificationId":"81f39986-2ff6-42e2-afec-6ea85b4658c3","psp":"BluVoucher","code":"1004","message":"Request succeeded","verificationResult":{"type":"bluVoucher","status":"ACTIVE","serial":"BL016C1E46AD2768","amount":3000}}}},"callbacks":{"PspTokenStatusChangeEvent":{"https://example.com/BR-DGE/ as defined in your retail channel config":{"post":{"description":"When BR-DGE provisions a PSP token it will generally enter an ACTIVE state indicating that it can be used in transactions with the PSP.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PspTokenStatusChangeCallback"},"example":{"type":"token.psp.statusChange","merchantAccountId":"aadf8010-4df3-49c6-96c0-9f175f60ef36","hashCode":"90c3b3881074021383c8679f0232580f7b96cebacab77517fc4b479e6d977b06","token":"67d6c053-acba-48d5-86c2-0173b2b6d4be","code":"1000","message":"PSP Token provisioned","psp":{"name":"Checkout.com","tokenId":"src_5ormqfczt43efnx7xe2mwod4vq","pspToken":"src_5ormqfczt43efnx7xe2mwod4vq","pspCardFingerprint":"C7BB2667AF7EDEA0745B8C2E8B7B68ED447711B794BA3151B3D91E2A63E40102","status":"ACTIVE"},"id":"c2fcf424-d7df-4b8b-aa98-3a60ce990d7c"}}}},"responses":{"200":{"description":"Your server returns this code if it accepts the callback"}}}}},"PspTokenProvisioningFailedEvent":{"https://example.com/BR-DGE/ as defined in your retail channel config":{"post":{"description":"Information on a failed attempt to provision a Vault Interoperability PSP Token.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PspTokenProvisioningFailureCallback"},"example":{"type":"token.psp.provisioning.failed","merchantAccountId":"aadf8010-4df3-49c6-96c0-9f175f60ef36","hashCode":"90c3b3881074021383c8679f0232580f7b96cebacab77517fc4b479e6d977b06","token":"67d6c053-acba-48d5-86c2-0173b2b6d4be","code":"4207","message":"Invalid expiration date","psp":{"name":"Checkout.com","pspToken":"src_5ormqfczt43efnx7xe2mwod4vq"}}}}},"responses":{"200":{"description":"Your server returns this code if it accepts the callback"}}}}},"NetworkTokenProvisioningFailedEvent":{"https://example.com/BR-DGE/ as defined in your retail channel config":{"post":{"description":"An unsuccessful attempt was made to provision a Network Token for a BR-DGE Card-on-File.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkTokenProvisioningFailedCallback"},"example":{"type":"token.network.provisioning.failed","merchantAccountId":"aadf8010-4df3-49c6-96c0-9f175f60ef36","code":"9006","message":"Notification: Network Token provisioning has failed.","hashCode":"90c3b3881074021383c8679f0232580f7b96cebacab77517fc4b479e6d977b06","token":"c2fcf424-d7df-4b8b-aa98-3a60ce990d7c","customerId":"customer-1234"}}}},"responses":{"200":{"description":"Your server returns this code if it accepts the callback"}}}}},"NetworkTokenStatusChangeEvent":{"https://example.com/BR-DGE/ as defined in your retail channel config":{"post":{"requestBody":{"description":"The Network Token has changed state.","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkTokenStatusChangeCallback"},"examples":{"active-network-token":{"summary":"Network Token entered an active state","description":"Cryptograms can be provisioned for active Network Tokens. BR-DGE will automatically provision Cryptograms for payments made through BR-DGE. or you can provision cryptograms directly via `POST /payment-instruments/{token}/network-token-cryptogram` if this feature is enabled on your retail channel.","value":{"type":"token.network.statusChange","merchantAccountId":"aadf8010-4df3-49c6-96c0-9f175f60ef36","hashCode":"90c3b3881074021383c8679f0232580f7b96cebacab77517fc4b479e6d977b06","token":"c2fcf424-d7df-4b8b-aa98-3a60ce990d7c","customerId":"customer-1234","networkToken":{"token":"WXdfRANqUrBalltlBKaaWHVGrFoWrIHsZAK","status":"ACTIVE","issuer":"VISA","paymentAccountReference":"V00asd62"},"code":"9000","message":"Notification: Network Token has been activated."}},"disabled-network-token":{"summary":"Network Token entered a disabled state","description":"The Network Token has been temporarily disabled. It won't be possible to provision cryptograms until it moves back into an active state.","value":{"type":"token.network.statusChange","merchantAccountId":"aadf8010-4df3-49c6-96c0-9f175f60ef36","hashCode":"90c3b3881074021383c8679f0232580f7b96cebacab77517fc4b479e6d977b06","token":"c2fcf424-d7df-4b8b-aa98-3a60ce990d7c","customerId":"customer-1234","networkToken":{"token":"WXdfRANqUrBalltlBKaaWHVGrFoWrIHsZAK","status":"DISABLED","issuer":"MASTERCARD","paymentAccountReference":"V00asd62"},"code":"9001","message":"Notification: Network Token has been disabled."}},"deleted-network-token":{"summary":"Network Token deleted","description":"The Network Token has been permanently deleted.","value":{"type":"token.network.statusChange","merchantAccountId":"aadf8010-4df3-49c6-96c0-9f175f60ef36","hashCode":"90c3b3881074021383c8679f0232580f7b96cebacab77517fc4b479e6d977b06","token":"c2fcf424-d7df-4b8b-aa98-3a60ce990d7c","customerId":"customer-1234","networkToken":{"token":"WXdfRANqUrBalltlBKaaWHVGrFoWrIHsZAK","status":"DELETED","issuer":"VISA","paymentAccountReference":"V00asd62"},"code":"9002","message":"Notification: Network Token has been deleted."}}}}}},"responses":{"200":{"description":"Your server returns this code if it accepts the callback"}}}}},"NetworkTokenMetadataUpdateEvent":{"https://example.com/BR-DGE/ as defined in your retail channel config":{"post":{"description":"The Network Token has had metadata updated that you can access via `GET /payment-instruments`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkTokenMetadataUpdateCallback"},"example":{"type":"token.network.metadataUpdate","merchantAccountId":"aadf8010-4df3-49c6-96c0-9f175f60ef36","code":"9003","message":"Notification: Network Token metadata has been updated.","hashCode":"90c3b3881074021383c8679f0232580f7b96cebacab77517fc4b479e6d977b06","token":"c2fcf424-d7df-4b8b-aa98-3a60ce990d7c","customerId":"customer-1234","networkToken":{"token":"WXdfRANqUrBalltlBKaaWHVGrFoWrIHsZAK","status":"ACTIVE","issuer":"VISA","isCardArtUpdated":true,"paymentAccountReference":"V00asd62","lastFour":"0149","cardBin":"001234","cardLastFour":"1234","cardExpiryDate":"12-34","cardIssuer":"Bank of BR-DGE"}}}}},"responses":{"200":{"description":"Your server returns this code if it accepts the callback"}}}}},"PaymentInstrumentVerificationEvent":{"https://example.com/BR-DGE/ as defined in your retail channel config":{"post":{"description":"BR-DGE has verified a Payment Instrument.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInstrumentCallback"},"example":{"type":"paymentInstrument.accountSelection","merchantAccountId":"aadf8010-4df3-49c6-96c0-9f175f60ef36","id":"b0e8c6b3-e59e-4e8b-83f4-4efaa7320528","code":"1004","message":"Account has been verified.","psp":{"name":"Trustly","transactionId":"14322692132","message":"Raw response from Open Banking PSP"},"hashCode":"4y2Uz8adaQduo3C8v/39Oo1aQhbdnf/iKHTTGygx60k=","customerId":"123123","source":"VERIFICATION","account":{"accountId":"2568457620","bank":"Handelsbanken","town":"Stockholm","name":"Steve Smith","address":"Main street 1, Main street 2","postcode":"SE-11253","descriptor":"**706212","lastDigits":"888133","clearingHouse":"SWEDEN","verified":true,"type":"trustly"}}}}},"responses":{"200":{"description":"Your server returns this code if it accepts the callback"}}}}},"PaymentInstrumentRegistrationEvent":{"https://example.com/BR-DGE/ as defined in your retail channel config":{"post":{"description":"BR-DGE has registered a Payment Instrument in PSP system.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInstrumentCallback"},"example":{"type":"paymentInstrument.accountRegistration","merchantAccountId":"aadf8010-4df3-49c6-96c0-9f175f60ef36","id":"b0e8c6b3-e59e-4e8b-83f4-4efaa7320528","code":"1004","message":"Account has been registered.","psp":{"name":"Trustly","message":"Raw response from Open Banking PSP"},"hashCode":"4y2Uz8adaQduo3C8v/39Oo1aQhbdnf/iKHTTGygx60k=","customerId":"123123","source":"REGISTRATION","account":{"accountId":"2568457620","bank":"Handelsbanken","town":"Stockholm","name":"Steve Smith","address":"Main street 1, Main street 2","postcode":"SE-11253","descriptor":"**706212","clearingHouse":"SWEDEN","type":"trustly"}}}}},"responses":{"200":{"description":"Your server returns this code if it accepts the callback"}}}}}}}}