OTP Delegate
The OTP Delegate flow uses a SMS OTP challenge to satisfy the possession SCA factor. Rather than Apata sending the OTP directly to the cardholder, the issuer handles delivery - and optionally verification - keeping phone numbers and OTP logic within the issuer's own system.
Apata generates the OTP and passes it to the issuer via webhook. The issuer delivers it to the cardholder. Apata verifies the code when the cardholder submits it.
Apata triggers the issuer to generate and send the OTP. When the cardholder submits the code, Apata delegates verification to the issuer as well. The issuer's phone numbers and OTP logic are never shared with Apata.
See the SMS OTP challenge method for configuration details. API references: One Time Passcode webhook · Verify One Time Passcode webhook.
Delegate Send Only
Apata generates a 6-digit OTP and includes it in the webhook payload. The issuer delivers it to the cardholder via SMS. Apata handles verification when the cardholder submits the code in the Challenge Interface.
How It Works
- Apata receives an AReq and calls the Card Link endpoint to fetch card details.
- The Risk Profile is evaluated - a challenge is required.
- On receiving the CReq, Apata generates a 6-digit OTP.
- Apata calls the One Time Passcode webhook with the OTP included in the payload.
- The issuer sends the OTP to the cardholder via SMS.
- The cardholder submits the OTP in the Challenge Interface.
- Apata verifies the OTP and completes the RReq/RRes exchange.
Sequence Diagram
sequenceDiagram
autonumber
participant ch as Cardholder
participant 3ds as 3DS Server
participant ds as Directory Server
participant acs as Apata ACS
participant issuer as Issuer
ch->>3ds: Initiate transaction
3ds->>ds: AReq
ds->>acs: AReq
acs->>issuer: Card Link request
issuer->>acs: Card details
acs->>acs: Evaluate Risk Profile - challenge required
acs->>ds: ARes (transStatus C)
ds->>3ds: ARes (transStatus C)
3ds->>acs: CReq
acs->>acs: Generate 6-digit OTP
acs->>issuer: One Time Passcode webhook (includes OTP)
acs->>ch: Render Challenge Interface
issuer->>ch: Deliver OTP via SMS
ch->>acs: Submit OTP
acs->>acs: Verify OTP
acs->>ds: RReq
ds->>3ds: RReq
3ds->>ds: RRes
ds->>acs: RRes
acs->>ch: Redirect to merchant
opt Finalised Event
acs->>issuer: Finalised Event notification
end
Delegate Send and Verify
Apata triggers the issuer to generate and send the OTP. The passcode field is omitted from the webhook payload - the issuer generates its own OTP. When the cardholder submits the code, Apata calls a second webhook to delegate verification to the issuer. Neither the cardholder's phone number nor the OTP is ever shared with Apata.
How It Works
- Apata receives an AReq and calls the Card Link endpoint to fetch card details.
- The Risk Profile is evaluated - a challenge is required.
- On receiving the CReq, Apata calls the One Time Passcode webhook without a passcode, signalling the issuer to generate and send its own OTP.
- The issuer generates and delivers the OTP to the cardholder via SMS.
- The cardholder submits the OTP in the Challenge Interface.
- Apata calls the Verify One Time Passcode webhook, passing the submitted code to the issuer for verification.
- The issuer returns the verification result.
- Apata completes the RReq/RRes exchange.
Sequence Diagram
sequenceDiagram
autonumber
participant ch as Cardholder
participant 3ds as 3DS Server
participant ds as Directory Server
participant acs as Apata ACS
participant issuer as Issuer
ch->>3ds: Initiate transaction
3ds->>ds: AReq
ds->>acs: AReq
acs->>issuer: Card Link request
issuer->>acs: Card details
acs->>acs: Evaluate Risk Profile - challenge required
acs->>ds: ARes (transStatus C)
ds->>3ds: ARes (transStatus C)
3ds->>acs: CReq
acs->>issuer: One Time Passcode webhook (no OTP)
acs->>ch: Render Challenge Interface
issuer->>ch: Deliver OTP via SMS
ch->>acs: Submit OTP
acs->>issuer: Verify One Time Passcode webhook
issuer->>acs: Verification result
acs->>ds: RReq
ds->>3ds: RReq
3ds->>ds: RRes
ds->>acs: RRes
acs->>ch: Redirect to merchant
opt Finalised Event
acs->>issuer: Finalised Event notification
end
The Finalised Event webhook is optional and delivers the full transaction outcome to the issuer once authentication is complete. See the Finalised Event guide for details.
Updated 18 days ago