Plazox
Coming soon
This feature is only available in Spain and limited to certain acquirers.
Plazox is a Spanish banking service that allows customers to instantly split credit card purchases exceeding a configurable amount into 3, 6, 9, or 12 installments directly at the point of sale (POS) or online.
This feature can only be used if your account has been enabled with the respective service.
To utilize Plazox on a terminal that connects to the Gateway using the nexo acquirer protocol (v6), the following steps must be performed.
To retrieve the eligible installment plans from the Gateway, the terminal does not need to include any special indicator in the sale request (using AccptrAuthstnReq). Means, the sale request looks identical to any other request for a sale transaction.
The Gateway sends the sale response (using AccptrAuthstnRspn) to the terminal.
| Field | Presence | Value |
|---|---|---|
RspnToAuthstn/Rspn | M | 'APPR' - Transaction approved, Plazox not offered 'DECL' & RC != Z0 - Transaction declined, Plazox NOT offered 'DECL' and RC = Z0 - Transaction soft declined, Plazox offered |
TxRspn/AuthstnRslt/RspnToAuthstn/AddtlRspnInf | C | Contains the following string: '/InstallmentPlanQueryResult' |
Actn | C | Not present if RspnToAuthstn/Rspn='DECL' & RC != Z0One occurrence per eligible installment plan with: ActnTp='DISP'MsgToPres/MsgDstn='CDSP'MsgToPres/Frmt='TEXT'MsgToPres/MsgCntt= see below JSON structure |
JSON structure:
Subfield of MsgToPres/MsgCntt | Description | Type | Example |
|---|---|---|---|
installmentPlanInquiryId | Gateway internal reference to the plan. Needs to be used in second sale request to chose an installment plan | string, max length 50 | asfff617-c2c7-03f0 |
installmentProvider | Service provider of the installment plans. In case of Plazox the value will be 'Plazox' | string, max length 10 | Plazox |
planDetails.totalAmountIncludingFees | Total amount including all fees for the entire lifecycle of the installments | number, max length 15, decimal places depending on 'Currency' | 300.50 |
planDetails.numberOfInstallments | Number of installments (tenure) | number, fixed length 4 | 0006 |
planDetails.installmentFrequency | Frequency of the installments | enum Possible values: monthly | monthly |
planDetails.annualInterestRate | TAE, Interest rate per year (in percentage) | number, max length 5 | 5.4 |
planDetails.currency | Currency of amounts | ISO 4217 - currency code | EUR |
planDetails.rateAmount | Recurring installment amount | number, max length 15, decimal places depending on 'Currency' | 50.00 |
planDetails.firstRateAmount | Amount of first amount, can be different | number, max length 15, decimal places depending on 'Currency' | 50.50 |
Example:
{
"installmentPlanInquiryId":"asfff617-c2c7-03f0",
"installmentProvider":"Plazox",
"planDetails":{
"totalAmountIncludingFees":300.50,
"numberOfInstallments":"0006",
"installmentFrequency":"monthly",
"annualInterestRate":5.4,
"currency":"EUR",
"rateAmount":50.00,
"firstRateAmount":50.50
}
Terminal displays the available installment plans to the customer.
Terminal sends a second sale request (using AccptrAuthstnReq) to IPG:
- With a reference to the first sale request.
- If a plan was accepted by the customer, the 'installmentPlanInquiryId' must be added to the second sale request in
AddtlTxData. - If no plan was accepted by the customer, 'installmentPlanInquiryId' must not be sent in the second sale request.
- If first leg transaction contained an online PIN block, also the second leg transaction must contain a PIN block. It is possible to use the same encrypted structure (
NcrptdPINBlck) as for the first sale request, so it is not necessary to ask the customer for the PIN again.
| Field | Presence | Value |
|---|---|---|
Tx/TxCaptr | M | true |
Tx/TxId | M | New transaction reference, different to the first sale request |
OrgnlTx | C | Reference to first leg transaction. Contains the Tx/TxId.Alternatively, you can include SaleRefId containing the 'Order ID'. |
SaleRefId | C | Reference to first leg transaction. Alternatively, you can include OrgnlTx containing the Tx/TxId. |
AddtlTxData | C | /installment/Plazox/installmentPlanInquiryId/{id} (value for {id} to be used from the 1st sale response) |
ICCRltdData | M | In case the card was read contactless during 1st sale transaction, then use the same EMV data from 1st sale. In case the card was read in contact mode during 1st sale, then send new EMV data. Card must be read again. |
NcrptdPINBlck | M | Contains the encrypted value of the PIN from new sale request |
Example:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns:AcceptorAuthorisationRequest="urn:iso:std:iso:20022:tech:xsd:caaa.001.001.06" xmlns="urn:iso:std:iso:20022:tech:xsd:caaa.001.001.06" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<AccptrAuthstnReq>
<Hdr>
<MsgFctn>FAUQ</MsgFctn>
<PrtcolVrsn>6.0</PrtcolVrsn>
<XchgId>32</XchgId>
<CreDtTm>2026-04-14T17:54:19.592+04:00</CreDtTm>
<InitgPty>
<Id>xxxx</Id>
<Tp>OPOI</Tp>
</InitgPty>
</Hdr>
<AuthstnReq>
<Envt>
<Acqrr>
<Id>
<Id>1</Id>
</Id>
<ParamsVrsn>20110913123456</ParamsVrsn>
</Acqrr>
<Mrchnt>
<Id>
<Id>760076309876</Id>
</Id>
<CmonNm>Plazox test merchant</CmonNm>
</Mrchnt>
<POI>
<Id>
<Id>12345678</Id>
<Tp>OPOI</Tp>
</Id>
<GrpId>xxxxxxxxxxxx</GrpId>
<Cpblties>
<CardRdngCpblties>PHYS</CardRdngCpblties>
<CardRdngCpblties>MGST</CardRdngCpblties>
<CardRdngCpblties>CICC</CardRdngCpblties>
<CardRdngCpblties>CTLS</CardRdngCpblties>
<CardRdngCpblties>ECTL</CardRdngCpblties>
<CrdhldrVrfctnCpblties>FCPN</CrdhldrVrfctnCpblties>
<CrdhldrVrfctnCpblties>NPIN</CrdhldrVrfctnCpblties>
<CrdhldrVrfctnCpblties>OTHR</CrdhldrVrfctnCpblties>
<CrdhldrVrfctnCpblties>FEPN</CrdhldrVrfctnCpblties>
<ApprvlCdLngth>6</ApprvlCdLngth>
<OnLineCpblties>SMON</OnLineCpblties>
<MsgCpblties>
<Dstn>MDSP</Dstn>
<AvlblFrmt>TEXT</AvlblFrmt>
<NbOfLines>4</NbOfLines>
<LineWidth>32</LineWidth>
<AvlblLang>en</AvlblLang>
<AvlblLang>fr</AvlblLang>
<AvlblLang>nl</AvlblLang>
<AvlblLang>de</AvlblLang>
<AvlblLang>sv</AvlblLang>
<AvlblLang>pl</AvlblLang>
<AvlblLang>cs</AvlblLang>
</MsgCpblties>
<MsgCpblties>
<Dstn>MRCP</Dstn>
<AvlblFrmt>TEXT</AvlblFrmt>
<NbOfLines>4</NbOfLines>
<LineWidth>32</LineWidth>
<AvlblLang>en</AvlblLang>
<AvlblLang>fr</AvlblLang>
<AvlblLang>nl</AvlblLang>
<AvlblLang>de</AvlblLang>
<AvlblLang>sv</AvlblLang>
<AvlblLang>pl</AvlblLang>
<AvlblLang>cs</AvlblLang>
</MsgCpblties>
</Cpblties>
<Cmpnt>
<Tp>TERM</Tp>
<Id>
<PrvdrId>TerminalPAY</PrvdrId>
<Id>NEXO ANDROID PAYMENT APPLICATION</Id>
<SrlNb>1853691107</SrlNb>
</Id>
</Cmpnt>
<Cmpnt>
<Tp>APLI</Tp>
<Id>
<PrvdrId>VendorXYZ</PrvdrId>
<Id>NEXO PAYMENT APPLICATION</Id>
</Id>
<Sts>
<VrsnNb>1.6.108</VrsnNb>
</Sts>
<StdCmplc>
<Id>SEPA-FAST</Id>
<Vrsn>3.1</Vrsn>
<Issr>OSCAR</Issr>
</StdCmplc>
<Assmnt>
<Tp>CERT</Tp>
<Assgnr>OSCAR</Assgnr>
<Nb>ToComplete(giveByPayCert)</Nb>
</Assmnt>
</Cmpnt>
</POI>
<Card>
<PrtctdCardData>
<CnttTp>EVLP</CnttTp>
<EnvlpdData>
<Rcpt>
<KEK>
<KEKId>
<KeyId>SredTestKey</KeyId>
<KeyVrsn>2016051911</KeyVrsn>
<DerivtnId>EAM5AAA=</DerivtnId>
</KEKId>
<KeyNcrptnAlgo>
<Algo>DKP9</Algo>
</KeyNcrptnAlgo>
<NcrptdKey>xxxxxxx</NcrptdKey>
</KEK>
</Rcpt>
<NcrptdCntt>
<CnttTp>DATA</CnttTp>
<CnttNcrptnAlgo>
<Algo>E3DC</Algo>
</CnttNcrptnAlgo>
<NcrptdData>D028qine5XgDnx22ggaKrX+sjIcniSLLVxJLVVkSJt73gpRSQlcySIUsFcY4cKOHC3IBqO1wGL7lBMmhEXOJn1WG3wwxIh7GWggxo2jzKmRp+XkHZ3zLG/DSWBXFQhpMT5Wi8WkDRH5OHa8PtbHKe4WMrG5RfLuQflEOS6TQKrqaBsfVMa7qcDb7tSgFnnnPE04nodzOrQ6Q4F2GFWjGnRLyYBAXSAGbDOS1HN5XXnWj2OY3uioB5Bij8z/d4kMgBLfAD/4S7KQGwjMsDNVVoPymCC3cK8HmnjrRt25PCUaQqhbwUgmRNL+y7whHBNCPtdMfU0S2Nrl0PqqCTgtcjZtIRL9P7454fpMezMFZ5W0=</NcrptdData>
</NcrptdCntt>
</EnvlpdData>
</PrtctdCardData>
<IssrBIN>403337</IssrBIN>
<CardCtryCd>784</CardCtryCd>
<CardPdctPrfl>V</CardPdctPrfl>
<CardBrnd>V</CardBrnd>
</Card>
<Crdhldr>
<Lang>en</Lang>
<Authntcn>
<AuthntcnMtd>NPIN</AuthntcnMtd>
<CrdhldrOnLinePIN>
<NcrptdPINBlck>
<CnttTp>EVLP</CnttTp>
<EnvlpdData>
<Rcpt>
<KEK>
<KEKId>
<KeyId>PinTestKey</KeyId>
<KeyVrsn>2016051911</KeyVrsn>
<DerivtnId>EAM6AAA=</DerivtnId>
</KEKId>
<KeyNcrptnAlgo>
<Algo>DKP9</Algo>
</KeyNcrptnAlgo>
<NcrptdKey>xxxxxxx</NcrptdKey>
</KEK>
</Rcpt>
<NcrptdCntt>
<CnttTp>DATA</CnttTp>
<CnttNcrptnAlgo>
<Algo>E3DC</Algo>
</CnttNcrptnAlgo>
<NcrptdData>XXXXXXXXXXXX</NcrptdData>
</NcrptdCntt>
</EnvlpdData>
</NcrptdPINBlck>
<PINFrmt>ISO0</PINFrmt>
</CrdhldrOnLinePIN>
</Authntcn>
</Crdhldr>
</Envt>
<Cntxt>
<PmtCntxt>
<CardPres>true</CardPres>
<CrdhldrPres>true</CrdhldrPres>
<AttndncCntxt>ATTD</AttndncCntxt>
<CardDataNtryMd>ECTL</CardDataNtryMd>
</PmtCntxt>
<SaleCntxt/>
</Cntxt>
<Tx>
<TxCaptr>true</TxCaptr>
<TxTp>CRDP</TxTp>
<MrchntCtgyCd>7011</MrchntCtgyCd>
<CstmrCnsnt>false</CstmrCnsnt>
<TxId>
<TxDtTm>2026-04-14T17:54:19.592+04:00</TxDtTm>
<TxRef>123456</TxRef>
</TxId>
<RcncltnId>336</RcncltnId>
<TxDtls>
<Ccy>EUR</Ccy>
<TtlAmt>556.87</TtlAmt>
<AmtQlfr>ACTL</AmtQlfr>
<DtldAmt>
<AmtGoodsAndSvcs>556.87</AmtGoodsAndSvcs>
</DtldAmt>
<OnLineRsn>TRMF</OnLineRsn>
<ICCRltdData>{emv-tags}</ICCRltdData>
</TxDtls>
<AddtlTxData>/installment/Plazox/installmentPlanInquiryId/asfff617-c2c7-03f0</AddtlTxData>
</Tx>
</AuthstnReq>
<SctyTrlr>
<CnttTp>AUTH</CnttTp>
<AuthntcdData>
<Rcpt>
<KEK>
<KEKId>
<KeyId>MacTestKey</KeyId>
<KeyVrsn>2026041417</KeyVrsn>
<DerivtnId>EAM7AAA=</DerivtnId>
</KEKId>
<KeyNcrptnAlgo>
<Algo>DKP9</Algo>
</KeyNcrptnAlgo>
<NcrptdKey>xxxxxx</NcrptdKey>
</KEK>
</Rcpt>
<MACAlgo>
<Algo>MCCS</Algo>
</MACAlgo>
<NcpsltdCntt>
<CnttTp>DATA</CnttTp>
</NcpsltdCntt>
<MAC>oNRYbwt+Cfk=</MAC>
</AuthntcdData>
</SctyTrlr>
</AccptrAuthstnReq>
</Document>
The Gateway sends the sale response (using AccptrAuthstnRspn) to the second leg transaction to the terminal.
The response will include the final details of the chosen installment plan. This allows the terminal to use the details for receipt printing. The details related to the chosen installment plan will be included in the same format as they were included in the first leg response. In addition, the response will include the fee and fee type.
| Field | Presence | Value |
|---|---|---|
RspnToAuthstn/Rspn | M | 'APPR' - Transaction approved, Chosen installment plan was accepted 'DECL' - Transaction was declined |
Actn | C | Not present if RspnToAuthstn/Rspn='DECL'One occurrence per eligible installment plan with: ActnTp='DISP'MsgToPres/MsgDstn='CDSP'MsgToPres/Frmt='TEXT'MsgToPres/MsgCntt= see below JSON structure |
JSON structure:
Subfield of MsgToPres/MsgCntt | Description | Type | Example |
|---|---|---|---|
totalFee | Fee applied by issuer | string | 12 |
feeType | Fee type applied by issuer | enum Possible values: NO_FEE FIXED PERCENTAGE PRECENTAGE_DISTRIBUTED | FIXED |
Example:
"selectedInstallmentPlan": {
"installmentPlanId": "6aba19b5-4bf8-72fe-4bd6-19ccea7fd302",
"provider": "PLAZOX",
"monthlyTenure": 6,
"interestRate": 1,
"currency": "EUR",
"amountPerMonth": 50.00,
"totalAmount": 300.50,
"AmountFirstInstallment": 50.50
"totalFee":"12"
"feeType": "FIXED"
}
Updated about 16 hours ago