---
title: "Custom 3D Secure using an external MPI"
url: "https://docs.adyen.com/online-payments/classic-integrations/classic-api-integration/3d-secure-authentication/3d-secure-1/custom-3d-secure-implementation/custom-3d-secure-using-an-external-mpi"
source_url: "https://docs.adyen.com/online-payments/classic-integrations/classic-api-integration/3d-secure-authentication/3d-secure-1/custom-3d-secure-implementation/custom-3d-secure-using-an-external-mpi.md"
canonical: "https://docs.adyen.com/online-payments/classic-integrations/classic-api-integration/3d-secure-authentication/3d-secure-1/custom-3d-secure-implementation/custom-3d-secure-using-an-external-mpi"
last_modified: "2026-05-23T12:56:19+02:00"
language: "en"
---
# Custom 3D Secure using an external MPI
[View source](/online-payments/classic-integrations/classic-api-integration/3d-secure-authentication/3d-secure-1/custom-3d-secure-implementation/custom-3d-secure-using-an-external-mpi.md)
**Adyen is no longer developing the Classic API integration**
This page is for the Classic API (`/authorise`) integration, which we no longer accept new integrations with.
We strongly recommend migrating to the newer [authorisation-only flow on Checkout API](/online-payments/3d-secure/other-3ds-flows/authorize-mpidata) integration. To use this newer integration, you must also [migrate to the Checkout API](/online-payments/upgrade-your-integration/migrate-to-checkout-api).
## Authorise the payment
Submitting API payments with an external3D MPI is implemented as a SOAP service using the same URL, WSDL, username and password as used for normal API payments.
1. Make an `/authorise` request.
2. For custom 3D secure integrations specifically, pass the following fields:
* * `shopperIP`: IP address of the shopper.
* `browserInfo.userAgent` and `browserInfo.acceptHeader`: The user agent and accept header value of the shopper's browser.
* `mpiData`: A container for the data retrieved from the external 3D MPI.
* `acquirerCode` and `authorisationMid`: These values will be supplied to you by the support department. By default Adyen dynamically routes transactions to multiple acquirers depending on configuration or availability. When using an external MPI the authorisation must be processed over the same acquirer and MID (account at the acquirer) as used by the MPI. Therefore, the `acquirerCode` and `authorisationMid` must be passed in the `additionalData`.
Request:
```xml
USD
1000
text/xml,application/xml,application/xhtml+xml,text/html;q=0.
9,text/plain;q=0.8,image/png,*/*;q=0.5
Mozilla/5.0 (Macintosh; U; Intel Mac OS
X; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
06
2016
Adyen Test
4111111111111111
737
Y
Y
MTIzNDU2Nzg5MDEyMzQ1Njc4OTA=
MDk4NzY1NDMyMTA5ODc2NTQzMjE==
05
5
acquirerCode
TheAcquirerName
authorisationMid
94100010652000161
ExampleMerchant
testReference1234
127.0.0.1
```
Response:
```xml
cvcResult
1 Matches
authCode
35286
avsResult
4 AVS not supported for this card type
avsResultRaw
4
cvcResultRaw
M
refusalReasonRaw
AUTHORISED
acquirerCode
TestPmmAcquirer
acquirerReference
8PQ02GQ2ATP
9935398566023719
Authorised
35286
```