> For the complete documentation index, see [llms.txt](https://docs.nexusglobalpayments.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nexusglobalpayments.org/nexus-payments-apis/iso-20022-messages.md).

# ISO 20022 Messages

Accepts an ISO 20022 message in XML format, prepared according to the Nexus Message Usage Guidelines. The messagePath path parameter selects the message type.

## Submit an ISO 20022 pacs.008 FI to FI Customer Credit Transfer

> Submit an ISO 20022 pacs.008 FI to FI customer credit transfer payment instruction. Nexus validates the message, transforms routing fields, and routes it to the Destination IPS. The asynchronous pacs.002 status report is delivered to the Source IPS.

```json
{"openapi":"3.1.0","info":{"title":"Nexus Payments API","version":"v1"},"tags":[{"name":"ISO 20022 Messages","description":"Accepts an ISO 20022 message in XML format, prepared according to the Nexus Message Usage Guidelines. The messagePath path parameter selects the message type."}],"servers":[{"url":"https://{environment}.payments.nexus.net","description":"Nexus participant-facing API endpoint. Resolved via Nexus private DNS over the established IPsec IKEv2 tunnel and not reachable from the public Internet.","variables":{"environment":{"default":"prod","enum":["pat","prod"],"description":"Deployment environment subdomain."}}}],"security":[{"mutualTLS":[],"nexusOAuth":["payment.process"]}],"components":{"securitySchemes":{"mutualTLS":{"type":"mutualTLS","description":"Mutual TLS: the IPSO presents its X.509 client certificate on every connection, validated during the TLS handshake (fail-closed). The same certificate is the RFC 8705 binding anchor for the OAuth access token (see nexusOAuth)."}},"parameters":{"SignatureInputWithBody":{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 signature metadata for a request with a body, per the Nexus HTTP Message Signature Profile v1 (RFC 9421, RFC 9530). One dictionary member labelled `nexus` whose covered components are exactly `\"@method\" \"@authority\" \"@path\" \"@query\" \"content-type\" \"content-digest\"`, so the body is bound to the signature through its `Content-Digest`. Signature parameters, emitted in this order: `created` and `expires` (Unix seconds; `expires` = `created` + 300; the receiver rejects `created` more than ±5 minutes from its clock or a signature past `expires`), `keyid` (base64url SHA-256 thumbprint of the signer's signing public key, registered at onboarding; a missing, unknown, expired or revoked key id is rejected - never resolved to a default key), `alg` (always `rsa-pss-sha512`) and `tag` (always `nexus-v1`). The signature parameters are signed through the `@signature-params` line of the signature base. A missing, malformed or non-conforming value is rejected with AE005.","schema":{"type":"string","maxLength":512,"pattern":"^nexus=\\(\"@method\" \"@authority\" \"@path\" \"@query\" \"content-type\" \"content-digest\"\\);created=[0-9]{1,15};expires=[0-9]{1,15};keyid=\"[A-Za-z0-9_-]{43}\";alg=\"rsa-pss-sha512\";tag=\"nexus-v1\"$"}},"Signature":{"name":"Signature","in":"header","required":true,"description":"RFC 9421 signature value: one dictionary member labelled `nexus` holding an RFC 8941 byte sequence - the **standard base64** (not base64url) RSASSA-PSS signature using SHA-512 (`rsa-pss-sha512`), computed over the RFC 9421 signature base built from the components and parameters declared in `Signature-Input`. Produced with the sender's own signing private key; the receiver verifies it against the sender's registered signing public key resolved from `keyid`. With the minimum RSA-3072 key the signature is 384 bytes, i.e. 512 base64 characters. A missing, malformed or non-verifying signature is rejected with AE005.","schema":{"type":"string","minLength":520,"maxLength":1400,"pattern":"^nexus=:[A-Za-z0-9+/]+={0,2}:$"}},"ContentDigest":{"name":"Content-Digest","in":"header","required":true,"description":"RFC 9530 digest of the exact request body bytes as sent: `sha-512=:<standard base64 SHA-512>:`. Covered by the signature. The receiver recomputes the digest over the received bytes and rejects a mismatch with AE005 before verifying the signature. Only `sha-512` is accepted.","schema":{"type":"string","pattern":"^sha-512=:[A-Za-z0-9+/]{86}==:$"}}},"schemas":{"Pacs008Document":{"type":"object","properties":{"FIToFICstmrCdtTrf":{"$ref":"#/components/schemas/Pacs008FIToFICustomerCreditTransferV13"}},"required":["FIToFICstmrCdtTrf"],"xml":{"name":"Document","namespace":"urn:iso:std:iso:20022:tech:xsd:pacs.008.001.13"}},"Pacs008FIToFICustomerCreditTransferV13":{"type":"object","properties":{"GrpHdr":{"$ref":"#/components/schemas/Pacs008GroupHeader131"},"CdtTrfTxInf":{"type":"array","items":{"$ref":"#/components/schemas/Pacs008CreditTransferTransaction70"}}},"required":["GrpHdr","CdtTrfTxInf"]},"Pacs008GroupHeader131":{"type":"object","properties":{"MsgId":{"type":"string","minLength":35,"maxLength":35,"pattern":"[0-9]{8}NXPS081[A-Z0-9]{8}[A-Z0-9]{11}X","description":"Nexus message identifier, 35 characters: YYYYMMDD + NX + message-type code + sequence(8) + sender BIC-11 + literal X."},"CreDtTm":{"type":"string","format":"date-time"},"NbOfTxs":{"type":"string","enum":["1"],"description":"Fixed value 1: one transaction per pacs.008 in Nexus."},"CtrlSum":{"type":"number"},"TtlIntrBkSttlmAmt":{"$ref":"#/components/schemas/Pacs008ActiveCurrencyAndAmount"},"SttlmInf":{"$ref":"#/components/schemas/Pacs008SettlementInstruction15"}},"required":["MsgId","CreDtTm","NbOfTxs","SttlmInf"]},"Pacs008ActiveCurrencyAndAmount":{"type":"object","properties":{"value":{"type":"number","minimum":0},"Ccy":{"type":"string","pattern":"[A-Z]{3,3}","xml":{"attribute":true}}},"required":["value","Ccy"]},"Pacs008SettlementInstruction15":{"type":"object","properties":{"SttlmMtd":{"type":"string","enum":["INDA","INGA","COVE","CLRG"]},"ClrSys":{"$ref":"#/components/schemas/Pacs008ClearingSystemIdentification3Choice"}},"required":["SttlmMtd"]},"Pacs008ClearingSystemIdentification3Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":3}},"required":["Cd"],"additionalProperties":false},"Pacs008CreditTransferTransaction70":{"type":"object","properties":{"PmtId":{"$ref":"#/components/schemas/Pacs008PaymentIdentification13"},"PmtTpInf":{"$ref":"#/components/schemas/Pacs008PaymentTypeInformation28"},"IntrBkSttlmAmt":{"$ref":"#/components/schemas/Pacs008ActiveCurrencyAndAmount"},"IntrBkSttlmDt":{"type":"string","format":"date"},"AddtlDtTm":{"$ref":"#/components/schemas/Pacs008AdditionalDateTime1"},"InstdAmt":{"$ref":"#/components/schemas/Pacs008ActiveOrHistoricCurrencyAndAmount"},"XchgRate":{"type":"number"},"AgrdRate":{"$ref":"#/components/schemas/Pacs008CurrencyExchange26"},"ChrgBr":{"type":"string","enum":["DEBT","CRED","SHAR","SLEV"]},"ChrgsInf":{"type":"array","items":{"$ref":"#/components/schemas/Pacs008Charges16"}},"InstgAgt":{"$ref":"#/components/schemas/Pacs008BranchAndFinancialInstitutionIdentification8"},"InstdAgt":{"$ref":"#/components/schemas/Pacs008BranchAndFinancialInstitutionIdentification8"},"IntrmyAgt1":{"$ref":"#/components/schemas/Pacs008BranchAndFinancialInstitutionIdentification8"},"IntrmyAgt1Acct":{"$ref":"#/components/schemas/Pacs008CashAccount40"},"IntrmyAgt2":{"$ref":"#/components/schemas/Pacs008BranchAndFinancialInstitutionIdentification8"},"IntrmyAgt2Acct":{"$ref":"#/components/schemas/Pacs008CashAccount40"},"UltmtDbtr":{"$ref":"#/components/schemas/Pacs008PartyIdentification272"},"InitgPty":{"$ref":"#/components/schemas/Pacs008PartyIdentification272"},"Dbtr":{"$ref":"#/components/schemas/Pacs008PartyIdentification272"},"DbtrAcct":{"$ref":"#/components/schemas/Pacs008CashAccount40"},"DbtrAgt":{"$ref":"#/components/schemas/Pacs008BranchAndFinancialInstitutionIdentification8"},"CdtrAgt":{"$ref":"#/components/schemas/Pacs008BranchAndFinancialInstitutionIdentification8"},"Cdtr":{"$ref":"#/components/schemas/Pacs008PartyIdentification272"},"CdtrAcct":{"$ref":"#/components/schemas/Pacs008CashAccount40"},"UltmtCdtr":{"$ref":"#/components/schemas/Pacs008PartyIdentification272"},"Purp":{"$ref":"#/components/schemas/Pacs008Purpose2Choice"},"RgltryRptg":{"type":"array","items":{"$ref":"#/components/schemas/Pacs008RegulatoryReporting3"}},"RltdRmtInf":{"type":"array","items":{"$ref":"#/components/schemas/Pacs008RemittanceLocation8"}},"RmtInf":{"$ref":"#/components/schemas/Pacs008RemittanceInformation22"}},"required":["PmtId","IntrBkSttlmAmt","ChrgBr","Dbtr","DbtrAgt","CdtrAgt","Cdtr"]},"Pacs008PaymentIdentification13":{"type":"object","properties":{"InstrId":{"type":"string","minLength":1,"maxLength":35},"EndToEndId":{"type":"string","minLength":1,"maxLength":35},"TxId":{"type":"string","minLength":1,"maxLength":35},"UETR":{"type":"string","pattern":"[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}"},"ClrSysRef":{"type":"string","minLength":1,"maxLength":35}},"required":["EndToEndId"]},"Pacs008PaymentTypeInformation28":{"type":"object","properties":{"InstrPrty":{"type":"string","enum":["HIGH","NORM"]},"SvcLvl":{"type":"array","items":{"$ref":"#/components/schemas/Pacs008ServiceLevel8Choice"}},"LclInstrm":{"$ref":"#/components/schemas/Pacs008LocalInstrument2Choice"},"CtgyPurp":{"$ref":"#/components/schemas/Pacs008CategoryPurpose1Choice"}}},"Pacs008ServiceLevel8Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs008LocalInstrument2Choice":{"type":"object","properties":{"Cd":{"type":"string","enum":["INST","RTR","POS"],"minLength":1,"maxLength":35}},"required":["Cd"],"additionalProperties":false},"Pacs008CategoryPurpose1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs008AdditionalDateTime1":{"type":"object","properties":{"AccptncDtTm":{"type":"string","format":"date-time"}}},"Pacs008ActiveOrHistoricCurrencyAndAmount":{"type":"object","properties":{"value":{"type":"number","minimum":0},"Ccy":{"type":"string","pattern":"[A-Z]{3,3}","xml":{"attribute":true}}},"required":["value","Ccy"]},"Pacs008CurrencyExchange26":{"type":"object","properties":{"UnitCcy":{"type":"string","pattern":"[A-Z]{3,3}"},"QtdCcy":{"type":"string","pattern":"[A-Z]{3,3}"},"PreAgrdXchgRate":{"type":"number"},"QtnDtTm":{"type":"string","format":"date-time"},"QtId":{"type":"string","pattern":"[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}"},"FXAgt":{"$ref":"#/components/schemas/Pacs008BranchAndFinancialInstitutionIdentification8"}},"required":["PreAgrdXchgRate"]},"Pacs008BranchAndFinancialInstitutionIdentification8":{"type":"object","properties":{"FinInstnId":{"$ref":"#/components/schemas/Pacs008FinancialInstitutionIdentification23"}},"required":["FinInstnId"]},"Pacs008FinancialInstitutionIdentification23":{"type":"object","properties":{"BICFI":{"type":"string","pattern":"[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}"},"ClrSysMmbId":{"$ref":"#/components/schemas/Pacs008ClearingSystemMemberIdentification2"},"LEI":{"type":"string","pattern":"[A-Z0-9]{18,18}[0-9]{2,2}"},"Nm":{"type":"string","minLength":1,"maxLength":140}}},"Pacs008ClearingSystemMemberIdentification2":{"type":"object","properties":{"ClrSysId":{"$ref":"#/components/schemas/Pacs008ClearingSystemIdentification2Choice"},"MmbId":{"type":"string","minLength":1,"maxLength":35}},"required":["MmbId"]},"Pacs008ClearingSystemIdentification2Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":5}},"required":["Cd"],"additionalProperties":false},"Pacs008Charges16":{"type":"object","properties":{"Amt":{"$ref":"#/components/schemas/Pacs008ActiveOrHistoricCurrencyAndAmount"},"Agt":{"$ref":"#/components/schemas/Pacs008BranchAndFinancialInstitutionIdentification8"}},"required":["Amt","Agt"]},"Pacs008CashAccount40":{"type":"object","properties":{"Id":{"$ref":"#/components/schemas/Pacs008AccountIdentification4Choice"},"Tp":{"$ref":"#/components/schemas/Pacs008CashAccountType2Choice"},"Ccy":{"type":"string","pattern":"[A-Z]{3,3}"},"Nm":{"type":"string","minLength":1,"maxLength":70},"Prxy":{"$ref":"#/components/schemas/Pacs008ProxyAccountIdentification1"}}},"Pacs008AccountIdentification4Choice":{"type":"object","properties":{"IBAN":{"type":"string","pattern":"^[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}$"},"Othr":{"$ref":"#/components/schemas/Pacs008GenericAccountIdentification1"}},"oneOf":[{"required":["IBAN"]},{"required":["Othr"]}],"minProperties":1,"maxProperties":1,"additionalProperties":false},"Pacs008GenericAccountIdentification1":{"type":"object","properties":{"Id":{"type":"string","minLength":1,"maxLength":34,"pattern":"^(?:[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+(/[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)*)$"},"SchmeNm":{"$ref":"#/components/schemas/Pacs008AccountSchemeName1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"}},"required":["Id"],"additionalProperties":false},"Pacs008AccountSchemeName1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs008CashAccountType2Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs008ProxyAccountIdentification1":{"type":"object","properties":{"Tp":{"$ref":"#/components/schemas/Pacs008ProxyAccountType1Choice"},"Id":{"type":"string","minLength":1,"maxLength":2048}},"required":["Id"]},"Pacs008ProxyAccountType1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs008PartyIdentification272":{"type":"object","properties":{"Nm":{"type":"string","minLength":1,"maxLength":140},"PstlAdr":{"$ref":"#/components/schemas/Pacs008PostalAddress27"},"Id":{"$ref":"#/components/schemas/Pacs008Party52Choice"},"CtryOfRes":{"type":"string","pattern":"[A-Z]{2,2}"},"CtctDtls":{"$ref":"#/components/schemas/Pacs008Contact13"}}},"Pacs008PostalAddress27":{"type":"object","properties":{"AdrTp":{"$ref":"#/components/schemas/Pacs008AddressType3Choice"},"CareOf":{"type":"string","minLength":1,"maxLength":140},"Dept":{"type":"string","minLength":1,"maxLength":70},"SubDept":{"type":"string","minLength":1,"maxLength":70},"StrtNm":{"type":"string","minLength":1,"maxLength":140},"BldgNb":{"type":"string","minLength":1,"maxLength":16},"BldgNm":{"type":"string","minLength":1,"maxLength":140},"Flr":{"type":"string","minLength":1,"maxLength":70},"UnitNb":{"type":"string","minLength":1,"maxLength":16},"PstBx":{"type":"string","minLength":1,"maxLength":16},"Room":{"type":"string","minLength":1,"maxLength":70},"PstCd":{"type":"string","minLength":1,"maxLength":16},"TwnNm":{"type":"string","minLength":1,"maxLength":140},"TwnLctnNm":{"type":"string","minLength":1,"maxLength":140},"DstrctNm":{"type":"string","minLength":1,"maxLength":140},"CtrySubDvsn":{"type":"string","minLength":1,"maxLength":35},"Ctry":{"type":"string","pattern":"[A-Z]{2,2}"},"AdrLine":{"type":"array","items":{"type":"string","minLength":1,"maxLength":70}}}},"Pacs008AddressType3Choice":{"type":"object","properties":{"Cd":{"type":"string","enum":["ADDR","PBOX","HOME","BIZZ","MLTO","DLVY"]},"Prtry":{"$ref":"#/components/schemas/Pacs008GenericIdentification30"}},"oneOf":[{"required":["Cd"]},{"required":["Prtry"]}],"minProperties":1,"maxProperties":1,"additionalProperties":false},"Pacs008GenericIdentification30":{"type":"object","properties":{"Id":{"type":"string","pattern":"^[a-zA-Z0-9]{4}$"},"Issr":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"},"SchmeNm":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"}},"required":["Id","Issr"],"additionalProperties":false},"Pacs008Party52Choice":{"type":"object","properties":{"OrgId":{"$ref":"#/components/schemas/Pacs008OrganisationIdentification39"},"PrvtId":{"$ref":"#/components/schemas/Pacs008PersonIdentification18"}},"oneOf":[{"required":["OrgId"]},{"required":["PrvtId"]}],"minProperties":1,"maxProperties":1,"additionalProperties":false},"Pacs008OrganisationIdentification39":{"type":"object","description":"Shared by message paths whose Nexus inbound XSD restrictions differ (OrganisationIdentification39__1, OrganisationIdentification39__2); modelled as the looser union: a property is required only where every variant requires it, cardinalities and facets take the loosest bound.","properties":{"AnyBIC":{"type":"string","pattern":"^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$"},"LEI":{"type":"string","pattern":"^[A-Z0-9]{18,18}[0-9]{2,2}$"},"Othr":{"type":"array","items":{"$ref":"#/components/schemas/Pacs008GenericOrganisationIdentification3"},"minItems":0}},"additionalProperties":false},"Pacs008GenericOrganisationIdentification3":{"type":"object","properties":{"Id":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+(/[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)*)$"},"SchmeNm":{"$ref":"#/components/schemas/Pacs008OrganisationIdentificationSchemeName1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"}},"required":["Id"],"additionalProperties":false},"Pacs008OrganisationIdentificationSchemeName1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs008PersonIdentification18":{"type":"object","description":"Shared by message paths whose Nexus inbound XSD restrictions differ (PersonIdentification18__1, PersonIdentification18__2); modelled as the looser union: a property is required only where every variant requires it, cardinalities and facets take the loosest bound.","properties":{"DtAndPlcOfBirth":{"$ref":"#/components/schemas/Pacs008DateAndPlaceOfBirth1"},"Othr":{"type":"array","items":{"$ref":"#/components/schemas/Pacs008GenericPersonIdentification2"},"minItems":0}},"additionalProperties":false},"Pacs008DateAndPlaceOfBirth1":{"type":"object","properties":{"BirthDt":{"type":"string","format":"date"},"PrvcOfBirth":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"},"CityOfBirth":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"},"CtryOfBirth":{"type":"string","pattern":"^[A-Z]{2,2}$"}},"required":["BirthDt","CityOfBirth","CtryOfBirth"],"additionalProperties":false},"Pacs008GenericPersonIdentification2":{"type":"object","properties":{"Id":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+(/[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)*)$"},"SchmeNm":{"$ref":"#/components/schemas/Pacs008PersonIdentificationSchemeName1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"}},"required":["Id"],"additionalProperties":false},"Pacs008PersonIdentificationSchemeName1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs008Contact13":{"type":"object","properties":{"NmPrfx":{"type":"string","enum":["DOCT","MADM","MISS","MIST","MIKS"]},"Nm":{"type":"string","minLength":1,"maxLength":140},"PhneNb":{"type":"string","pattern":"\\+[0-9]{1,3}-[0-9()+\\-]{1,30}"},"MobNb":{"type":"string","pattern":"\\+[0-9]{1,3}-[0-9()+\\-]{1,30}"},"FaxNb":{"type":"string","pattern":"\\+[0-9]{1,3}-[0-9()+\\-]{1,30}"},"URLAdr":{"type":"string","minLength":1,"maxLength":2048},"EmailAdr":{"type":"string","minLength":1,"maxLength":256},"EmailPurp":{"type":"string","minLength":1,"maxLength":35},"JobTitl":{"type":"string","minLength":1,"maxLength":35},"Rspnsblty":{"type":"string","minLength":1,"maxLength":35},"Dept":{"type":"string","minLength":1,"maxLength":70},"Othr":{"type":"array","items":{"$ref":"#/components/schemas/Pacs008OtherContact1"}},"PrefrdMtd":{"type":"string","enum":["MAIL","FAXX","LETT","CELL","ONLI","PHON"]}}},"Pacs008OtherContact1":{"type":"object","properties":{"ChanlTp":{"type":"string","minLength":1,"maxLength":4},"Id":{"type":"string","minLength":1,"maxLength":128}},"required":["ChanlTp"]},"Pacs008Purpose2Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs008RegulatoryReporting3":{"type":"object","properties":{"DbtCdtRptgInd":{"type":"string","enum":["CRED","DEBT","BOTH"]},"Authrty":{"$ref":"#/components/schemas/Pacs008RegulatoryAuthority2"},"Dtls":{"type":"array","items":{"$ref":"#/components/schemas/Pacs008StructuredRegulatoryReporting3"}}}},"Pacs008RegulatoryAuthority2":{"type":"object","properties":{"Nm":{"type":"string","minLength":1,"maxLength":140},"Ctry":{"type":"string","pattern":"[A-Z]{2,2}"}}},"Pacs008StructuredRegulatoryReporting3":{"type":"object","properties":{"Tp":{"type":"string","minLength":1,"maxLength":35},"Dt":{"type":"string","format":"date"},"Ctry":{"type":"string","pattern":"[A-Z]{2,2}"},"Cd":{"type":"string","minLength":1,"maxLength":10},"Amt":{"$ref":"#/components/schemas/Pacs008ActiveOrHistoricCurrencyAndAmount"},"Inf":{"type":"array","items":{"type":"string","minLength":1,"maxLength":35}}}},"Pacs008RemittanceLocation8":{"type":"object","properties":{"RmtId":{"type":"string","minLength":1,"maxLength":35},"RmtLctnDtls":{"type":"array","items":{"$ref":"#/components/schemas/Pacs008RemittanceLocationData2"}}}},"Pacs008RemittanceLocationData2":{"type":"object","properties":{"Mtd":{"type":"string","enum":["FAXI","EDIC","URID","EMAL","POST","SMSM"]},"ElctrncAdr":{"type":"string","minLength":1,"maxLength":2048},"PstlAdr":{"$ref":"#/components/schemas/Pacs008NameAndAddress18"}},"required":["Mtd"]},"Pacs008NameAndAddress18":{"type":"object","properties":{"Nm":{"type":"string","minLength":1,"maxLength":140},"Adr":{"$ref":"#/components/schemas/Pacs008PostalAddress27"}},"required":["Nm","Adr"]},"Pacs008RemittanceInformation22":{"type":"object","properties":{"Ustrd":{"type":"array","items":{"type":"string","minLength":1,"maxLength":140}},"Strd":{"type":"array","items":{"$ref":"#/components/schemas/Pacs008StructuredRemittanceInformation18"}}}},"Pacs008StructuredRemittanceInformation18":{"type":"object","properties":{"RfrdDocInf":{"type":"array","items":{"$ref":"#/components/schemas/Pacs008ReferredDocumentInformation8"}},"RfrdDocAmt":{"$ref":"#/components/schemas/Pacs008RemittanceAmount4"},"CdtrRefInf":{"$ref":"#/components/schemas/Pacs008CreditorReferenceInformation3"},"Invcr":{"$ref":"#/components/schemas/Pacs008PartyIdentification272"},"Invcee":{"$ref":"#/components/schemas/Pacs008PartyIdentification272"},"TaxRmt":{"$ref":"#/components/schemas/Pacs008TaxData1"},"GrnshmtRmt":{"$ref":"#/components/schemas/Pacs008Garnishment4"},"AddtlRmtInf":{"type":"array","items":{"type":"string","minLength":1,"maxLength":140}}}},"Pacs008ReferredDocumentInformation8":{"type":"object","properties":{"Tp":{"$ref":"#/components/schemas/Pacs008DocumentType1"},"Nb":{"type":"string","minLength":1,"maxLength":35},"RltdDt":{"$ref":"#/components/schemas/Pacs008DateAndType1"},"LineDtls":{"type":"array","items":{"$ref":"#/components/schemas/Pacs008DocumentLineInformation2"}}}},"Pacs008DocumentType1":{"type":"object","properties":{"CdOrPrtry":{"$ref":"#/components/schemas/Pacs008DocumentType2Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35}},"required":["CdOrPrtry"]},"Pacs008DocumentType2Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs008DateAndType1":{"type":"object","properties":{"Tp":{"$ref":"#/components/schemas/Pacs008DateType2Choice"},"Dt":{"type":"string","format":"date"}},"required":["Tp","Dt"]},"Pacs008DateType2Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs008DocumentLineInformation2":{"type":"object","properties":{"Id":{"type":"array","items":{"$ref":"#/components/schemas/Pacs008DocumentLineIdentification1"}},"Desc":{"type":"string","minLength":1,"maxLength":2048},"Amt":{"$ref":"#/components/schemas/Pacs008RemittanceAmount4"}},"required":["Id"]},"Pacs008DocumentLineIdentification1":{"type":"object","properties":{"Tp":{"$ref":"#/components/schemas/Pacs008DocumentLineType1"},"Nb":{"type":"string","minLength":1,"maxLength":35},"RltdDt":{"type":"string","format":"date"}}},"Pacs008DocumentLineType1":{"type":"object","properties":{"CdOrPrtry":{"$ref":"#/components/schemas/Pacs008DocumentLineType1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35}},"required":["CdOrPrtry"]},"Pacs008DocumentLineType1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs008RemittanceAmount4":{"type":"object","properties":{"RmtAmtAndTp":{"type":"array","items":{"$ref":"#/components/schemas/Pacs008DocumentAmount1"}},"AdjstmntAmtAndRsn":{"type":"array","items":{"$ref":"#/components/schemas/Pacs008DocumentAdjustment1"}}}},"Pacs008DocumentAmount1":{"type":"object","properties":{"Tp":{"$ref":"#/components/schemas/Pacs008DocumentAmountType1Choice"},"Amt":{"$ref":"#/components/schemas/Pacs008ActiveOrHistoricCurrencyAndAmount"}},"required":["Tp","Amt"]},"Pacs008DocumentAmountType1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs008DocumentAdjustment1":{"type":"object","properties":{"Amt":{"$ref":"#/components/schemas/Pacs008ActiveOrHistoricCurrencyAndAmount"},"CdtDbtInd":{"type":"string","enum":["CRDT","DBIT"]},"Rsn":{"type":"string","minLength":1,"maxLength":4},"AddtlInf":{"type":"string","minLength":1,"maxLength":140}},"required":["Amt"]},"Pacs008CreditorReferenceInformation3":{"type":"object","properties":{"Tp":{"$ref":"#/components/schemas/Pacs008CreditorReferenceType3"},"Ref":{"type":"string","minLength":1,"maxLength":35}}},"Pacs008CreditorReferenceType3":{"type":"object","properties":{"CdOrPrtry":{"$ref":"#/components/schemas/Pacs008CreditorReferenceType2Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35}},"required":["CdOrPrtry"]},"Pacs008CreditorReferenceType2Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs008TaxData1":{"type":"object","properties":{"Cdtr":{"$ref":"#/components/schemas/Pacs008TaxParty1"},"Dbtr":{"$ref":"#/components/schemas/Pacs008TaxParty2"},"UltmtDbtr":{"$ref":"#/components/schemas/Pacs008TaxParty2"},"AdmstnZone":{"type":"string","minLength":1,"maxLength":35},"RefNb":{"type":"string","minLength":1,"maxLength":140},"Mtd":{"type":"string","minLength":1,"maxLength":35},"TtlTaxblBaseAmt":{"$ref":"#/components/schemas/Pacs008ActiveOrHistoricCurrencyAndAmount"},"TtlTaxAmt":{"$ref":"#/components/schemas/Pacs008ActiveOrHistoricCurrencyAndAmount"},"Dt":{"type":"string","format":"date"},"SeqNb":{"type":"number"},"Rcrd":{"type":"array","items":{"$ref":"#/components/schemas/Pacs008TaxRecord3"}}}},"Pacs008TaxParty1":{"type":"object","properties":{"TaxId":{"type":"string","minLength":1,"maxLength":35},"RegnId":{"type":"string","minLength":1,"maxLength":35},"TaxTp":{"type":"string","minLength":1,"maxLength":35}}},"Pacs008TaxParty2":{"type":"object","properties":{"TaxId":{"type":"string","minLength":1,"maxLength":35},"RegnId":{"type":"string","minLength":1,"maxLength":35},"TaxTp":{"type":"string","minLength":1,"maxLength":35},"Authstn":{"$ref":"#/components/schemas/Pacs008TaxAuthorisation1"}}},"Pacs008TaxAuthorisation1":{"type":"object","properties":{"Titl":{"type":"string","minLength":1,"maxLength":35},"Nm":{"type":"string","minLength":1,"maxLength":140}}},"Pacs008TaxRecord3":{"type":"object","properties":{"Tp":{"type":"string","minLength":1,"maxLength":35},"Ctgy":{"type":"string","minLength":1,"maxLength":35},"CtgyDtls":{"type":"string","minLength":1,"maxLength":35},"DbtrSts":{"type":"string","minLength":1,"maxLength":35},"CertId":{"type":"string","minLength":1,"maxLength":35},"FrmsCd":{"type":"string","minLength":1,"maxLength":35},"Prd":{"$ref":"#/components/schemas/Pacs008TaxPeriod3"},"TaxAmt":{"$ref":"#/components/schemas/Pacs008TaxAmount3"},"AddtlInf":{"type":"string","minLength":1,"maxLength":140}}},"Pacs008TaxPeriod3":{"type":"object","properties":{"Yr":{"type":"string"},"Tp":{"type":"string","enum":["MM01","MM02","MM03","MM04","MM05","MM06","MM07","MM08","MM09","MM10","MM11","MM12","QTR1","QTR2","QTR3","QTR4","HLF1","HLF2"]},"FrToDt":{"$ref":"#/components/schemas/Pacs008DatePeriod2"}}},"Pacs008DatePeriod2":{"type":"object","properties":{"FrDt":{"type":"string","format":"date"},"ToDt":{"type":"string","format":"date"}},"required":["FrDt","ToDt"]},"Pacs008TaxAmount3":{"type":"object","properties":{"Rate":{"type":"number"},"TaxblBaseAmt":{"$ref":"#/components/schemas/Pacs008ActiveOrHistoricCurrencyAndAmount"},"TtlAmt":{"$ref":"#/components/schemas/Pacs008ActiveOrHistoricCurrencyAndAmount"},"Dtls":{"type":"array","items":{"$ref":"#/components/schemas/Pacs008TaxRecordDetails3"}}}},"Pacs008TaxRecordDetails3":{"type":"object","properties":{"Prd":{"$ref":"#/components/schemas/Pacs008TaxPeriod3"},"Amt":{"$ref":"#/components/schemas/Pacs008ActiveOrHistoricCurrencyAndAmount"}},"required":["Amt"]},"Pacs008Garnishment4":{"type":"object","properties":{"Tp":{"$ref":"#/components/schemas/Pacs008GarnishmentType1"},"Grnshee":{"$ref":"#/components/schemas/Pacs008PartyIdentification272"},"GrnshmtAdmstr":{"$ref":"#/components/schemas/Pacs008PartyIdentification272"},"RefNb":{"type":"string","minLength":1,"maxLength":140},"Dt":{"type":"string","format":"date"},"RmtdAmt":{"$ref":"#/components/schemas/Pacs008ActiveOrHistoricCurrencyAndAmount"},"FmlyMdclInsrncInd":{"type":"boolean"},"MplyeeTermntnInd":{"type":"boolean"}},"required":["Tp"]},"Pacs008GarnishmentType1":{"type":"object","properties":{"CdOrPrtry":{"$ref":"#/components/schemas/Pacs008GarnishmentType1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35}},"required":["CdOrPrtry"]},"Pacs008GarnishmentType1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"ErrorApiResponse":{"type":"object","description":"Standard structured rejection body. Returned for all non-2xx responses produced by the Nexus authentication layer or the application. Gateway level errors (405, 409, 413, 429, 502, 503, 504) do NOT carry this body.\n\n#### Validation rules\n\n- All four fields are required and never `null`.\n- `statusCode`: always `RJCT`.\n- `reasonCode`: 5 characters matching `^[A-Z]{2}[0-9]{3}$`; family prefix `TE` (technical), `AE` (authentication/authorisation, enforced at authentication) or `BE` (business); one of the values enumerated in the `reasonCode` schema.\n- `name`: UPPER_SNAKE_CASE, 1–50 characters; the name paired with `reasonCode` (e.g. `TE001` ↔ `INVALID_REQUEST`).\n- `description`: 1–500 characters; MUST NOT contain PII.\n- Gateway-level errors (405, 409, 413, 429, 502, 503, 504) do not carry this body.","properties":{"statusCode":{"type":"string","description":"Business-level status code. Always RJCT (Rejected) — the structured error body is only returned for rejection cases. Successful responses use HTTP status alone (200 OK for sync, 202 Accepted for async ingress) with no structured statusCode body.","enum":["RJCT"],"maxLength":4,"minLength":4},"reasonCode":{"type":"string","description":"Categorised reason code. Three families: TE (Technical Error, e.g. TE001/TE002/TE099), AE (Authentication / Authorization Error, AE001–AE006, enforced at authentication), BE (Business Error, BE001–BE031).","enum":["TE001","TE002","TE099","AE001","AE002","AE003","AE004","AE005","AE006","BE001","BE002","BE007","BE008","BE009","BE010","BE011","BE012","BE013","BE014","BE015","BE016","BE017","BE018","BE019","BE020","BE021","BE030","BE031"],"maxLength":5,"pattern":"^[A-Z]{2}[0-9]{3}$","minLength":5},"name":{"type":"string","description":"Machine-readable error name paired with the reason code.","maxLength":50,"pattern":"^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$","minLength":1},"description":{"type":"string","description":"Human-readable error description. MUST NOT contain PII.","maxLength":500,"minLength":1}},"required":["description","name","reasonCode","statusCode"]}}},"paths":{"/v1/iso20022/pacs008":{"post":{"tags":["ISO 20022 Messages"],"summary":"Submit an ISO 20022 pacs.008 FI to FI Customer Credit Transfer","description":"Submit an ISO 20022 pacs.008 FI to FI customer credit transfer payment instruction. Nexus validates the message, transforms routing fields, and routes it to the Destination IPS. The asynchronous pacs.002 status report is delivered to the Source IPS.","operationId":"submitPacs008","parameters":[{"name":"Content-Type","in":"header","description":"application/xml","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"*/*","required":true,"schema":{"type":"string","default":"*/*"}},{"$ref":"#/components/parameters/SignatureInputWithBody"},{"$ref":"#/components/parameters/Signature"},{"$ref":"#/components/parameters/ContentDigest"}],"requestBody":{"description":"Raw ISO 20022 pacs.008.001.13 XML payload. Validated against the pacs.008.001.13 XSD.\n","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Pacs008Document"}}},"required":true},"responses":{"202":{"description":"Message accepted with a technical acknowledgement (HTTP 202) and stored for async processing. Not final business acceptance - failures are sent later via an ISO 20022 message (e.g. admi.002, negative pacs.002)."},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"401":{"description":"Authentication failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"405":{"description":"Method Not Allowed. The HTTP method is not supported for this endpoint. Use the correct HTTP method.","headers":{"Allow":{"description":"Permitted HTTP methods for this endpoint","schema":{"type":"string"}}}},"409":{"description":"Conflict. This request was already accepted and is still being processed. Do not retry - use a pacs.028 status request to check the outcome."},"413":{"description":"Payload Too Large. The request body exceeds the gateway's maximum allowed size. Reduce payload size or check gateway configuration."},"415":{"description":"Unsupported Media Type. The Content-Type header does not match the media type this endpoint accepts (application/xml)."},"429":{"description":"Too Many Requests. Rate limit exceeded. The Retry-After header indicates when to retry. Back off and retry after the indicated duration.","headers":{"Retry-After":{"description":"Duration after which the caller may retry","schema":{"type":"string"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"502":{"description":"Bad Gateway. The gateway received an invalid response from the upstream service. Retry with exponential backoff. If persistent, escalate."},"503":{"description":"Service Unavailable. The upstream service is temporarily unavailable, for example during rolling deployment. Retry with exponential backoff."},"504":{"description":"Gateway Timeout. The upstream service did not respond within the gateway's timeout window. Retry with exponential backoff."}}}}}}
```

## Submit an ISO 20022 pacs.002 FI to FI Payment Status Report

> Submit an ISO 20022 pacs.002 FI to FI payment status report. Nexus validates the status report, correlates it to the original pacs.008 by OrgnlUETR, and routes it to the Source IPS for that transaction.

```json
{"openapi":"3.1.0","info":{"title":"Nexus Payments API","version":"v1"},"tags":[{"name":"ISO 20022 Messages","description":"Accepts an ISO 20022 message in XML format, prepared according to the Nexus Message Usage Guidelines. The messagePath path parameter selects the message type."}],"servers":[{"url":"https://{environment}.payments.nexus.net","description":"Nexus participant-facing API endpoint. Resolved via Nexus private DNS over the established IPsec IKEv2 tunnel and not reachable from the public Internet.","variables":{"environment":{"default":"prod","enum":["pat","prod"],"description":"Deployment environment subdomain."}}}],"security":[{"mutualTLS":[],"nexusOAuth":["payment.process"]}],"components":{"securitySchemes":{"mutualTLS":{"type":"mutualTLS","description":"Mutual TLS: the IPSO presents its X.509 client certificate on every connection, validated during the TLS handshake (fail-closed). The same certificate is the RFC 8705 binding anchor for the OAuth access token (see nexusOAuth)."}},"parameters":{"SignatureInputWithBody":{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 signature metadata for a request with a body, per the Nexus HTTP Message Signature Profile v1 (RFC 9421, RFC 9530). One dictionary member labelled `nexus` whose covered components are exactly `\"@method\" \"@authority\" \"@path\" \"@query\" \"content-type\" \"content-digest\"`, so the body is bound to the signature through its `Content-Digest`. Signature parameters, emitted in this order: `created` and `expires` (Unix seconds; `expires` = `created` + 300; the receiver rejects `created` more than ±5 minutes from its clock or a signature past `expires`), `keyid` (base64url SHA-256 thumbprint of the signer's signing public key, registered at onboarding; a missing, unknown, expired or revoked key id is rejected - never resolved to a default key), `alg` (always `rsa-pss-sha512`) and `tag` (always `nexus-v1`). The signature parameters are signed through the `@signature-params` line of the signature base. A missing, malformed or non-conforming value is rejected with AE005.","schema":{"type":"string","maxLength":512,"pattern":"^nexus=\\(\"@method\" \"@authority\" \"@path\" \"@query\" \"content-type\" \"content-digest\"\\);created=[0-9]{1,15};expires=[0-9]{1,15};keyid=\"[A-Za-z0-9_-]{43}\";alg=\"rsa-pss-sha512\";tag=\"nexus-v1\"$"}},"Signature":{"name":"Signature","in":"header","required":true,"description":"RFC 9421 signature value: one dictionary member labelled `nexus` holding an RFC 8941 byte sequence - the **standard base64** (not base64url) RSASSA-PSS signature using SHA-512 (`rsa-pss-sha512`), computed over the RFC 9421 signature base built from the components and parameters declared in `Signature-Input`. Produced with the sender's own signing private key; the receiver verifies it against the sender's registered signing public key resolved from `keyid`. With the minimum RSA-3072 key the signature is 384 bytes, i.e. 512 base64 characters. A missing, malformed or non-verifying signature is rejected with AE005.","schema":{"type":"string","minLength":520,"maxLength":1400,"pattern":"^nexus=:[A-Za-z0-9+/]+={0,2}:$"}},"ContentDigest":{"name":"Content-Digest","in":"header","required":true,"description":"RFC 9530 digest of the exact request body bytes as sent: `sha-512=:<standard base64 SHA-512>:`. Covered by the signature. The receiver recomputes the digest over the received bytes and rejects a mismatch with AE005 before verifying the signature. Only `sha-512` is accepted.","schema":{"type":"string","pattern":"^sha-512=:[A-Za-z0-9+/]{86}==:$"}}},"schemas":{"Pacs002Document":{"type":"object","properties":{"FIToFIPmtStsRpt":{"$ref":"#/components/schemas/Pacs002FIToFIPaymentStatusReportV15"}},"required":["FIToFIPmtStsRpt"],"xml":{"name":"Document","namespace":"urn:iso:std:iso:20022:tech:xsd:pacs.002.001.15"}},"Pacs002FIToFIPaymentStatusReportV15":{"type":"object","properties":{"GrpHdr":{"$ref":"#/components/schemas/Pacs002GroupHeader120"},"TxInfAndSts":{"type":"array","items":{"$ref":"#/components/schemas/Pacs002PaymentTransaction164"}}},"required":["GrpHdr"]},"Pacs002GroupHeader120":{"type":"object","properties":{"MsgId":{"type":"string","minLength":35,"maxLength":35,"pattern":"[0-9]{8}NXPS021[A-Z0-9]{8}[A-Z0-9]{11}X","description":"Nexus message identifier, 35 characters: YYYYMMDD + NX + message-type code + sequence(8) + sender BIC-11 + literal X."},"CreDtTm":{"type":"string","format":"date-time"}},"required":["MsgId","CreDtTm"]},"Pacs002PaymentTransaction164":{"type":"object","properties":{"OrgnlGrpInf":{"$ref":"#/components/schemas/Pacs002OriginalGroupInformation29"},"OrgnlInstrId":{"type":"string","minLength":1,"maxLength":35},"OrgnlEndToEndId":{"type":"string","minLength":1,"maxLength":35},"OrgnlTxId":{"type":"string","minLength":1,"maxLength":35},"OrgnlUETR":{"type":"string","pattern":"[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}"},"TxSts":{"type":"string","enum":["ACCC","ACWP","BLCK","RJCT","PDNG"]},"StsRsnInf":{"type":"array","items":{"$ref":"#/components/schemas/Pacs002StatusReasonInformation14"}},"FctvIntrBkSttlmDt":{"$ref":"#/components/schemas/Pacs002DateAndDateTime2Choice"},"ClrSysRef":{"type":"string","minLength":1,"maxLength":35},"InstgAgt":{"$ref":"#/components/schemas/Pacs002BranchAndFinancialInstitutionIdentification8"},"InstdAgt":{"$ref":"#/components/schemas/Pacs002BranchAndFinancialInstitutionIdentification8"}}},"Pacs002OriginalGroupInformation29":{"type":"object","properties":{"OrgnlMsgId":{"type":"string","minLength":1,"maxLength":35},"OrgnlMsgNmId":{"type":"string","minLength":1,"maxLength":35},"OrgnlCreDtTm":{"type":"string","format":"date-time"}},"required":["OrgnlMsgId","OrgnlMsgNmId"]},"Pacs002StatusReasonInformation14":{"type":"object","properties":{"Orgtr":{"$ref":"#/components/schemas/Pacs002PartyIdentification272"},"Rsn":{"$ref":"#/components/schemas/Pacs002StatusReason6Choice"},"AddtlInf":{"type":"array","items":{"type":"string","minLength":1,"maxLength":105}}}},"Pacs002PartyIdentification272":{"type":"object","properties":{"Nm":{"type":"string","minLength":1,"maxLength":140},"PstlAdr":{"$ref":"#/components/schemas/Pacs002PostalAddress27"},"Id":{"$ref":"#/components/schemas/Pacs002Party52Choice"},"CtryOfRes":{"type":"string","pattern":"[A-Z]{2,2}"},"CtctDtls":{"$ref":"#/components/schemas/Pacs002Contact13"}}},"Pacs002PostalAddress27":{"type":"object","properties":{"CareOf":{"type":"string","minLength":1,"maxLength":140},"Dept":{"type":"string","minLength":1,"maxLength":70},"SubDept":{"type":"string","minLength":1,"maxLength":70},"StrtNm":{"type":"string","minLength":1,"maxLength":140},"BldgNb":{"type":"string","minLength":1,"maxLength":16},"BldgNm":{"type":"string","minLength":1,"maxLength":140},"Flr":{"type":"string","minLength":1,"maxLength":70},"UnitNb":{"type":"string","minLength":1,"maxLength":16},"PstBx":{"type":"string","minLength":1,"maxLength":16},"Room":{"type":"string","minLength":1,"maxLength":70},"PstCd":{"type":"string","minLength":1,"maxLength":16},"TwnNm":{"type":"string","minLength":1,"maxLength":140},"TwnLctnNm":{"type":"string","minLength":1,"maxLength":140},"DstrctNm":{"type":"string","minLength":1,"maxLength":140},"CtrySubDvsn":{"type":"string","minLength":1,"maxLength":35},"Ctry":{"type":"string","pattern":"[A-Z]{2,2}"},"AdrLine":{"type":"array","items":{"type":"string","minLength":1,"maxLength":70}}}},"Pacs002Party52Choice":{"type":"object","properties":{"OrgId":{"$ref":"#/components/schemas/Pacs002OrganisationIdentification39"},"PrvtId":{"$ref":"#/components/schemas/Pacs002PersonIdentification18"}},"oneOf":[{"required":["OrgId"]},{"required":["PrvtId"]}],"minProperties":1,"maxProperties":1,"additionalProperties":false},"Pacs002OrganisationIdentification39":{"type":"object","properties":{"AnyBIC":{"type":"string","pattern":"^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$"},"LEI":{"type":"string","pattern":"^[A-Z0-9]{18,18}[0-9]{2,2}$"},"Othr":{"type":"array","items":{"$ref":"#/components/schemas/Pacs002GenericOrganisationIdentification3"},"minItems":0,"maxItems":2}},"additionalProperties":false},"Pacs002GenericOrganisationIdentification3":{"type":"object","properties":{"Id":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+(/[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)*)$"},"SchmeNm":{"$ref":"#/components/schemas/Pacs002OrganisationIdentificationSchemeName1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"}},"required":["Id"],"additionalProperties":false},"Pacs002OrganisationIdentificationSchemeName1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs002PersonIdentification18":{"type":"object","properties":{"DtAndPlcOfBirth":{"$ref":"#/components/schemas/Pacs002DateAndPlaceOfBirth1"},"Othr":{"type":"array","items":{"$ref":"#/components/schemas/Pacs002GenericPersonIdentification2"},"minItems":0,"maxItems":2}},"additionalProperties":false},"Pacs002DateAndPlaceOfBirth1":{"type":"object","properties":{"BirthDt":{"type":"string","format":"date"},"PrvcOfBirth":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"},"CityOfBirth":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"},"CtryOfBirth":{"type":"string","pattern":"^[A-Z]{2,2}$"}},"required":["BirthDt","CityOfBirth","CtryOfBirth"],"additionalProperties":false},"Pacs002GenericPersonIdentification2":{"type":"object","properties":{"Id":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+(/[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)*)$"},"SchmeNm":{"$ref":"#/components/schemas/Pacs002PersonIdentificationSchemeName1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"}},"required":["Id"],"additionalProperties":false},"Pacs002PersonIdentificationSchemeName1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs002Contact13":{"type":"object","properties":{"NmPrfx":{"type":"string","enum":["DOCT","MADM","MISS","MIST","MIKS"]},"Nm":{"type":"string","minLength":1,"maxLength":140},"PhneNb":{"type":"string","pattern":"\\+[0-9]{1,3}-[0-9()+\\-]{1,30}"},"MobNb":{"type":"string","pattern":"\\+[0-9]{1,3}-[0-9()+\\-]{1,30}"},"FaxNb":{"type":"string","pattern":"\\+[0-9]{1,3}-[0-9()+\\-]{1,30}"},"URLAdr":{"type":"string","minLength":1,"maxLength":2048},"EmailAdr":{"type":"string","minLength":1,"maxLength":256},"EmailPurp":{"type":"string","minLength":1,"maxLength":35},"JobTitl":{"type":"string","minLength":1,"maxLength":35},"Rspnsblty":{"type":"string","minLength":1,"maxLength":35},"Dept":{"type":"string","minLength":1,"maxLength":70},"Othr":{"type":"array","items":{"$ref":"#/components/schemas/Pacs002OtherContact1"}},"PrefrdMtd":{"type":"string","enum":["MAIL","FAXX","LETT","CELL","ONLI","PHON"]}}},"Pacs002OtherContact1":{"type":"object","properties":{"ChanlTp":{"type":"string","minLength":1,"maxLength":4},"Id":{"type":"string","minLength":1,"maxLength":128}},"required":["ChanlTp"]},"Pacs002StatusReason6Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs002DateAndDateTime2Choice":{"type":"object","properties":{"Dt":{"type":"string","format":"date","pattern":"^[0-9]{4}-[0-9]{2}-[0-9]{2}Z?$"}},"required":["Dt"],"additionalProperties":false},"Pacs002BranchAndFinancialInstitutionIdentification8":{"type":"object","properties":{"FinInstnId":{"$ref":"#/components/schemas/Pacs002FinancialInstitutionIdentification23"}},"required":["FinInstnId"]},"Pacs002FinancialInstitutionIdentification23":{"type":"object","properties":{"BICFI":{"type":"string","pattern":"[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}"},"ClrSysMmbId":{"$ref":"#/components/schemas/Pacs002ClearingSystemMemberIdentification2"},"LEI":{"type":"string","pattern":"[A-Z0-9]{18,18}[0-9]{2,2}"},"Nm":{"type":"string","minLength":1,"maxLength":140},"PstlAdr":{"$ref":"#/components/schemas/Pacs002PostalAddress27"}}},"Pacs002ClearingSystemMemberIdentification2":{"type":"object","properties":{"ClrSysId":{"$ref":"#/components/schemas/Pacs002ClearingSystemIdentification2Choice"},"MmbId":{"type":"string","minLength":1,"maxLength":35}},"required":["MmbId"]},"Pacs002ClearingSystemIdentification2Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":5}},"required":["Cd"],"additionalProperties":false},"ErrorApiResponse":{"type":"object","description":"Standard structured rejection body. Returned for all non-2xx responses produced by the Nexus authentication layer or the application. Gateway level errors (405, 409, 413, 429, 502, 503, 504) do NOT carry this body.\n\n#### Validation rules\n\n- All four fields are required and never `null`.\n- `statusCode`: always `RJCT`.\n- `reasonCode`: 5 characters matching `^[A-Z]{2}[0-9]{3}$`; family prefix `TE` (technical), `AE` (authentication/authorisation, enforced at authentication) or `BE` (business); one of the values enumerated in the `reasonCode` schema.\n- `name`: UPPER_SNAKE_CASE, 1–50 characters; the name paired with `reasonCode` (e.g. `TE001` ↔ `INVALID_REQUEST`).\n- `description`: 1–500 characters; MUST NOT contain PII.\n- Gateway-level errors (405, 409, 413, 429, 502, 503, 504) do not carry this body.","properties":{"statusCode":{"type":"string","description":"Business-level status code. Always RJCT (Rejected) — the structured error body is only returned for rejection cases. Successful responses use HTTP status alone (200 OK for sync, 202 Accepted for async ingress) with no structured statusCode body.","enum":["RJCT"],"maxLength":4,"minLength":4},"reasonCode":{"type":"string","description":"Categorised reason code. Three families: TE (Technical Error, e.g. TE001/TE002/TE099), AE (Authentication / Authorization Error, AE001–AE006, enforced at authentication), BE (Business Error, BE001–BE031).","enum":["TE001","TE002","TE099","AE001","AE002","AE003","AE004","AE005","AE006","BE001","BE002","BE007","BE008","BE009","BE010","BE011","BE012","BE013","BE014","BE015","BE016","BE017","BE018","BE019","BE020","BE021","BE030","BE031"],"maxLength":5,"pattern":"^[A-Z]{2}[0-9]{3}$","minLength":5},"name":{"type":"string","description":"Machine-readable error name paired with the reason code.","maxLength":50,"pattern":"^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$","minLength":1},"description":{"type":"string","description":"Human-readable error description. MUST NOT contain PII.","maxLength":500,"minLength":1}},"required":["description","name","reasonCode","statusCode"]}}},"paths":{"/v1/iso20022/pacs002":{"post":{"tags":["ISO 20022 Messages"],"summary":"Submit an ISO 20022 pacs.002 FI to FI Payment Status Report","description":"Submit an ISO 20022 pacs.002 FI to FI payment status report. Nexus validates the status report, correlates it to the original pacs.008 by OrgnlUETR, and routes it to the Source IPS for that transaction.","operationId":"submitPacs002","parameters":[{"name":"Content-Type","in":"header","description":"application/xml","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"*/*","required":true,"schema":{"type":"string","default":"*/*"}},{"$ref":"#/components/parameters/SignatureInputWithBody"},{"$ref":"#/components/parameters/Signature"},{"$ref":"#/components/parameters/ContentDigest"}],"requestBody":{"description":"Raw ISO 20022 pacs.002.001.15 XML payload. Validated against the pacs.002.001.15 XSD.\n","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Pacs002Document"}}},"required":true},"responses":{"202":{"description":"Message accepted with a technical acknowledgement (HTTP 202) and stored for async processing. Not final business acceptance - failures are sent later via an ISO 20022 message (e.g. admi.002)."},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"401":{"description":"Authentication failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"405":{"description":"Method Not Allowed. The HTTP method is not supported for this endpoint. Use the correct HTTP method.","headers":{"Allow":{"description":"Permitted HTTP methods for this endpoint","schema":{"type":"string"}}}},"409":{"description":"Conflict. This request was already accepted and is still being processed. Do not retry - use a pacs.028 status request to check the outcome."},"413":{"description":"Payload Too Large. The request body exceeds the gateway's maximum allowed size. Reduce payload size or check gateway configuration."},"415":{"description":"Unsupported Media Type. The Content-Type header does not match the media type this endpoint accepts (application/xml)."},"429":{"description":"Too Many Requests. Rate limit exceeded. The Retry-After header indicates when to retry. Back off and retry after the indicated duration.","headers":{"Retry-After":{"description":"Duration after which the caller may retry","schema":{"type":"string"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"502":{"description":"Bad Gateway. The gateway received an invalid response from the upstream service. Retry with exponential backoff. If persistent, escalate."},"503":{"description":"Service Unavailable. The upstream service is temporarily unavailable, for example during rolling deployment. Retry with exponential backoff."},"504":{"description":"Gateway Timeout. The upstream service did not respond within the gateway's timeout window. Retry with exponential backoff."}}}}}}
```

## Submit an ISO 20022 camt.029 Resolution of Investigation

> Submit an ISO 20022 camt.029 resolution of investigation response. Nexus validates and correlates the resolution against the outstanding camt.056 cancellation in its payment records by OrgnlUETR. Validation or correlation failures are surfaced via the Nexus Operations Service Desk.

```json
{"openapi":"3.1.0","info":{"title":"Nexus Payments API","version":"v1"},"tags":[{"name":"ISO 20022 Messages","description":"Accepts an ISO 20022 message in XML format, prepared according to the Nexus Message Usage Guidelines. The messagePath path parameter selects the message type."}],"servers":[{"url":"https://{environment}.payments.nexus.net","description":"Nexus participant-facing API endpoint. Resolved via Nexus private DNS over the established IPsec IKEv2 tunnel and not reachable from the public Internet.","variables":{"environment":{"default":"prod","enum":["pat","prod"],"description":"Deployment environment subdomain."}}}],"security":[{"mutualTLS":[],"nexusOAuth":["payment.process"]}],"components":{"securitySchemes":{"mutualTLS":{"type":"mutualTLS","description":"Mutual TLS: the IPSO presents its X.509 client certificate on every connection, validated during the TLS handshake (fail-closed). The same certificate is the RFC 8705 binding anchor for the OAuth access token (see nexusOAuth)."}},"parameters":{"SignatureInputWithBody":{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 signature metadata for a request with a body, per the Nexus HTTP Message Signature Profile v1 (RFC 9421, RFC 9530). One dictionary member labelled `nexus` whose covered components are exactly `\"@method\" \"@authority\" \"@path\" \"@query\" \"content-type\" \"content-digest\"`, so the body is bound to the signature through its `Content-Digest`. Signature parameters, emitted in this order: `created` and `expires` (Unix seconds; `expires` = `created` + 300; the receiver rejects `created` more than ±5 minutes from its clock or a signature past `expires`), `keyid` (base64url SHA-256 thumbprint of the signer's signing public key, registered at onboarding; a missing, unknown, expired or revoked key id is rejected - never resolved to a default key), `alg` (always `rsa-pss-sha512`) and `tag` (always `nexus-v1`). The signature parameters are signed through the `@signature-params` line of the signature base. A missing, malformed or non-conforming value is rejected with AE005.","schema":{"type":"string","maxLength":512,"pattern":"^nexus=\\(\"@method\" \"@authority\" \"@path\" \"@query\" \"content-type\" \"content-digest\"\\);created=[0-9]{1,15};expires=[0-9]{1,15};keyid=\"[A-Za-z0-9_-]{43}\";alg=\"rsa-pss-sha512\";tag=\"nexus-v1\"$"}},"Signature":{"name":"Signature","in":"header","required":true,"description":"RFC 9421 signature value: one dictionary member labelled `nexus` holding an RFC 8941 byte sequence - the **standard base64** (not base64url) RSASSA-PSS signature using SHA-512 (`rsa-pss-sha512`), computed over the RFC 9421 signature base built from the components and parameters declared in `Signature-Input`. Produced with the sender's own signing private key; the receiver verifies it against the sender's registered signing public key resolved from `keyid`. With the minimum RSA-3072 key the signature is 384 bytes, i.e. 512 base64 characters. A missing, malformed or non-verifying signature is rejected with AE005.","schema":{"type":"string","minLength":520,"maxLength":1400,"pattern":"^nexus=:[A-Za-z0-9+/]+={0,2}:$"}},"ContentDigest":{"name":"Content-Digest","in":"header","required":true,"description":"RFC 9530 digest of the exact request body bytes as sent: `sha-512=:<standard base64 SHA-512>:`. Covered by the signature. The receiver recomputes the digest over the received bytes and rejects a mismatch with AE005 before verifying the signature. Only `sha-512` is accepted.","schema":{"type":"string","pattern":"^sha-512=:[A-Za-z0-9+/]{86}==:$"}}},"schemas":{"Camt029Document":{"type":"object","properties":{"RsltnOfInvstgtn":{"$ref":"#/components/schemas/Camt029ResolutionOfInvestigationV13"}},"required":["RsltnOfInvstgtn"],"xml":{"name":"Document","namespace":"urn:iso:std:iso:20022:tech:xsd:camt.029.001.13"}},"Camt029ResolutionOfInvestigationV13":{"type":"object","properties":{"Assgnmt":{"$ref":"#/components/schemas/Camt029CaseAssignment6"},"Sts":{"$ref":"#/components/schemas/Camt029InvestigationStatus6Choice"},"CxlDtls":{"type":"array","items":{"$ref":"#/components/schemas/Camt029UnderlyingTransaction32"}}},"required":["Assgnmt","Sts"]},"Camt029CaseAssignment6":{"type":"object","properties":{"Id":{"type":"string","minLength":35,"maxLength":35,"pattern":"[0-9]{8}NXCA291[A-Z0-9]{8}[A-Z0-9]{11}X","description":"Nexus message identifier, 35 characters: YYYYMMDD + NX + message-type code + sequence(8) + sender BIC-11 + literal X."},"Assgnr":{"$ref":"#/components/schemas/Camt029Party50Choice"},"Assgne":{"$ref":"#/components/schemas/Camt029Party50Choice"},"CreDtTm":{"type":"string","format":"date-time"}},"required":["Id","Assgnr","Assgne","CreDtTm"]},"Camt029Party50Choice":{"type":"object","properties":{"Agt":{"$ref":"#/components/schemas/Camt029BranchAndFinancialInstitutionIdentification8"}},"required":["Agt"],"additionalProperties":false},"Camt029BranchAndFinancialInstitutionIdentification8":{"type":"object","properties":{"FinInstnId":{"$ref":"#/components/schemas/Camt029FinancialInstitutionIdentification23"}},"required":["FinInstnId"]},"Camt029FinancialInstitutionIdentification23":{"type":"object","properties":{"BICFI":{"type":"string","pattern":"[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}"},"ClrSysMmbId":{"$ref":"#/components/schemas/Camt029ClearingSystemMemberIdentification2"},"LEI":{"type":"string","pattern":"[A-Z0-9]{18,18}[0-9]{2,2}"}}},"Camt029ClearingSystemMemberIdentification2":{"type":"object","properties":{"ClrSysId":{"$ref":"#/components/schemas/Camt029ClearingSystemIdentification2Choice"},"MmbId":{"type":"string","minLength":1,"maxLength":35}},"required":["MmbId"]},"Camt029ClearingSystemIdentification2Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":5}},"required":["Cd"],"additionalProperties":false},"Camt029InvestigationStatus6Choice":{"type":"object","properties":{"Conf":{"type":"string","minLength":1,"maxLength":4}},"required":["Conf"],"additionalProperties":false},"Camt029UnderlyingTransaction32":{"type":"object","properties":{"TxInfAndSts":{"type":"array","items":{"$ref":"#/components/schemas/Camt029PaymentTransaction152"}}}},"Camt029PaymentTransaction152":{"type":"object","properties":{"OrgnlGrpInf":{"$ref":"#/components/schemas/Camt029OriginalGroupInformation29"},"OrgnlInstrId":{"type":"string","minLength":1,"maxLength":35},"OrgnlEndToEndId":{"type":"string","minLength":1,"maxLength":35},"OrgnlTxId":{"type":"string","minLength":1,"maxLength":35},"OrgnlClrSysRef":{"type":"string","minLength":1,"maxLength":35},"OrgnlUETR":{"type":"string","pattern":"[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}"}}},"Camt029OriginalGroupInformation29":{"type":"object","properties":{"OrgnlMsgId":{"type":"string","minLength":1,"maxLength":35},"OrgnlMsgNmId":{"type":"string","minLength":1,"maxLength":35},"OrgnlCreDtTm":{"type":"string","format":"date-time"}},"required":["OrgnlMsgId","OrgnlMsgNmId"]},"ErrorApiResponse":{"type":"object","description":"Standard structured rejection body. Returned for all non-2xx responses produced by the Nexus authentication layer or the application. Gateway level errors (405, 409, 413, 429, 502, 503, 504) do NOT carry this body.\n\n#### Validation rules\n\n- All four fields are required and never `null`.\n- `statusCode`: always `RJCT`.\n- `reasonCode`: 5 characters matching `^[A-Z]{2}[0-9]{3}$`; family prefix `TE` (technical), `AE` (authentication/authorisation, enforced at authentication) or `BE` (business); one of the values enumerated in the `reasonCode` schema.\n- `name`: UPPER_SNAKE_CASE, 1–50 characters; the name paired with `reasonCode` (e.g. `TE001` ↔ `INVALID_REQUEST`).\n- `description`: 1–500 characters; MUST NOT contain PII.\n- Gateway-level errors (405, 409, 413, 429, 502, 503, 504) do not carry this body.","properties":{"statusCode":{"type":"string","description":"Business-level status code. Always RJCT (Rejected) — the structured error body is only returned for rejection cases. Successful responses use HTTP status alone (200 OK for sync, 202 Accepted for async ingress) with no structured statusCode body.","enum":["RJCT"],"maxLength":4,"minLength":4},"reasonCode":{"type":"string","description":"Categorised reason code. Three families: TE (Technical Error, e.g. TE001/TE002/TE099), AE (Authentication / Authorization Error, AE001–AE006, enforced at authentication), BE (Business Error, BE001–BE031).","enum":["TE001","TE002","TE099","AE001","AE002","AE003","AE004","AE005","AE006","BE001","BE002","BE007","BE008","BE009","BE010","BE011","BE012","BE013","BE014","BE015","BE016","BE017","BE018","BE019","BE020","BE021","BE030","BE031"],"maxLength":5,"pattern":"^[A-Z]{2}[0-9]{3}$","minLength":5},"name":{"type":"string","description":"Machine-readable error name paired with the reason code.","maxLength":50,"pattern":"^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$","minLength":1},"description":{"type":"string","description":"Human-readable error description. MUST NOT contain PII.","maxLength":500,"minLength":1}},"required":["description","name","reasonCode","statusCode"]}}},"paths":{"/v1/iso20022/camt029":{"post":{"tags":["ISO 20022 Messages"],"summary":"Submit an ISO 20022 camt.029 Resolution of Investigation","description":"Submit an ISO 20022 camt.029 resolution of investigation response. Nexus validates and correlates the resolution against the outstanding camt.056 cancellation in its payment records by OrgnlUETR. Validation or correlation failures are surfaced via the Nexus Operations Service Desk.","operationId":"submitCamt029","parameters":[{"name":"Content-Type","in":"header","description":"application/xml","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"*/*","required":true,"schema":{"type":"string","default":"*/*"}},{"$ref":"#/components/parameters/SignatureInputWithBody"},{"$ref":"#/components/parameters/Signature"},{"$ref":"#/components/parameters/ContentDigest"}],"requestBody":{"description":"Raw ISO 20022 camt.029.001.13 XML payload. Validated against the camt.029.001.13 XSD.\n","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Camt029Document"}}},"required":true},"responses":{"202":{"description":"Message accepted with a technical acknowledgement (HTTP 202) and stored for async processing. Not final business acceptance - failures are sent later via an ISO 20022 message (e.g. admi.002)."},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"401":{"description":"Authentication failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"405":{"description":"Method Not Allowed. The HTTP method is not supported for this endpoint. Use the correct HTTP method.","headers":{"Allow":{"description":"Permitted HTTP methods for this endpoint","schema":{"type":"string"}}}},"409":{"description":"Conflict. This request was already accepted and is still being processed. Do not retry - use a pacs.028 status request to check the outcome."},"413":{"description":"Payload Too Large. The request body exceeds the gateway's maximum allowed size. Reduce payload size or check gateway configuration."},"415":{"description":"Unsupported Media Type. The Content-Type header does not match the media type this endpoint accepts (application/xml)."},"429":{"description":"Too Many Requests. Rate limit exceeded. The Retry-After header indicates when to retry. Back off and retry after the indicated duration.","headers":{"Retry-After":{"description":"Duration after which the caller may retry","schema":{"type":"string"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"502":{"description":"Bad Gateway. The gateway received an invalid response from the upstream service. Retry with exponential backoff. If persistent, escalate."},"503":{"description":"Service Unavailable. The upstream service is temporarily unavailable, for example during rolling deployment. Retry with exponential backoff."},"504":{"description":"Gateway Timeout. The upstream service did not respond within the gateway's timeout window. Retry with exponential backoff."}}}}}}
```

## Submit an ISO 20022 acmt.024 Identification Verification Report

> Submit an ISO 20022 acmt.024 identification verification report response. Nexus correlates the response to the outstanding acmt.023 from its records and routes the outcome to the Source IPS. Post-202 failures are communicated asynchronously via admi.002 to the Destination IPS.

```json
{"openapi":"3.1.0","info":{"title":"Nexus Payments API","version":"v1"},"tags":[{"name":"ISO 20022 Messages","description":"Accepts an ISO 20022 message in XML format, prepared according to the Nexus Message Usage Guidelines. The messagePath path parameter selects the message type."}],"servers":[{"url":"https://{environment}.payments.nexus.net","description":"Nexus participant-facing API endpoint. Resolved via Nexus private DNS over the established IPsec IKEv2 tunnel and not reachable from the public Internet.","variables":{"environment":{"default":"prod","enum":["pat","prod"],"description":"Deployment environment subdomain."}}}],"security":[{"mutualTLS":[],"nexusOAuth":["payment.process"]}],"components":{"securitySchemes":{"mutualTLS":{"type":"mutualTLS","description":"Mutual TLS: the IPSO presents its X.509 client certificate on every connection, validated during the TLS handshake (fail-closed). The same certificate is the RFC 8705 binding anchor for the OAuth access token (see nexusOAuth)."}},"parameters":{"SignatureInputWithBody":{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 signature metadata for a request with a body, per the Nexus HTTP Message Signature Profile v1 (RFC 9421, RFC 9530). One dictionary member labelled `nexus` whose covered components are exactly `\"@method\" \"@authority\" \"@path\" \"@query\" \"content-type\" \"content-digest\"`, so the body is bound to the signature through its `Content-Digest`. Signature parameters, emitted in this order: `created` and `expires` (Unix seconds; `expires` = `created` + 300; the receiver rejects `created` more than ±5 minutes from its clock or a signature past `expires`), `keyid` (base64url SHA-256 thumbprint of the signer's signing public key, registered at onboarding; a missing, unknown, expired or revoked key id is rejected - never resolved to a default key), `alg` (always `rsa-pss-sha512`) and `tag` (always `nexus-v1`). The signature parameters are signed through the `@signature-params` line of the signature base. A missing, malformed or non-conforming value is rejected with AE005.","schema":{"type":"string","maxLength":512,"pattern":"^nexus=\\(\"@method\" \"@authority\" \"@path\" \"@query\" \"content-type\" \"content-digest\"\\);created=[0-9]{1,15};expires=[0-9]{1,15};keyid=\"[A-Za-z0-9_-]{43}\";alg=\"rsa-pss-sha512\";tag=\"nexus-v1\"$"}},"Signature":{"name":"Signature","in":"header","required":true,"description":"RFC 9421 signature value: one dictionary member labelled `nexus` holding an RFC 8941 byte sequence - the **standard base64** (not base64url) RSASSA-PSS signature using SHA-512 (`rsa-pss-sha512`), computed over the RFC 9421 signature base built from the components and parameters declared in `Signature-Input`. Produced with the sender's own signing private key; the receiver verifies it against the sender's registered signing public key resolved from `keyid`. With the minimum RSA-3072 key the signature is 384 bytes, i.e. 512 base64 characters. A missing, malformed or non-verifying signature is rejected with AE005.","schema":{"type":"string","minLength":520,"maxLength":1400,"pattern":"^nexus=:[A-Za-z0-9+/]+={0,2}:$"}},"ContentDigest":{"name":"Content-Digest","in":"header","required":true,"description":"RFC 9530 digest of the exact request body bytes as sent: `sha-512=:<standard base64 SHA-512>:`. Covered by the signature. The receiver recomputes the digest over the received bytes and rejects a mismatch with AE005 before verifying the signature. Only `sha-512` is accepted.","schema":{"type":"string","pattern":"^sha-512=:[A-Za-z0-9+/]{86}==:$"}}},"schemas":{"Acmt024Document":{"type":"object","properties":{"IdVrfctnRpt":{"$ref":"#/components/schemas/Acmt024IdentificationVerificationReportV04"}},"required":["IdVrfctnRpt"],"xml":{"name":"Document","namespace":"urn:iso:std:iso:20022:tech:xsd:acmt.024.001.04"}},"Acmt024IdentificationVerificationReportV04":{"type":"object","properties":{"Assgnmt":{"$ref":"#/components/schemas/Acmt024IdentificationAssignment4"},"Rpt":{"type":"array","items":{"$ref":"#/components/schemas/Acmt024VerificationReport5"}}},"required":["Assgnmt","Rpt"]},"Acmt024IdentificationAssignment4":{"type":"object","properties":{"MsgId":{"type":"string","minLength":35,"maxLength":35,"pattern":"[0-9]{8}NXAC24[12][A-Z0-9]{8}[A-Z0-9]{11}X","description":"Nexus message identifier, 35 characters: YYYYMMDD + NX + message-type code + sequence(8) + sender BIC-11 + literal X."},"CreDtTm":{"type":"string","format":"date-time"},"Assgnr":{"$ref":"#/components/schemas/Acmt024Party50Choice"},"Assgne":{"$ref":"#/components/schemas/Acmt024Party50Choice"}},"required":["MsgId","CreDtTm","Assgnr","Assgne"]},"Acmt024Party50Choice":{"type":"object","properties":{"Agt":{"$ref":"#/components/schemas/Acmt024BranchAndFinancialInstitutionIdentification8"}},"required":["Agt"],"additionalProperties":false},"Acmt024BranchAndFinancialInstitutionIdentification8":{"type":"object","properties":{"FinInstnId":{"$ref":"#/components/schemas/Acmt024FinancialInstitutionIdentification23"},"BrnchId":{"$ref":"#/components/schemas/Acmt024BranchData5"}},"required":["FinInstnId"]},"Acmt024FinancialInstitutionIdentification23":{"type":"object","properties":{"BICFI":{"type":"string","pattern":"[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}"},"ClrSysMmbId":{"$ref":"#/components/schemas/Acmt024ClearingSystemMemberIdentification2"},"LEI":{"type":"string","pattern":"[A-Z0-9]{18,18}[0-9]{2,2}"},"Nm":{"type":"string","minLength":1,"maxLength":140},"PstlAdr":{"$ref":"#/components/schemas/Acmt024PostalAddress27"},"Othr":{"$ref":"#/components/schemas/Acmt024GenericFinancialIdentification1"}}},"Acmt024ClearingSystemMemberIdentification2":{"type":"object","properties":{"ClrSysId":{"$ref":"#/components/schemas/Acmt024ClearingSystemIdentification2Choice"},"MmbId":{"type":"string","minLength":1,"maxLength":35}},"required":["MmbId"]},"Acmt024ClearingSystemIdentification2Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":5}},"required":["Cd"],"additionalProperties":false},"Acmt024PostalAddress27":{"type":"object","properties":{"AdrTp":{"$ref":"#/components/schemas/Acmt024AddressType3Choice"},"CareOf":{"type":"string","minLength":1,"maxLength":140},"Dept":{"type":"string","minLength":1,"maxLength":70},"SubDept":{"type":"string","minLength":1,"maxLength":70},"StrtNm":{"type":"string","minLength":1,"maxLength":140},"BldgNb":{"type":"string","minLength":1,"maxLength":16},"BldgNm":{"type":"string","minLength":1,"maxLength":140},"Flr":{"type":"string","minLength":1,"maxLength":70},"UnitNb":{"type":"string","minLength":1,"maxLength":16},"PstBx":{"type":"string","minLength":1,"maxLength":16},"Room":{"type":"string","minLength":1,"maxLength":70},"PstCd":{"type":"string","minLength":1,"maxLength":16},"TwnNm":{"type":"string","minLength":1,"maxLength":140},"TwnLctnNm":{"type":"string","minLength":1,"maxLength":140},"DstrctNm":{"type":"string","minLength":1,"maxLength":140},"CtrySubDvsn":{"type":"string","minLength":1,"maxLength":35},"Ctry":{"type":"string","pattern":"[A-Z]{2,2}"},"AdrLine":{"type":"array","items":{"type":"string","minLength":1,"maxLength":70}}}},"Acmt024AddressType3Choice":{"type":"object","properties":{"Cd":{"type":"string","enum":["ADDR","PBOX","HOME","BIZZ","MLTO","DLVY"]},"Prtry":{"$ref":"#/components/schemas/Acmt024GenericIdentification30"}},"oneOf":[{"required":["Cd"]},{"required":["Prtry"]}],"minProperties":1,"maxProperties":1,"additionalProperties":false},"Acmt024GenericIdentification30":{"type":"object","properties":{"Id":{"type":"string","pattern":"^[a-zA-Z0-9]{4}$"},"Issr":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"},"SchmeNm":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"}},"required":["Id","Issr"],"additionalProperties":false},"Acmt024GenericFinancialIdentification1":{"type":"object","properties":{"Id":{"type":"string","minLength":1,"maxLength":35},"SchmeNm":{"$ref":"#/components/schemas/Acmt024FinancialIdentificationSchemeName1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35}},"required":["Id"]},"Acmt024FinancialIdentificationSchemeName1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Acmt024BranchData5":{"type":"object","properties":{"Id":{"type":"string","minLength":1,"maxLength":35},"LEI":{"type":"string","pattern":"[A-Z0-9]{18,18}[0-9]{2,2}"},"Nm":{"type":"string","minLength":1,"maxLength":140},"PstlAdr":{"$ref":"#/components/schemas/Acmt024PostalAddress27"}}},"Acmt024VerificationReport5":{"type":"object","properties":{"OrgnlId":{"type":"string","minLength":35,"maxLength":35,"pattern":"[0-9]{8}[A-Z0-9]{11}[A-Z0-9]{11}[A-Z0-9]{5}","description":"Nexus Verification ID, 35 characters: YYYYMMDD + sending IPSO id(11) + sending PSP id(11) + sequence(5)."},"Vrfctn":{"type":"boolean"},"Rsn":{"$ref":"#/components/schemas/Acmt024VerificationReason1Choice"},"UpdtdPtyAndAcctId":{"$ref":"#/components/schemas/Acmt024IdentificationInformation5"}},"required":["OrgnlId","Vrfctn"]},"Acmt024VerificationReason1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Acmt024IdentificationInformation5":{"type":"object","properties":{"Pty":{"$ref":"#/components/schemas/Acmt024PartyIdentification272"},"Acct":{"$ref":"#/components/schemas/Acmt024CashAccount40"},"Agt":{"$ref":"#/components/schemas/Acmt024BranchAndFinancialInstitutionIdentification8"}}},"Acmt024PartyIdentification272":{"type":"object","properties":{"Nm":{"type":"string","minLength":1,"maxLength":140},"PstlAdr":{"$ref":"#/components/schemas/Acmt024PostalAddress27"},"Id":{"$ref":"#/components/schemas/Acmt024Party52Choice"},"CtryOfRes":{"type":"string","pattern":"[A-Z]{2,2}"},"CtctDtls":{"$ref":"#/components/schemas/Acmt024Contact13"}}},"Acmt024Party52Choice":{"type":"object","properties":{"OrgId":{"$ref":"#/components/schemas/Acmt024OrganisationIdentification39"},"PrvtId":{"$ref":"#/components/schemas/Acmt024PersonIdentification18"}},"oneOf":[{"required":["OrgId"]},{"required":["PrvtId"]}],"minProperties":1,"maxProperties":1,"additionalProperties":false},"Acmt024OrganisationIdentification39":{"type":"object","properties":{"AnyBIC":{"type":"string","pattern":"^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$"},"LEI":{"type":"string","pattern":"^[A-Z0-9]{18,18}[0-9]{2,2}$"},"Othr":{"type":"array","items":{"$ref":"#/components/schemas/Acmt024GenericOrganisationIdentification3"},"minItems":0}},"additionalProperties":false},"Acmt024GenericOrganisationIdentification3":{"type":"object","properties":{"Id":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+(/[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)*)$"},"SchmeNm":{"$ref":"#/components/schemas/Acmt024OrganisationIdentificationSchemeName1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"}},"required":["Id"],"additionalProperties":false},"Acmt024OrganisationIdentificationSchemeName1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Acmt024PersonIdentification18":{"type":"object","properties":{"DtAndPlcOfBirth":{"$ref":"#/components/schemas/Acmt024DateAndPlaceOfBirth1"},"Othr":{"type":"array","items":{"$ref":"#/components/schemas/Acmt024GenericPersonIdentification2"},"minItems":0}},"additionalProperties":false},"Acmt024DateAndPlaceOfBirth1":{"type":"object","properties":{"BirthDt":{"type":"string","format":"date"},"PrvcOfBirth":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"},"CityOfBirth":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"},"CtryOfBirth":{"type":"string","pattern":"^[A-Z]{2,2}$"}},"required":["BirthDt","CityOfBirth","CtryOfBirth"],"additionalProperties":false},"Acmt024GenericPersonIdentification2":{"type":"object","properties":{"Id":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+(/[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)*)$"},"SchmeNm":{"$ref":"#/components/schemas/Acmt024PersonIdentificationSchemeName1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"}},"required":["Id"],"additionalProperties":false},"Acmt024PersonIdentificationSchemeName1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Acmt024Contact13":{"type":"object","properties":{"NmPrfx":{"type":"string","enum":["DOCT","MADM","MISS","MIST","MIKS"]},"Nm":{"type":"string","minLength":1,"maxLength":140},"PhneNb":{"type":"string","pattern":"\\+[0-9]{1,3}-[0-9()+\\-]{1,30}"},"MobNb":{"type":"string","pattern":"\\+[0-9]{1,3}-[0-9()+\\-]{1,30}"},"FaxNb":{"type":"string","pattern":"\\+[0-9]{1,3}-[0-9()+\\-]{1,30}"},"URLAdr":{"type":"string","minLength":1,"maxLength":2048},"EmailAdr":{"type":"string","minLength":1,"maxLength":256},"EmailPurp":{"type":"string","minLength":1,"maxLength":35},"JobTitl":{"type":"string","minLength":1,"maxLength":35},"Rspnsblty":{"type":"string","minLength":1,"maxLength":35},"Dept":{"type":"string","minLength":1,"maxLength":70},"Othr":{"type":"array","items":{"$ref":"#/components/schemas/Acmt024OtherContact1"}},"PrefrdMtd":{"type":"string","enum":["MAIL","FAXX","LETT","CELL","ONLI","PHON"]}}},"Acmt024OtherContact1":{"type":"object","properties":{"ChanlTp":{"type":"string","minLength":1,"maxLength":4},"Id":{"type":"string","minLength":1,"maxLength":128}},"required":["ChanlTp"]},"Acmt024CashAccount40":{"type":"object","properties":{"Id":{"$ref":"#/components/schemas/Acmt024AccountIdentification4Choice"},"Tp":{"$ref":"#/components/schemas/Acmt024CashAccountType2Choice"},"Ccy":{"type":"string","pattern":"[A-Z]{3,3}"},"Nm":{"type":"string","minLength":1,"maxLength":70}}},"Acmt024AccountIdentification4Choice":{"type":"object","properties":{"IBAN":{"type":"string","pattern":"^[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}$"},"Othr":{"$ref":"#/components/schemas/Acmt024GenericAccountIdentification1"}},"oneOf":[{"required":["IBAN"]},{"required":["Othr"]}],"minProperties":1,"maxProperties":1,"additionalProperties":false},"Acmt024GenericAccountIdentification1":{"type":"object","properties":{"Id":{"type":"string","minLength":1,"maxLength":34,"pattern":"^(?:[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+(/[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)*)$"},"SchmeNm":{"$ref":"#/components/schemas/Acmt024AccountSchemeName1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"}},"required":["Id"],"additionalProperties":false},"Acmt024AccountSchemeName1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Acmt024CashAccountType2Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"ErrorApiResponse":{"type":"object","description":"Standard structured rejection body. Returned for all non-2xx responses produced by the Nexus authentication layer or the application. Gateway level errors (405, 409, 413, 429, 502, 503, 504) do NOT carry this body.\n\n#### Validation rules\n\n- All four fields are required and never `null`.\n- `statusCode`: always `RJCT`.\n- `reasonCode`: 5 characters matching `^[A-Z]{2}[0-9]{3}$`; family prefix `TE` (technical), `AE` (authentication/authorisation, enforced at authentication) or `BE` (business); one of the values enumerated in the `reasonCode` schema.\n- `name`: UPPER_SNAKE_CASE, 1–50 characters; the name paired with `reasonCode` (e.g. `TE001` ↔ `INVALID_REQUEST`).\n- `description`: 1–500 characters; MUST NOT contain PII.\n- Gateway-level errors (405, 409, 413, 429, 502, 503, 504) do not carry this body.","properties":{"statusCode":{"type":"string","description":"Business-level status code. Always RJCT (Rejected) — the structured error body is only returned for rejection cases. Successful responses use HTTP status alone (200 OK for sync, 202 Accepted for async ingress) with no structured statusCode body.","enum":["RJCT"],"maxLength":4,"minLength":4},"reasonCode":{"type":"string","description":"Categorised reason code. Three families: TE (Technical Error, e.g. TE001/TE002/TE099), AE (Authentication / Authorization Error, AE001–AE006, enforced at authentication), BE (Business Error, BE001–BE031).","enum":["TE001","TE002","TE099","AE001","AE002","AE003","AE004","AE005","AE006","BE001","BE002","BE007","BE008","BE009","BE010","BE011","BE012","BE013","BE014","BE015","BE016","BE017","BE018","BE019","BE020","BE021","BE030","BE031"],"maxLength":5,"pattern":"^[A-Z]{2}[0-9]{3}$","minLength":5},"name":{"type":"string","description":"Machine-readable error name paired with the reason code.","maxLength":50,"pattern":"^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$","minLength":1},"description":{"type":"string","description":"Human-readable error description. MUST NOT contain PII.","maxLength":500,"minLength":1}},"required":["description","name","reasonCode","statusCode"]}}},"paths":{"/v1/iso20022/acmt024":{"post":{"tags":["ISO 20022 Messages"],"summary":"Submit an ISO 20022 acmt.024 Identification Verification Report","description":"Submit an ISO 20022 acmt.024 identification verification report response. Nexus correlates the response to the outstanding acmt.023 from its records and routes the outcome to the Source IPS. Post-202 failures are communicated asynchronously via admi.002 to the Destination IPS.","operationId":"submitAcmt024","parameters":[{"name":"Content-Type","in":"header","description":"application/xml","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"*/*","required":true,"schema":{"type":"string","default":"*/*"}},{"$ref":"#/components/parameters/SignatureInputWithBody"},{"$ref":"#/components/parameters/Signature"},{"$ref":"#/components/parameters/ContentDigest"}],"requestBody":{"description":"Raw ISO 20022 acmt.024.001.04 XML payload. Validated against the acmt.024.001.04 XSD.\n","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Acmt024Document"}}},"required":true},"responses":{"202":{"description":"Message accepted with a technical acknowledgement (HTTP 202) and stored for async processing. Not final business acceptance - failures are sent later via an ISO 20022 message (e.g. admi.002)."},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"401":{"description":"Authentication failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"405":{"description":"Method Not Allowed. The HTTP method is not supported for this endpoint. Use the correct HTTP method.","headers":{"Allow":{"description":"Permitted HTTP methods for this endpoint","schema":{"type":"string"}}}},"409":{"description":"Conflict. This request was already accepted and is still being processed. Do not retry - the outcome is delivered separately as an acmt.024."},"413":{"description":"Payload Too Large. The request body exceeds the gateway's maximum allowed size. Reduce payload size or check gateway configuration."},"415":{"description":"Unsupported Media Type. The Content-Type header does not match the media type this endpoint accepts (application/xml)."},"429":{"description":"Too Many Requests. Rate limit exceeded. The Retry-After header indicates when to retry. Back off and retry after the indicated duration.","headers":{"Retry-After":{"description":"Duration after which the caller may retry","schema":{"type":"string"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"502":{"description":"Bad Gateway. The gateway received an invalid response from the upstream service. Retry with exponential backoff. If persistent, escalate."},"503":{"description":"Service Unavailable. The upstream service is temporarily unavailable, for example during rolling deployment. Retry with exponential backoff."},"504":{"description":"Gateway Timeout. The upstream service did not respond within the gateway's timeout window. Retry with exponential backoff."}}}}}}
```

## Submit an ISO 20022 acmt.023 Identification Verification Request

> Submit an ISO 20022 acmt.023 identification verification request. Nexus validates, transforms, and routes the message to the Destination IPS. The asynchronous acmt.024 outcome is delivered to the Source IPS.

```json
{"openapi":"3.1.0","info":{"title":"Nexus Payments API","version":"v1"},"tags":[{"name":"ISO 20022 Messages","description":"Accepts an ISO 20022 message in XML format, prepared according to the Nexus Message Usage Guidelines. The messagePath path parameter selects the message type."}],"servers":[{"url":"https://{environment}.payments.nexus.net","description":"Nexus participant-facing API endpoint. Resolved via Nexus private DNS over the established IPsec IKEv2 tunnel and not reachable from the public Internet.","variables":{"environment":{"default":"prod","enum":["pat","prod"],"description":"Deployment environment subdomain."}}}],"security":[{"mutualTLS":[],"nexusOAuth":["payment.process"]}],"components":{"securitySchemes":{"mutualTLS":{"type":"mutualTLS","description":"Mutual TLS: the IPSO presents its X.509 client certificate on every connection, validated during the TLS handshake (fail-closed). The same certificate is the RFC 8705 binding anchor for the OAuth access token (see nexusOAuth)."}},"parameters":{"SignatureInputWithBody":{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 signature metadata for a request with a body, per the Nexus HTTP Message Signature Profile v1 (RFC 9421, RFC 9530). One dictionary member labelled `nexus` whose covered components are exactly `\"@method\" \"@authority\" \"@path\" \"@query\" \"content-type\" \"content-digest\"`, so the body is bound to the signature through its `Content-Digest`. Signature parameters, emitted in this order: `created` and `expires` (Unix seconds; `expires` = `created` + 300; the receiver rejects `created` more than ±5 minutes from its clock or a signature past `expires`), `keyid` (base64url SHA-256 thumbprint of the signer's signing public key, registered at onboarding; a missing, unknown, expired or revoked key id is rejected - never resolved to a default key), `alg` (always `rsa-pss-sha512`) and `tag` (always `nexus-v1`). The signature parameters are signed through the `@signature-params` line of the signature base. A missing, malformed or non-conforming value is rejected with AE005.","schema":{"type":"string","maxLength":512,"pattern":"^nexus=\\(\"@method\" \"@authority\" \"@path\" \"@query\" \"content-type\" \"content-digest\"\\);created=[0-9]{1,15};expires=[0-9]{1,15};keyid=\"[A-Za-z0-9_-]{43}\";alg=\"rsa-pss-sha512\";tag=\"nexus-v1\"$"}},"Signature":{"name":"Signature","in":"header","required":true,"description":"RFC 9421 signature value: one dictionary member labelled `nexus` holding an RFC 8941 byte sequence - the **standard base64** (not base64url) RSASSA-PSS signature using SHA-512 (`rsa-pss-sha512`), computed over the RFC 9421 signature base built from the components and parameters declared in `Signature-Input`. Produced with the sender's own signing private key; the receiver verifies it against the sender's registered signing public key resolved from `keyid`. With the minimum RSA-3072 key the signature is 384 bytes, i.e. 512 base64 characters. A missing, malformed or non-verifying signature is rejected with AE005.","schema":{"type":"string","minLength":520,"maxLength":1400,"pattern":"^nexus=:[A-Za-z0-9+/]+={0,2}:$"}},"ContentDigest":{"name":"Content-Digest","in":"header","required":true,"description":"RFC 9530 digest of the exact request body bytes as sent: `sha-512=:<standard base64 SHA-512>:`. Covered by the signature. The receiver recomputes the digest over the received bytes and rejects a mismatch with AE005 before verifying the signature. Only `sha-512` is accepted.","schema":{"type":"string","pattern":"^sha-512=:[A-Za-z0-9+/]{86}==:$"}}},"schemas":{"Acmt023Document":{"type":"object","properties":{"IdVrfctnReq":{"$ref":"#/components/schemas/Acmt023IdentificationVerificationRequestV04"}},"required":["IdVrfctnReq"],"xml":{"name":"Document","namespace":"urn:iso:std:iso:20022:tech:xsd:acmt.023.001.04"}},"Acmt023IdentificationVerificationRequestV04":{"type":"object","properties":{"Assgnmt":{"$ref":"#/components/schemas/Acmt023IdentificationAssignment4"},"Vrfctn":{"type":"array","items":{"$ref":"#/components/schemas/Acmt023IdentificationVerification5"}}},"required":["Assgnmt","Vrfctn"]},"Acmt023IdentificationAssignment4":{"type":"object","properties":{"MsgId":{"type":"string","minLength":35,"maxLength":35,"pattern":"[0-9]{8}NX[A-Z0-9]{4}[123][A-Z0-9]{8}[A-Z0-9]{11}X","description":"Nexus message identifier, 35 characters: YYYYMMDD + NX + message-type code + sequence(8) + sender BIC-11 + literal X."},"CreDtTm":{"type":"string","format":"date-time"},"Cretr":{"$ref":"#/components/schemas/Acmt023Party50Choice"},"Assgnr":{"$ref":"#/components/schemas/Acmt023Party50Choice"},"Assgne":{"$ref":"#/components/schemas/Acmt023Party50Choice"}},"required":["MsgId","CreDtTm","Assgnr","Assgne"]},"Acmt023Party50Choice":{"type":"object","description":"Shared by message paths whose Nexus inbound XSD restrictions differ (Party50Choice__3, Party50Choice__5, Party50Choice__6); modelled as the looser union: exactly one of the alternatives is allowed.","properties":{"Agt":{"$ref":"#/components/schemas/Acmt023BranchAndFinancialInstitutionIdentification8"},"Pty":{"$ref":"#/components/schemas/Acmt023PartyIdentification272"}},"oneOf":[{"required":["Agt"]},{"required":["Pty"]}],"minProperties":1,"maxProperties":1,"additionalProperties":false},"Acmt023BranchAndFinancialInstitutionIdentification8":{"type":"object","properties":{"FinInstnId":{"$ref":"#/components/schemas/Acmt023FinancialInstitutionIdentification23"},"BrnchId":{"$ref":"#/components/schemas/Acmt023BranchData5"}},"required":["FinInstnId"]},"Acmt023FinancialInstitutionIdentification23":{"type":"object","properties":{"BICFI":{"type":"string","pattern":"[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}"},"ClrSysMmbId":{"$ref":"#/components/schemas/Acmt023ClearingSystemMemberIdentification2"},"LEI":{"type":"string","pattern":"[A-Z0-9]{18,18}[0-9]{2,2}"},"Nm":{"type":"string","minLength":1,"maxLength":140},"PstlAdr":{"$ref":"#/components/schemas/Acmt023PostalAddress27"},"Othr":{"$ref":"#/components/schemas/Acmt023GenericFinancialIdentification1"}}},"Acmt023ClearingSystemMemberIdentification2":{"type":"object","properties":{"ClrSysId":{"$ref":"#/components/schemas/Acmt023ClearingSystemIdentification2Choice"},"MmbId":{"type":"string","minLength":1,"maxLength":35}},"required":["MmbId"]},"Acmt023ClearingSystemIdentification2Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":5}},"required":["Cd"],"additionalProperties":false},"Acmt023PostalAddress27":{"type":"object","properties":{"AdrTp":{"$ref":"#/components/schemas/Acmt023AddressType3Choice"},"CareOf":{"type":"string","minLength":1,"maxLength":140},"Dept":{"type":"string","minLength":1,"maxLength":70},"SubDept":{"type":"string","minLength":1,"maxLength":70},"StrtNm":{"type":"string","minLength":1,"maxLength":140},"BldgNb":{"type":"string","minLength":1,"maxLength":16},"BldgNm":{"type":"string","minLength":1,"maxLength":140},"Flr":{"type":"string","minLength":1,"maxLength":70},"UnitNb":{"type":"string","minLength":1,"maxLength":16},"PstBx":{"type":"string","minLength":1,"maxLength":16},"Room":{"type":"string","minLength":1,"maxLength":70},"PstCd":{"type":"string","minLength":1,"maxLength":16},"TwnNm":{"type":"string","minLength":1,"maxLength":140},"TwnLctnNm":{"type":"string","minLength":1,"maxLength":140},"DstrctNm":{"type":"string","minLength":1,"maxLength":140},"CtrySubDvsn":{"type":"string","minLength":1,"maxLength":35},"Ctry":{"type":"string","pattern":"[A-Z]{2,2}"},"AdrLine":{"type":"array","items":{"type":"string","minLength":1,"maxLength":70}}}},"Acmt023AddressType3Choice":{"type":"object","properties":{"Cd":{"type":"string","enum":["ADDR","PBOX","HOME","BIZZ","MLTO","DLVY"]},"Prtry":{"$ref":"#/components/schemas/Acmt023GenericIdentification30"}},"oneOf":[{"required":["Cd"]},{"required":["Prtry"]}],"minProperties":1,"maxProperties":1,"additionalProperties":false},"Acmt023GenericIdentification30":{"type":"object","properties":{"Id":{"type":"string","pattern":"^[a-zA-Z0-9]{4}$"},"Issr":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"},"SchmeNm":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"}},"required":["Id","Issr"],"additionalProperties":false},"Acmt023GenericFinancialIdentification1":{"type":"object","properties":{"Id":{"type":"string","minLength":1,"maxLength":35},"SchmeNm":{"$ref":"#/components/schemas/Acmt023FinancialIdentificationSchemeName1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35}},"required":["Id"]},"Acmt023FinancialIdentificationSchemeName1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Acmt023BranchData5":{"type":"object","properties":{"Id":{"type":"string","minLength":1,"maxLength":35},"LEI":{"type":"string","pattern":"[A-Z0-9]{18,18}[0-9]{2,2}"},"Nm":{"type":"string","minLength":1,"maxLength":140},"PstlAdr":{"$ref":"#/components/schemas/Acmt023PostalAddress27"}}},"Acmt023PartyIdentification272":{"type":"object","properties":{"Nm":{"type":"string","minLength":1,"maxLength":140},"PstlAdr":{"$ref":"#/components/schemas/Acmt023PostalAddress27"},"Id":{"$ref":"#/components/schemas/Acmt023Party52Choice"},"CtryOfRes":{"type":"string","pattern":"[A-Z]{2,2}"},"CtctDtls":{"$ref":"#/components/schemas/Acmt023Contact13"}}},"Acmt023Party52Choice":{"type":"object","properties":{"OrgId":{"$ref":"#/components/schemas/Acmt023OrganisationIdentification39"},"PrvtId":{"$ref":"#/components/schemas/Acmt023PersonIdentification18"}},"oneOf":[{"required":["OrgId"]},{"required":["PrvtId"]}],"minProperties":1,"maxProperties":1,"additionalProperties":false},"Acmt023OrganisationIdentification39":{"type":"object","description":"Shared by message paths whose Nexus inbound XSD restrictions differ (OrganisationIdentification39__3, OrganisationIdentification39__4); modelled as the looser union: a property is required only where every variant requires it, cardinalities and facets take the loosest bound.","properties":{"AnyBIC":{"type":"string","pattern":"^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$"},"LEI":{"type":"string","pattern":"^[A-Z0-9]{18,18}[0-9]{2,2}$"},"Othr":{"type":"array","items":{"$ref":"#/components/schemas/Acmt023GenericOrganisationIdentification3"},"minItems":0}},"additionalProperties":false},"Acmt023GenericOrganisationIdentification3":{"type":"object","description":"Shared by message paths whose Nexus inbound XSD restrictions differ (GenericOrganisationIdentification3__2, GenericOrganisationIdentification3__3); modelled as the looser union: a property is required only where every variant requires it, cardinalities and facets take the loosest bound.","properties":{"Id":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+(/[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)*)$"},"SchmeNm":{"$ref":"#/components/schemas/Acmt023OrganisationIdentificationSchemeName1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"}},"required":["Id"],"additionalProperties":false},"Acmt023OrganisationIdentificationSchemeName1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Acmt023PersonIdentification18":{"type":"object","description":"Shared by message paths whose Nexus inbound XSD restrictions differ (PersonIdentification18__3, PersonIdentification18__4); modelled as the looser union: a property is required only where every variant requires it, cardinalities and facets take the loosest bound.","properties":{"DtAndPlcOfBirth":{"$ref":"#/components/schemas/Acmt023DateAndPlaceOfBirth1"},"Othr":{"type":"array","items":{"$ref":"#/components/schemas/Acmt023GenericPersonIdentification2"},"minItems":0}},"additionalProperties":false},"Acmt023DateAndPlaceOfBirth1":{"type":"object","properties":{"BirthDt":{"type":"string","format":"date"},"PrvcOfBirth":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"},"CityOfBirth":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"},"CtryOfBirth":{"type":"string","pattern":"^[A-Z]{2,2}$"}},"required":["BirthDt","CityOfBirth","CtryOfBirth"],"additionalProperties":false},"Acmt023GenericPersonIdentification2":{"type":"object","description":"Shared by message paths whose Nexus inbound XSD restrictions differ (GenericPersonIdentification2__2, GenericPersonIdentification2__3); modelled as the looser union: a property is required only where every variant requires it, cardinalities and facets take the loosest bound.","properties":{"Id":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+(/[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)*)$"},"SchmeNm":{"$ref":"#/components/schemas/Acmt023PersonIdentificationSchemeName1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"}},"required":["Id"],"additionalProperties":false},"Acmt023PersonIdentificationSchemeName1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Acmt023Contact13":{"type":"object","properties":{"NmPrfx":{"type":"string","enum":["DOCT","MADM","MISS","MIST","MIKS"]},"Nm":{"type":"string","minLength":1,"maxLength":140},"PhneNb":{"type":"string","pattern":"\\+[0-9]{1,3}-[0-9()+\\-]{1,30}"},"MobNb":{"type":"string","pattern":"\\+[0-9]{1,3}-[0-9()+\\-]{1,30}"},"FaxNb":{"type":"string","pattern":"\\+[0-9]{1,3}-[0-9()+\\-]{1,30}"},"URLAdr":{"type":"string","minLength":1,"maxLength":2048},"EmailAdr":{"type":"string","minLength":1,"maxLength":256},"EmailPurp":{"type":"string","minLength":1,"maxLength":35},"JobTitl":{"type":"string","minLength":1,"maxLength":35},"Rspnsblty":{"type":"string","minLength":1,"maxLength":35},"Dept":{"type":"string","minLength":1,"maxLength":70},"Othr":{"type":"array","items":{"$ref":"#/components/schemas/Acmt023OtherContact1"}},"PrefrdMtd":{"type":"string","enum":["MAIL","FAXX","LETT","CELL","ONLI","PHON"]}}},"Acmt023OtherContact1":{"type":"object","properties":{"ChanlTp":{"type":"string","minLength":1,"maxLength":4},"Id":{"type":"string","minLength":1,"maxLength":128}},"required":["ChanlTp"]},"Acmt023IdentificationVerification5":{"type":"object","properties":{"Id":{"type":"string","minLength":35,"maxLength":35,"pattern":"[0-9]{8}[A-Z0-9]{11}[A-Z0-9]{11}[A-Z0-9]{5}","description":"Nexus Verification ID, 35 characters: YYYYMMDD + sending IPSO id(11) + sending PSP id(11) + sequence(5)."},"PtyAndAcctId":{"$ref":"#/components/schemas/Acmt023IdentificationInformation5"}},"required":["Id","PtyAndAcctId"]},"Acmt023IdentificationInformation5":{"type":"object","properties":{"Pty":{"$ref":"#/components/schemas/Acmt023PartyIdentification272"},"Acct":{"$ref":"#/components/schemas/Acmt023CashAccount40"},"Agt":{"$ref":"#/components/schemas/Acmt023BranchAndFinancialInstitutionIdentification8"}}},"Acmt023CashAccount40":{"type":"object","properties":{"Id":{"$ref":"#/components/schemas/Acmt023AccountIdentification4Choice"},"Prxy":{"$ref":"#/components/schemas/Acmt023ProxyAccountIdentification1"}}},"Acmt023AccountIdentification4Choice":{"type":"object","properties":{"IBAN":{"type":"string","pattern":"^[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}$"},"Othr":{"$ref":"#/components/schemas/Acmt023GenericAccountIdentification1"}},"oneOf":[{"required":["IBAN"]},{"required":["Othr"]}],"minProperties":1,"maxProperties":1,"additionalProperties":false},"Acmt023GenericAccountIdentification1":{"type":"object","properties":{"Id":{"type":"string","minLength":1,"maxLength":34,"pattern":"^(?:[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+(/[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)*)$"},"SchmeNm":{"$ref":"#/components/schemas/Acmt023AccountSchemeName1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"}},"required":["Id"],"additionalProperties":false},"Acmt023AccountSchemeName1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Acmt023ProxyAccountIdentification1":{"type":"object","properties":{"Tp":{"$ref":"#/components/schemas/Acmt023ProxyAccountType1Choice"},"Id":{"type":"string","minLength":1,"maxLength":2048}},"required":["Id"]},"Acmt023ProxyAccountType1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"ErrorApiResponse":{"type":"object","description":"Standard structured rejection body. Returned for all non-2xx responses produced by the Nexus authentication layer or the application. Gateway level errors (405, 409, 413, 429, 502, 503, 504) do NOT carry this body.\n\n#### Validation rules\n\n- All four fields are required and never `null`.\n- `statusCode`: always `RJCT`.\n- `reasonCode`: 5 characters matching `^[A-Z]{2}[0-9]{3}$`; family prefix `TE` (technical), `AE` (authentication/authorisation, enforced at authentication) or `BE` (business); one of the values enumerated in the `reasonCode` schema.\n- `name`: UPPER_SNAKE_CASE, 1–50 characters; the name paired with `reasonCode` (e.g. `TE001` ↔ `INVALID_REQUEST`).\n- `description`: 1–500 characters; MUST NOT contain PII.\n- Gateway-level errors (405, 409, 413, 429, 502, 503, 504) do not carry this body.","properties":{"statusCode":{"type":"string","description":"Business-level status code. Always RJCT (Rejected) — the structured error body is only returned for rejection cases. Successful responses use HTTP status alone (200 OK for sync, 202 Accepted for async ingress) with no structured statusCode body.","enum":["RJCT"],"maxLength":4,"minLength":4},"reasonCode":{"type":"string","description":"Categorised reason code. Three families: TE (Technical Error, e.g. TE001/TE002/TE099), AE (Authentication / Authorization Error, AE001–AE006, enforced at authentication), BE (Business Error, BE001–BE031).","enum":["TE001","TE002","TE099","AE001","AE002","AE003","AE004","AE005","AE006","BE001","BE002","BE007","BE008","BE009","BE010","BE011","BE012","BE013","BE014","BE015","BE016","BE017","BE018","BE019","BE020","BE021","BE030","BE031"],"maxLength":5,"pattern":"^[A-Z]{2}[0-9]{3}$","minLength":5},"name":{"type":"string","description":"Machine-readable error name paired with the reason code.","maxLength":50,"pattern":"^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$","minLength":1},"description":{"type":"string","description":"Human-readable error description. MUST NOT contain PII.","maxLength":500,"minLength":1}},"required":["description","name","reasonCode","statusCode"]}}},"paths":{"/v1/iso20022/acmt023":{"post":{"tags":["ISO 20022 Messages"],"summary":"Submit an ISO 20022 acmt.023 Identification Verification Request","description":"Submit an ISO 20022 acmt.023 identification verification request. Nexus validates, transforms, and routes the message to the Destination IPS. The asynchronous acmt.024 outcome is delivered to the Source IPS.","operationId":"submitAcmt023","parameters":[{"name":"Content-Type","in":"header","description":"application/xml","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"*/*","required":true,"schema":{"type":"string","default":"*/*"}},{"$ref":"#/components/parameters/SignatureInputWithBody"},{"$ref":"#/components/parameters/Signature"},{"$ref":"#/components/parameters/ContentDigest"}],"requestBody":{"description":"Raw ISO 20022 acmt.023.001.04 XML payload. Validated against the acmt.023.001.04 XSD.\n","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Acmt023Document"}}},"required":true},"responses":{"202":{"description":"Message accepted with a technical acknowledgement (HTTP 202) and stored for async processing. Not final business acceptance - failures are sent later via an ISO 20022 message (e.g. admi.002, negative acmt.024)."},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"401":{"description":"Authentication failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"405":{"description":"Method Not Allowed. The HTTP method is not supported for this endpoint. Use the correct HTTP method.","headers":{"Allow":{"description":"Permitted HTTP methods for this endpoint","schema":{"type":"string"}}}},"409":{"description":"Conflict. This request was already accepted and is still being processed. Do not retry - the outcome is delivered separately as an acmt.024."},"413":{"description":"Payload Too Large. The request body exceeds the gateway's maximum allowed size. Reduce payload size or check gateway configuration."},"415":{"description":"Unsupported Media Type. The Content-Type header does not match the media type this endpoint accepts (application/xml)."},"429":{"description":"Too Many Requests. Rate limit exceeded. The Retry-After header indicates when to retry. Back off and retry after the indicated duration.","headers":{"Retry-After":{"description":"Duration after which the caller may retry","schema":{"type":"string"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"502":{"description":"Bad Gateway. The gateway received an invalid response from the upstream service. Retry with exponential backoff. If persistent, escalate."},"503":{"description":"Service Unavailable. The upstream service is temporarily unavailable, for example during rolling deployment. Retry with exponential backoff."},"504":{"description":"Gateway Timeout. The upstream service did not respond within the gateway's timeout window. Retry with exponential backoff."}}}}}}
```

## Submit an ISO 20022 pacs.028 FI to FI Payment Status Request

> Submit an ISO 20022 pacs.028 FI to FI payment status request. Nexus validates the request and resolves the referenced UETR against its payment records. The asynchronous outcome is delivered to the Source IPS as a pacs.002 or an admi.002 message reject for technical rejections.

```json
{"openapi":"3.1.0","info":{"title":"Nexus Payments API","version":"v1"},"tags":[{"name":"ISO 20022 Messages","description":"Accepts an ISO 20022 message in XML format, prepared according to the Nexus Message Usage Guidelines. The messagePath path parameter selects the message type."}],"servers":[{"url":"https://{environment}.payments.nexus.net","description":"Nexus participant-facing API endpoint. Resolved via Nexus private DNS over the established IPsec IKEv2 tunnel and not reachable from the public Internet.","variables":{"environment":{"default":"prod","enum":["pat","prod"],"description":"Deployment environment subdomain."}}}],"security":[{"mutualTLS":[],"nexusOAuth":["payment.process"]}],"components":{"securitySchemes":{"mutualTLS":{"type":"mutualTLS","description":"Mutual TLS: the IPSO presents its X.509 client certificate on every connection, validated during the TLS handshake (fail-closed). The same certificate is the RFC 8705 binding anchor for the OAuth access token (see nexusOAuth)."}},"parameters":{"SignatureInputWithBody":{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 signature metadata for a request with a body, per the Nexus HTTP Message Signature Profile v1 (RFC 9421, RFC 9530). One dictionary member labelled `nexus` whose covered components are exactly `\"@method\" \"@authority\" \"@path\" \"@query\" \"content-type\" \"content-digest\"`, so the body is bound to the signature through its `Content-Digest`. Signature parameters, emitted in this order: `created` and `expires` (Unix seconds; `expires` = `created` + 300; the receiver rejects `created` more than ±5 minutes from its clock or a signature past `expires`), `keyid` (base64url SHA-256 thumbprint of the signer's signing public key, registered at onboarding; a missing, unknown, expired or revoked key id is rejected - never resolved to a default key), `alg` (always `rsa-pss-sha512`) and `tag` (always `nexus-v1`). The signature parameters are signed through the `@signature-params` line of the signature base. A missing, malformed or non-conforming value is rejected with AE005.","schema":{"type":"string","maxLength":512,"pattern":"^nexus=\\(\"@method\" \"@authority\" \"@path\" \"@query\" \"content-type\" \"content-digest\"\\);created=[0-9]{1,15};expires=[0-9]{1,15};keyid=\"[A-Za-z0-9_-]{43}\";alg=\"rsa-pss-sha512\";tag=\"nexus-v1\"$"}},"Signature":{"name":"Signature","in":"header","required":true,"description":"RFC 9421 signature value: one dictionary member labelled `nexus` holding an RFC 8941 byte sequence - the **standard base64** (not base64url) RSASSA-PSS signature using SHA-512 (`rsa-pss-sha512`), computed over the RFC 9421 signature base built from the components and parameters declared in `Signature-Input`. Produced with the sender's own signing private key; the receiver verifies it against the sender's registered signing public key resolved from `keyid`. With the minimum RSA-3072 key the signature is 384 bytes, i.e. 512 base64 characters. A missing, malformed or non-verifying signature is rejected with AE005.","schema":{"type":"string","minLength":520,"maxLength":1400,"pattern":"^nexus=:[A-Za-z0-9+/]+={0,2}:$"}},"ContentDigest":{"name":"Content-Digest","in":"header","required":true,"description":"RFC 9530 digest of the exact request body bytes as sent: `sha-512=:<standard base64 SHA-512>:`. Covered by the signature. The receiver recomputes the digest over the received bytes and rejects a mismatch with AE005 before verifying the signature. Only `sha-512` is accepted.","schema":{"type":"string","pattern":"^sha-512=:[A-Za-z0-9+/]{86}==:$"}}},"schemas":{"Pacs028Document":{"type":"object","properties":{"FIToFIPmtStsReq":{"$ref":"#/components/schemas/Pacs028FIToFIPaymentStatusRequestV06"}},"required":["FIToFIPmtStsReq"],"xml":{"name":"Document","namespace":"urn:iso:std:iso:20022:tech:xsd:pacs.028.001.06"}},"Pacs028FIToFIPaymentStatusRequestV06":{"type":"object","properties":{"GrpHdr":{"$ref":"#/components/schemas/Pacs028GroupHeader109"},"TxInf":{"type":"array","items":{"$ref":"#/components/schemas/Pacs028PaymentTransaction158"}}},"required":["GrpHdr"]},"Pacs028GroupHeader109":{"type":"object","properties":{"MsgId":{"type":"string","minLength":35,"maxLength":35,"pattern":"[0-9]{8}NXPS281[A-Z0-9]{8}[A-Z0-9]{11}X","description":"Nexus message identifier, 35 characters: YYYYMMDD + NX + message-type code + sequence(8) + sender BIC-11 + literal X."},"CreDtTm":{"type":"string","format":"date-time"}},"required":["MsgId","CreDtTm"]},"Pacs028PaymentTransaction158":{"type":"object","properties":{"StsReqId":{"type":"string","minLength":1,"maxLength":35},"OrgnlInstrId":{"type":"string","minLength":1,"maxLength":35},"OrgnlEndToEndId":{"type":"string","minLength":1,"maxLength":35},"OrgnlTxId":{"type":"string","minLength":1,"maxLength":35},"OrgnlUETR":{"type":"string","pattern":"[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}"},"AccptncDtTm":{"type":"string","format":"date-time"},"ClrSysRef":{"type":"string","minLength":1,"maxLength":35},"InstgAgt":{"$ref":"#/components/schemas/Pacs028BranchAndFinancialInstitutionIdentification8"},"InstdAgt":{"$ref":"#/components/schemas/Pacs028BranchAndFinancialInstitutionIdentification8"},"OrgnlTxRef":{"$ref":"#/components/schemas/Pacs028OriginalTransactionReference42"}}},"Pacs028BranchAndFinancialInstitutionIdentification8":{"type":"object","properties":{"FinInstnId":{"$ref":"#/components/schemas/Pacs028FinancialInstitutionIdentification23"},"BrnchId":{"$ref":"#/components/schemas/Pacs028BranchData5"}},"required":["FinInstnId"]},"Pacs028FinancialInstitutionIdentification23":{"type":"object","properties":{"BICFI":{"type":"string","pattern":"[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}"},"ClrSysMmbId":{"$ref":"#/components/schemas/Pacs028ClearingSystemMemberIdentification2"},"LEI":{"type":"string","pattern":"[A-Z0-9]{18,18}[0-9]{2,2}"},"Nm":{"type":"string","minLength":1,"maxLength":140},"PstlAdr":{"$ref":"#/components/schemas/Pacs028PostalAddress27"},"Othr":{"$ref":"#/components/schemas/Pacs028GenericFinancialIdentification1"}}},"Pacs028ClearingSystemMemberIdentification2":{"type":"object","properties":{"ClrSysId":{"$ref":"#/components/schemas/Pacs028ClearingSystemIdentification2Choice"},"MmbId":{"type":"string","minLength":1,"maxLength":35}},"required":["MmbId"]},"Pacs028ClearingSystemIdentification2Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":5}},"required":["Cd"],"additionalProperties":false},"Pacs028PostalAddress27":{"type":"object","properties":{"AdrTp":{"$ref":"#/components/schemas/Pacs028AddressType3Choice"},"CareOf":{"type":"string","minLength":1,"maxLength":140},"Dept":{"type":"string","minLength":1,"maxLength":70},"SubDept":{"type":"string","minLength":1,"maxLength":70},"StrtNm":{"type":"string","minLength":1,"maxLength":140},"BldgNb":{"type":"string","minLength":1,"maxLength":16},"BldgNm":{"type":"string","minLength":1,"maxLength":140},"Flr":{"type":"string","minLength":1,"maxLength":70},"UnitNb":{"type":"string","minLength":1,"maxLength":16},"PstBx":{"type":"string","minLength":1,"maxLength":16},"Room":{"type":"string","minLength":1,"maxLength":70},"PstCd":{"type":"string","minLength":1,"maxLength":16},"TwnNm":{"type":"string","minLength":1,"maxLength":140},"TwnLctnNm":{"type":"string","minLength":1,"maxLength":140},"DstrctNm":{"type":"string","minLength":1,"maxLength":140},"CtrySubDvsn":{"type":"string","minLength":1,"maxLength":35},"Ctry":{"type":"string","pattern":"[A-Z]{2,2}"},"AdrLine":{"type":"array","items":{"type":"string","minLength":1,"maxLength":70}}}},"Pacs028AddressType3Choice":{"type":"object","properties":{"Cd":{"type":"string","enum":["ADDR","PBOX","HOME","BIZZ","MLTO","DLVY"]},"Prtry":{"$ref":"#/components/schemas/Pacs028GenericIdentification30"}},"oneOf":[{"required":["Cd"]},{"required":["Prtry"]}],"minProperties":1,"maxProperties":1,"additionalProperties":false},"Pacs028GenericIdentification30":{"type":"object","properties":{"Id":{"type":"string","pattern":"^[a-zA-Z0-9]{4}$"},"Issr":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"},"SchmeNm":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"}},"required":["Id","Issr"],"additionalProperties":false},"Pacs028GenericFinancialIdentification1":{"type":"object","properties":{"Id":{"type":"string","minLength":1,"maxLength":35},"SchmeNm":{"$ref":"#/components/schemas/Pacs028FinancialIdentificationSchemeName1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35}},"required":["Id"]},"Pacs028FinancialIdentificationSchemeName1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs028BranchData5":{"type":"object","properties":{"Id":{"type":"string","minLength":1,"maxLength":35},"LEI":{"type":"string","pattern":"[A-Z0-9]{18,18}[0-9]{2,2}"},"Nm":{"type":"string","minLength":1,"maxLength":140},"PstlAdr":{"$ref":"#/components/schemas/Pacs028PostalAddress27"}}},"Pacs028OriginalTransactionReference42":{"type":"object","properties":{"IntrBkSttlmAmt":{"$ref":"#/components/schemas/Pacs028ActiveOrHistoricCurrencyAndAmount"},"Amt":{"$ref":"#/components/schemas/Pacs028AmountType4Choice"},"IntrBkSttlmDt":{"type":"string","format":"date"},"ReqdColltnDt":{"type":"string","format":"date"},"ReqdExctnDt":{"$ref":"#/components/schemas/Pacs028DateAndDateTime2Choice"},"CdtrSchmeId":{"$ref":"#/components/schemas/Pacs028PartyIdentification272"},"SttlmInf":{"$ref":"#/components/schemas/Pacs028SettlementInstruction15"},"PmtTpInf":{"$ref":"#/components/schemas/Pacs028PaymentTypeInformation27"},"PmtMtd":{"type":"string","enum":["CHK","TRF","DD","TRA"]},"RmtInf":{"$ref":"#/components/schemas/Pacs028RemittanceInformation22"},"UltmtDbtr":{"$ref":"#/components/schemas/Pacs028Party50Choice"},"Dbtr":{"$ref":"#/components/schemas/Pacs028Party50Choice"},"DbtrAcct":{"$ref":"#/components/schemas/Pacs028CashAccount40"},"DbtrAgt":{"$ref":"#/components/schemas/Pacs028BranchAndFinancialInstitutionIdentification8"},"CdtrAgt":{"$ref":"#/components/schemas/Pacs028BranchAndFinancialInstitutionIdentification8"},"Cdtr":{"$ref":"#/components/schemas/Pacs028Party50Choice"},"CdtrAcct":{"$ref":"#/components/schemas/Pacs028CashAccount40"},"UltmtCdtr":{"$ref":"#/components/schemas/Pacs028Party50Choice"},"Purp":{"$ref":"#/components/schemas/Pacs028Purpose2Choice"}}},"Pacs028ActiveOrHistoricCurrencyAndAmount":{"type":"object","properties":{"value":{"type":"number","minimum":0},"Ccy":{"type":"string","pattern":"[A-Z]{3,3}","xml":{"attribute":true}}},"required":["value","Ccy"]},"Pacs028AmountType4Choice":{"type":"object","properties":{"InstdAmt":{"$ref":"#/components/schemas/Pacs028ActiveOrHistoricCurrencyAndAmount"},"EqvtAmt":{"$ref":"#/components/schemas/Pacs028EquivalentAmount2"}},"oneOf":[{"required":["InstdAmt"]},{"required":["EqvtAmt"]}],"minProperties":1,"maxProperties":1,"additionalProperties":false},"Pacs028EquivalentAmount2":{"type":"object","properties":{"Amt":{"$ref":"#/components/schemas/Pacs028ActiveOrHistoricCurrencyAndAmount"},"CcyOfTrf":{"type":"string","pattern":"^[A-Z]{3,3}$"}},"required":["Amt","CcyOfTrf"],"additionalProperties":false},"Pacs028DateAndDateTime2Choice":{"type":"object","properties":{"Dt":{"type":"string","format":"date"},"DtTm":{"type":"string","format":"date-time","pattern":"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]{1,3})?Z?$"}},"oneOf":[{"required":["Dt"]},{"required":["DtTm"]}],"minProperties":1,"maxProperties":1,"additionalProperties":false},"Pacs028PartyIdentification272":{"type":"object","properties":{"Nm":{"type":"string","minLength":1,"maxLength":140},"PstlAdr":{"$ref":"#/components/schemas/Pacs028PostalAddress27"},"Id":{"$ref":"#/components/schemas/Pacs028Party52Choice"},"CtryOfRes":{"type":"string","pattern":"[A-Z]{2,2}"},"CtctDtls":{"$ref":"#/components/schemas/Pacs028Contact13"}}},"Pacs028Party52Choice":{"type":"object","properties":{"OrgId":{"$ref":"#/components/schemas/Pacs028OrganisationIdentification39"},"PrvtId":{"$ref":"#/components/schemas/Pacs028PersonIdentification18"}},"oneOf":[{"required":["OrgId"]},{"required":["PrvtId"]}],"minProperties":1,"maxProperties":1,"additionalProperties":false},"Pacs028OrganisationIdentification39":{"type":"object","properties":{"AnyBIC":{"type":"string","pattern":"^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$"},"LEI":{"type":"string","pattern":"^[A-Z0-9]{18,18}[0-9]{2,2}$"},"Othr":{"type":"array","items":{"$ref":"#/components/schemas/Pacs028GenericOrganisationIdentification3"},"minItems":0}},"additionalProperties":false},"Pacs028GenericOrganisationIdentification3":{"type":"object","properties":{"Id":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+(/[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)*)$"},"SchmeNm":{"$ref":"#/components/schemas/Pacs028OrganisationIdentificationSchemeName1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"}},"required":["Id"],"additionalProperties":false},"Pacs028OrganisationIdentificationSchemeName1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs028PersonIdentification18":{"type":"object","properties":{"DtAndPlcOfBirth":{"$ref":"#/components/schemas/Pacs028DateAndPlaceOfBirth1"},"Othr":{"type":"array","items":{"$ref":"#/components/schemas/Pacs028GenericPersonIdentification2"},"minItems":0}},"additionalProperties":false},"Pacs028DateAndPlaceOfBirth1":{"type":"object","properties":{"BirthDt":{"type":"string","format":"date"},"PrvcOfBirth":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"},"CityOfBirth":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"},"CtryOfBirth":{"type":"string","pattern":"^[A-Z]{2,2}$"}},"required":["BirthDt","CityOfBirth","CtryOfBirth"],"additionalProperties":false},"Pacs028GenericPersonIdentification2":{"type":"object","properties":{"Id":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+(/[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)*)$"},"SchmeNm":{"$ref":"#/components/schemas/Pacs028PersonIdentificationSchemeName1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"}},"required":["Id"],"additionalProperties":false},"Pacs028PersonIdentificationSchemeName1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs028Contact13":{"type":"object","properties":{"NmPrfx":{"type":"string","enum":["DOCT","MADM","MISS","MIST","MIKS"]},"Nm":{"type":"string","minLength":1,"maxLength":140},"PhneNb":{"type":"string","pattern":"\\+[0-9]{1,3}-[0-9()+\\-]{1,30}"},"MobNb":{"type":"string","pattern":"\\+[0-9]{1,3}-[0-9()+\\-]{1,30}"},"FaxNb":{"type":"string","pattern":"\\+[0-9]{1,3}-[0-9()+\\-]{1,30}"},"URLAdr":{"type":"string","minLength":1,"maxLength":2048},"EmailAdr":{"type":"string","minLength":1,"maxLength":256},"EmailPurp":{"type":"string","minLength":1,"maxLength":35},"JobTitl":{"type":"string","minLength":1,"maxLength":35},"Rspnsblty":{"type":"string","minLength":1,"maxLength":35},"Dept":{"type":"string","minLength":1,"maxLength":70},"Othr":{"type":"array","items":{"$ref":"#/components/schemas/Pacs028OtherContact1"}},"PrefrdMtd":{"type":"string","enum":["MAIL","FAXX","LETT","CELL","ONLI","PHON"]}}},"Pacs028OtherContact1":{"type":"object","properties":{"ChanlTp":{"type":"string","minLength":1,"maxLength":4},"Id":{"type":"string","minLength":1,"maxLength":128}},"required":["ChanlTp"]},"Pacs028SettlementInstruction15":{"type":"object","properties":{"SttlmMtd":{"type":"string","enum":["INDA","INGA","COVE","CLRG"]},"SttlmAcct":{"$ref":"#/components/schemas/Pacs028CashAccount40"},"ClrSys":{"$ref":"#/components/schemas/Pacs028ClearingSystemIdentification3Choice"}},"required":["SttlmMtd"]},"Pacs028CashAccount40":{"type":"object","properties":{"Id":{"$ref":"#/components/schemas/Pacs028AccountIdentification4Choice"},"Tp":{"$ref":"#/components/schemas/Pacs028CashAccountType2Choice"},"Ccy":{"type":"string","pattern":"[A-Z]{3,3}"},"Nm":{"type":"string","minLength":1,"maxLength":70},"Prxy":{"$ref":"#/components/schemas/Pacs028ProxyAccountIdentification1"}}},"Pacs028AccountIdentification4Choice":{"type":"object","properties":{"IBAN":{"type":"string","pattern":"^[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}$"},"Othr":{"$ref":"#/components/schemas/Pacs028GenericAccountIdentification1"}},"oneOf":[{"required":["IBAN"]},{"required":["Othr"]}],"minProperties":1,"maxProperties":1,"additionalProperties":false},"Pacs028GenericAccountIdentification1":{"type":"object","properties":{"Id":{"type":"string","minLength":1,"maxLength":34,"pattern":"^(?:[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+(/[A-Za-z0-9 ?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)*)$"},"SchmeNm":{"$ref":"#/components/schemas/Pacs028AccountSchemeName1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35,"pattern":"^(?:[A-Za-z0-9 /?:().,'+!#&%*=^_`{|}~\";@$<>\\[\\]\\\\-]+)$"}},"required":["Id"],"additionalProperties":false},"Pacs028AccountSchemeName1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs028CashAccountType2Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs028ProxyAccountIdentification1":{"type":"object","properties":{"Tp":{"$ref":"#/components/schemas/Pacs028ProxyAccountType1Choice"},"Id":{"type":"string","minLength":1,"maxLength":2048}},"required":["Id"]},"Pacs028ProxyAccountType1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs028ClearingSystemIdentification3Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":3}},"required":["Cd"],"additionalProperties":false},"Pacs028PaymentTypeInformation27":{"type":"object","properties":{"InstrPrty":{"type":"string","enum":["HIGH","NORM"]},"ClrChanl":{"type":"string","enum":["RTGS","RTNS","MPNS","BOOK"]},"SvcLvl":{"type":"array","items":{"$ref":"#/components/schemas/Pacs028ServiceLevel8Choice"}},"LclInstrm":{"$ref":"#/components/schemas/Pacs028LocalInstrument2Choice"},"SeqTp":{"type":"string","enum":["FRST","RCUR","FNAL","OOFF","RPRE"]},"CtgyPurp":{"$ref":"#/components/schemas/Pacs028CategoryPurpose1Choice"}}},"Pacs028ServiceLevel8Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs028LocalInstrument2Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":35}},"required":["Cd"],"additionalProperties":false},"Pacs028CategoryPurpose1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs028RemittanceInformation22":{"type":"object","properties":{"Ustrd":{"type":"array","items":{"type":"string","minLength":1,"maxLength":140}},"Strd":{"type":"array","items":{"$ref":"#/components/schemas/Pacs028StructuredRemittanceInformation18"}}}},"Pacs028StructuredRemittanceInformation18":{"type":"object","properties":{"RfrdDocInf":{"type":"array","items":{"$ref":"#/components/schemas/Pacs028ReferredDocumentInformation8"}},"RfrdDocAmt":{"$ref":"#/components/schemas/Pacs028RemittanceAmount4"},"CdtrRefInf":{"$ref":"#/components/schemas/Pacs028CreditorReferenceInformation3"},"Invcr":{"$ref":"#/components/schemas/Pacs028PartyIdentification272"},"Invcee":{"$ref":"#/components/schemas/Pacs028PartyIdentification272"},"TaxRmt":{"$ref":"#/components/schemas/Pacs028TaxData1"},"GrnshmtRmt":{"$ref":"#/components/schemas/Pacs028Garnishment4"},"AddtlRmtInf":{"type":"array","items":{"type":"string","minLength":1,"maxLength":140}}}},"Pacs028ReferredDocumentInformation8":{"type":"object","properties":{"Tp":{"$ref":"#/components/schemas/Pacs028DocumentType1"},"Nb":{"type":"string","minLength":1,"maxLength":35},"RltdDt":{"$ref":"#/components/schemas/Pacs028DateAndType1"},"LineDtls":{"type":"array","items":{"$ref":"#/components/schemas/Pacs028DocumentLineInformation2"}}}},"Pacs028DocumentType1":{"type":"object","properties":{"CdOrPrtry":{"$ref":"#/components/schemas/Pacs028DocumentType2Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35}},"required":["CdOrPrtry"]},"Pacs028DocumentType2Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs028DateAndType1":{"type":"object","properties":{"Tp":{"$ref":"#/components/schemas/Pacs028DateType2Choice"},"Dt":{"type":"string","format":"date"}},"required":["Tp","Dt"]},"Pacs028DateType2Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs028DocumentLineInformation2":{"type":"object","properties":{"Id":{"type":"array","items":{"$ref":"#/components/schemas/Pacs028DocumentLineIdentification1"}},"Desc":{"type":"string","minLength":1,"maxLength":2048},"Amt":{"$ref":"#/components/schemas/Pacs028RemittanceAmount4"}},"required":["Id"]},"Pacs028DocumentLineIdentification1":{"type":"object","properties":{"Tp":{"$ref":"#/components/schemas/Pacs028DocumentLineType1"},"Nb":{"type":"string","minLength":1,"maxLength":35},"RltdDt":{"type":"string","format":"date"}}},"Pacs028DocumentLineType1":{"type":"object","properties":{"CdOrPrtry":{"$ref":"#/components/schemas/Pacs028DocumentLineType1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35}},"required":["CdOrPrtry"]},"Pacs028DocumentLineType1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs028RemittanceAmount4":{"type":"object","properties":{"RmtAmtAndTp":{"type":"array","items":{"$ref":"#/components/schemas/Pacs028DocumentAmount1"}},"AdjstmntAmtAndRsn":{"type":"array","items":{"$ref":"#/components/schemas/Pacs028DocumentAdjustment1"}}}},"Pacs028DocumentAmount1":{"type":"object","properties":{"Tp":{"$ref":"#/components/schemas/Pacs028DocumentAmountType1Choice"},"Amt":{"$ref":"#/components/schemas/Pacs028ActiveOrHistoricCurrencyAndAmount"}},"required":["Tp","Amt"]},"Pacs028DocumentAmountType1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs028DocumentAdjustment1":{"type":"object","properties":{"Amt":{"$ref":"#/components/schemas/Pacs028ActiveOrHistoricCurrencyAndAmount"},"CdtDbtInd":{"type":"string","enum":["CRDT","DBIT"]},"Rsn":{"type":"string","minLength":1,"maxLength":4},"AddtlInf":{"type":"string","minLength":1,"maxLength":140}},"required":["Amt"]},"Pacs028CreditorReferenceInformation3":{"type":"object","properties":{"Tp":{"$ref":"#/components/schemas/Pacs028CreditorReferenceType3"},"Ref":{"type":"string","minLength":1,"maxLength":35}}},"Pacs028CreditorReferenceType3":{"type":"object","properties":{"CdOrPrtry":{"$ref":"#/components/schemas/Pacs028CreditorReferenceType2Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35}},"required":["CdOrPrtry"]},"Pacs028CreditorReferenceType2Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs028TaxData1":{"type":"object","properties":{"Cdtr":{"$ref":"#/components/schemas/Pacs028TaxParty1"},"Dbtr":{"$ref":"#/components/schemas/Pacs028TaxParty2"},"UltmtDbtr":{"$ref":"#/components/schemas/Pacs028TaxParty2"},"AdmstnZone":{"type":"string","minLength":1,"maxLength":35},"RefNb":{"type":"string","minLength":1,"maxLength":140},"Mtd":{"type":"string","minLength":1,"maxLength":35},"TtlTaxblBaseAmt":{"$ref":"#/components/schemas/Pacs028ActiveOrHistoricCurrencyAndAmount"},"TtlTaxAmt":{"$ref":"#/components/schemas/Pacs028ActiveOrHistoricCurrencyAndAmount"},"Dt":{"type":"string","format":"date"},"SeqNb":{"type":"number"},"Rcrd":{"type":"array","items":{"$ref":"#/components/schemas/Pacs028TaxRecord3"}}}},"Pacs028TaxParty1":{"type":"object","properties":{"TaxId":{"type":"string","minLength":1,"maxLength":35},"RegnId":{"type":"string","minLength":1,"maxLength":35},"TaxTp":{"type":"string","minLength":1,"maxLength":35}}},"Pacs028TaxParty2":{"type":"object","properties":{"TaxId":{"type":"string","minLength":1,"maxLength":35},"RegnId":{"type":"string","minLength":1,"maxLength":35},"TaxTp":{"type":"string","minLength":1,"maxLength":35},"Authstn":{"$ref":"#/components/schemas/Pacs028TaxAuthorisation1"}}},"Pacs028TaxAuthorisation1":{"type":"object","properties":{"Titl":{"type":"string","minLength":1,"maxLength":35},"Nm":{"type":"string","minLength":1,"maxLength":140}}},"Pacs028TaxRecord3":{"type":"object","properties":{"Tp":{"type":"string","minLength":1,"maxLength":35},"Ctgy":{"type":"string","minLength":1,"maxLength":35},"CtgyDtls":{"type":"string","minLength":1,"maxLength":35},"DbtrSts":{"type":"string","minLength":1,"maxLength":35},"CertId":{"type":"string","minLength":1,"maxLength":35},"FrmsCd":{"type":"string","minLength":1,"maxLength":35},"Prd":{"$ref":"#/components/schemas/Pacs028TaxPeriod3"},"TaxAmt":{"$ref":"#/components/schemas/Pacs028TaxAmount3"},"AddtlInf":{"type":"string","minLength":1,"maxLength":140}}},"Pacs028TaxPeriod3":{"type":"object","properties":{"Yr":{"type":"string"},"Tp":{"type":"string","enum":["MM01","MM02","MM03","MM04","MM05","MM06","MM07","MM08","MM09","MM10","MM11","MM12","QTR1","QTR2","QTR3","QTR4","HLF1","HLF2"]},"FrToDt":{"$ref":"#/components/schemas/Pacs028DatePeriod2"}}},"Pacs028DatePeriod2":{"type":"object","properties":{"FrDt":{"type":"string","format":"date"},"ToDt":{"type":"string","format":"date"}},"required":["FrDt","ToDt"]},"Pacs028TaxAmount3":{"type":"object","properties":{"Rate":{"type":"number"},"TaxblBaseAmt":{"$ref":"#/components/schemas/Pacs028ActiveOrHistoricCurrencyAndAmount"},"TtlAmt":{"$ref":"#/components/schemas/Pacs028ActiveOrHistoricCurrencyAndAmount"},"Dtls":{"type":"array","items":{"$ref":"#/components/schemas/Pacs028TaxRecordDetails3"}}}},"Pacs028TaxRecordDetails3":{"type":"object","properties":{"Prd":{"$ref":"#/components/schemas/Pacs028TaxPeriod3"},"Amt":{"$ref":"#/components/schemas/Pacs028ActiveOrHistoricCurrencyAndAmount"}},"required":["Amt"]},"Pacs028Garnishment4":{"type":"object","properties":{"Tp":{"$ref":"#/components/schemas/Pacs028GarnishmentType1"},"Grnshee":{"$ref":"#/components/schemas/Pacs028PartyIdentification272"},"GrnshmtAdmstr":{"$ref":"#/components/schemas/Pacs028PartyIdentification272"},"RefNb":{"type":"string","minLength":1,"maxLength":140},"Dt":{"type":"string","format":"date"},"RmtdAmt":{"$ref":"#/components/schemas/Pacs028ActiveOrHistoricCurrencyAndAmount"},"FmlyMdclInsrncInd":{"type":"boolean"},"MplyeeTermntnInd":{"type":"boolean"}},"required":["Tp"]},"Pacs028GarnishmentType1":{"type":"object","properties":{"CdOrPrtry":{"$ref":"#/components/schemas/Pacs028GarnishmentType1Choice"},"Issr":{"type":"string","minLength":1,"maxLength":35}},"required":["CdOrPrtry"]},"Pacs028GarnishmentType1Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"Pacs028Party50Choice":{"type":"object","properties":{"Pty":{"$ref":"#/components/schemas/Pacs028PartyIdentification272"}},"required":["Pty"],"additionalProperties":false},"Pacs028Purpose2Choice":{"type":"object","properties":{"Cd":{"type":"string","minLength":1,"maxLength":4}},"required":["Cd"],"additionalProperties":false},"ErrorApiResponse":{"type":"object","description":"Standard structured rejection body. Returned for all non-2xx responses produced by the Nexus authentication layer or the application. Gateway level errors (405, 409, 413, 429, 502, 503, 504) do NOT carry this body.\n\n#### Validation rules\n\n- All four fields are required and never `null`.\n- `statusCode`: always `RJCT`.\n- `reasonCode`: 5 characters matching `^[A-Z]{2}[0-9]{3}$`; family prefix `TE` (technical), `AE` (authentication/authorisation, enforced at authentication) or `BE` (business); one of the values enumerated in the `reasonCode` schema.\n- `name`: UPPER_SNAKE_CASE, 1–50 characters; the name paired with `reasonCode` (e.g. `TE001` ↔ `INVALID_REQUEST`).\n- `description`: 1–500 characters; MUST NOT contain PII.\n- Gateway-level errors (405, 409, 413, 429, 502, 503, 504) do not carry this body.","properties":{"statusCode":{"type":"string","description":"Business-level status code. Always RJCT (Rejected) — the structured error body is only returned for rejection cases. Successful responses use HTTP status alone (200 OK for sync, 202 Accepted for async ingress) with no structured statusCode body.","enum":["RJCT"],"maxLength":4,"minLength":4},"reasonCode":{"type":"string","description":"Categorised reason code. Three families: TE (Technical Error, e.g. TE001/TE002/TE099), AE (Authentication / Authorization Error, AE001–AE006, enforced at authentication), BE (Business Error, BE001–BE031).","enum":["TE001","TE002","TE099","AE001","AE002","AE003","AE004","AE005","AE006","BE001","BE002","BE007","BE008","BE009","BE010","BE011","BE012","BE013","BE014","BE015","BE016","BE017","BE018","BE019","BE020","BE021","BE030","BE031"],"maxLength":5,"pattern":"^[A-Z]{2}[0-9]{3}$","minLength":5},"name":{"type":"string","description":"Machine-readable error name paired with the reason code.","maxLength":50,"pattern":"^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$","minLength":1},"description":{"type":"string","description":"Human-readable error description. MUST NOT contain PII.","maxLength":500,"minLength":1}},"required":["description","name","reasonCode","statusCode"]}}},"paths":{"/v1/iso20022/pacs028":{"post":{"tags":["ISO 20022 Messages"],"summary":"Submit an ISO 20022 pacs.028 FI to FI Payment Status Request","description":"Submit an ISO 20022 pacs.028 FI to FI payment status request. Nexus validates the request and resolves the referenced UETR against its payment records. The asynchronous outcome is delivered to the Source IPS as a pacs.002 or an admi.002 message reject for technical rejections.","operationId":"submitPacs028","parameters":[{"name":"Content-Type","in":"header","description":"application/xml","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"*/*","required":true,"schema":{"type":"string","default":"*/*"}},{"$ref":"#/components/parameters/SignatureInputWithBody"},{"$ref":"#/components/parameters/Signature"},{"$ref":"#/components/parameters/ContentDigest"}],"requestBody":{"description":"Raw ISO 20022 pacs.028.001.06 XML payload. Validated against the pacs.028.001.06 XSD.\n","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Pacs028Document"}}},"required":true},"responses":{"202":{"description":"Message accepted with a technical acknowledgement (HTTP 202) and stored for async processing. Not final business acceptance - failures are sent later via an ISO 20022 message (e.g. admi.002, negative pacs.002)."},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"401":{"description":"Authentication failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"405":{"description":"Method Not Allowed. The HTTP method is not supported for this endpoint. Use the correct HTTP method.","headers":{"Allow":{"description":"Permitted HTTP methods for this endpoint","schema":{"type":"string"}}}},"409":{"description":"Conflict. This request was already accepted and is still being processed. Do not retry - use a pacs.028 status request to check the outcome."},"413":{"description":"Payload Too Large. The request body exceeds the gateway's maximum allowed size. Reduce payload size or check gateway configuration."},"415":{"description":"Unsupported Media Type. The Content-Type header does not match the media type this endpoint accepts (application/xml)."},"429":{"description":"Too Many Requests. Rate limit exceeded. The Retry-After header indicates when to retry. Back off and retry after the indicated duration.","headers":{"Retry-After":{"description":"Duration after which the caller may retry","schema":{"type":"string"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"502":{"description":"Bad Gateway. The gateway received an invalid response from the upstream service. Retry with exponential backoff. If persistent, escalate."},"503":{"description":"Service Unavailable. The upstream service is temporarily unavailable, for example during rolling deployment. Retry with exponential backoff."},"504":{"description":"Gateway Timeout. The upstream service did not respond within the gateway's timeout window. Retry with exponential backoff."}}}}}}
```

## Submit an ISO 20022 admi.004 System Event (downtime) Notification

> Submit an ISO 20022 admi.004 System Event Notification announcing a Direct Participant IPS's own downtime (EvtCd one of PIDN, SIDN, UIDN, EIDN). Nexus validates the message schema synchronously and returns 202 Accepted, then processes the body asynchronously. Any post-202 rejection is delivered out-of-band as an admi.002 to the IPS's admi.002 endpoint registered with Nexus. Transport security requires mutual TLS: Nexus validates the caller's client certificate against the IPS certificate registered with Nexus; the IPS identity is taken from that certificate, so no response endpoint is supplied on the request.

```json
{"openapi":"3.1.0","info":{"title":"Nexus Payments API","version":"v1"},"tags":[{"name":"ISO 20022 Messages","description":"Accepts an ISO 20022 message in XML format, prepared according to the Nexus Message Usage Guidelines. The messagePath path parameter selects the message type."}],"servers":[{"url":"https://{environment}.payments.nexus.net","description":"Nexus participant-facing API endpoint. Resolved via Nexus private DNS over the established IPsec IKEv2 tunnel and not reachable from the public Internet.","variables":{"environment":{"default":"prod","enum":["pat","prod"],"description":"Deployment environment subdomain."}}}],"security":[{"mutualTLS":[],"nexusOAuth":["admin.downtime.notify"]}],"components":{"securitySchemes":{"mutualTLS":{"type":"mutualTLS","description":"Mutual TLS: the IPSO presents its X.509 client certificate on every connection, validated during the TLS handshake (fail-closed). The same certificate is the RFC 8705 binding anchor for the OAuth access token (see nexusOAuth)."}},"parameters":{"SignatureInputWithBody":{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 signature metadata for a request with a body, per the Nexus HTTP Message Signature Profile v1 (RFC 9421, RFC 9530). One dictionary member labelled `nexus` whose covered components are exactly `\"@method\" \"@authority\" \"@path\" \"@query\" \"content-type\" \"content-digest\"`, so the body is bound to the signature through its `Content-Digest`. Signature parameters, emitted in this order: `created` and `expires` (Unix seconds; `expires` = `created` + 300; the receiver rejects `created` more than ±5 minutes from its clock or a signature past `expires`), `keyid` (base64url SHA-256 thumbprint of the signer's signing public key, registered at onboarding; a missing, unknown, expired or revoked key id is rejected - never resolved to a default key), `alg` (always `rsa-pss-sha512`) and `tag` (always `nexus-v1`). The signature parameters are signed through the `@signature-params` line of the signature base. A missing, malformed or non-conforming value is rejected with AE005.","schema":{"type":"string","maxLength":512,"pattern":"^nexus=\\(\"@method\" \"@authority\" \"@path\" \"@query\" \"content-type\" \"content-digest\"\\);created=[0-9]{1,15};expires=[0-9]{1,15};keyid=\"[A-Za-z0-9_-]{43}\";alg=\"rsa-pss-sha512\";tag=\"nexus-v1\"$"}},"Signature":{"name":"Signature","in":"header","required":true,"description":"RFC 9421 signature value: one dictionary member labelled `nexus` holding an RFC 8941 byte sequence - the **standard base64** (not base64url) RSASSA-PSS signature using SHA-512 (`rsa-pss-sha512`), computed over the RFC 9421 signature base built from the components and parameters declared in `Signature-Input`. Produced with the sender's own signing private key; the receiver verifies it against the sender's registered signing public key resolved from `keyid`. With the minimum RSA-3072 key the signature is 384 bytes, i.e. 512 base64 characters. A missing, malformed or non-verifying signature is rejected with AE005.","schema":{"type":"string","minLength":520,"maxLength":1400,"pattern":"^nexus=:[A-Za-z0-9+/]+={0,2}:$"}},"ContentDigest":{"name":"Content-Digest","in":"header","required":true,"description":"RFC 9530 digest of the exact request body bytes as sent: `sha-512=:<standard base64 SHA-512>:`. Covered by the signature. The receiver recomputes the digest over the received bytes and rejects a mismatch with AE005 before verifying the signature. Only `sha-512` is accepted.","schema":{"type":"string","pattern":"^sha-512=:[A-Za-z0-9+/]{86}==:$"}}},"schemas":{"Admi004Document":{"type":"object","properties":{"SysEvtNtfctn":{"$ref":"#/components/schemas/Admi004SystemEventNotificationV02"}},"required":["SysEvtNtfctn"],"xml":{"name":"Document","namespace":"urn:iso:std:iso:20022:tech:xsd:admi.004.001.02"}},"Admi004SystemEventNotificationV02":{"type":"object","properties":{"EvtInf":{"$ref":"#/components/schemas/Admi004Event2"}},"required":["EvtInf"]},"Admi004Event2":{"type":"object","properties":{"EvtCd":{"type":"string","pattern":"[a-zA-Z0-9]{1,4}","minLength":1,"maxLength":4},"EvtParam":{"type":"array","items":{"type":"string","minLength":1,"maxLength":35}},"EvtDesc":{"type":"string","minLength":1,"maxLength":1000},"EvtTm":{"type":"string","format":"date-time"}},"required":["EvtCd","EvtTm"]},"ErrorApiResponse":{"type":"object","description":"Standard structured rejection body. Returned for all non-2xx responses produced by the Nexus authentication layer or the application. Gateway level errors (405, 409, 413, 429, 502, 503, 504) do NOT carry this body.\n\n#### Validation rules\n\n- All four fields are required and never `null`.\n- `statusCode`: always `RJCT`.\n- `reasonCode`: 5 characters matching `^[A-Z]{2}[0-9]{3}$`; family prefix `TE` (technical), `AE` (authentication/authorisation, enforced at authentication) or `BE` (business); one of the values enumerated in the `reasonCode` schema.\n- `name`: UPPER_SNAKE_CASE, 1–50 characters; the name paired with `reasonCode` (e.g. `TE001` ↔ `INVALID_REQUEST`).\n- `description`: 1–500 characters; MUST NOT contain PII.\n- Gateway-level errors (405, 409, 413, 429, 502, 503, 504) do not carry this body.","properties":{"statusCode":{"type":"string","description":"Business-level status code. Always RJCT (Rejected) — the structured error body is only returned for rejection cases. Successful responses use HTTP status alone (200 OK for sync, 202 Accepted for async ingress) with no structured statusCode body.","enum":["RJCT"],"maxLength":4,"minLength":4},"reasonCode":{"type":"string","description":"Categorised reason code. Three families: TE (Technical Error, e.g. TE001/TE002/TE099), AE (Authentication / Authorization Error, AE001–AE006, enforced at authentication), BE (Business Error, BE001–BE031).","enum":["TE001","TE002","TE099","AE001","AE002","AE003","AE004","AE005","AE006","BE001","BE002","BE007","BE008","BE009","BE010","BE011","BE012","BE013","BE014","BE015","BE016","BE017","BE018","BE019","BE020","BE021","BE030","BE031"],"maxLength":5,"pattern":"^[A-Z]{2}[0-9]{3}$","minLength":5},"name":{"type":"string","description":"Machine-readable error name paired with the reason code.","maxLength":50,"pattern":"^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$","minLength":1},"description":{"type":"string","description":"Human-readable error description. MUST NOT contain PII.","maxLength":500,"minLength":1}},"required":["description","name","reasonCode","statusCode"]}}},"paths":{"/v1/iso20022/admi004":{"post":{"tags":["ISO 20022 Messages"],"summary":"Submit an ISO 20022 admi.004 System Event (downtime) Notification","description":"Submit an ISO 20022 admi.004 System Event Notification announcing a Direct Participant IPS's own downtime (EvtCd one of PIDN, SIDN, UIDN, EIDN). Nexus validates the message schema synchronously and returns 202 Accepted, then processes the body asynchronously. Any post-202 rejection is delivered out-of-band as an admi.002 to the IPS's admi.002 endpoint registered with Nexus. Transport security requires mutual TLS: Nexus validates the caller's client certificate against the IPS certificate registered with Nexus; the IPS identity is taken from that certificate, so no response endpoint is supplied on the request.","operationId":"submitAdmi004","parameters":[{"name":"Content-Type","in":"header","description":"application/xml","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"*/*","required":true,"schema":{"type":"string","default":"*/*"}},{"$ref":"#/components/parameters/SignatureInputWithBody"},{"$ref":"#/components/parameters/Signature"},{"$ref":"#/components/parameters/ContentDigest"}],"requestBody":{"description":"Raw ISO 20022 admi.004.001.02 XML payload. Validated against the admi.004.001.02 XSD.\n","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Admi004Document"}}},"required":true},"responses":{"202":{"description":"Message accepted with a technical acknowledgement (HTTP 202) and stored for async processing. Not final business acceptance - failures are sent later via an ISO 20022 message (e.g. admi.002)."},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"401":{"description":"Authentication failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"405":{"description":"Method Not Allowed. The HTTP method is not supported for this endpoint. Use the correct HTTP method.","headers":{"Allow":{"description":"Permitted HTTP methods for this endpoint","schema":{"type":"string"}}}},"413":{"description":"Payload Too Large. The request body exceeds the gateway's maximum allowed size. Reduce payload size or check gateway configuration."},"415":{"description":"Unsupported Media Type. The Content-Type header does not match the media type this endpoint accepts (application/xml)."},"429":{"description":"Too Many Requests. Rate limit exceeded. The Retry-After header indicates when to retry. Back off and retry after the indicated duration.","headers":{"Retry-After":{"description":"Duration after which the caller may retry","schema":{"type":"string"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"502":{"description":"Bad Gateway. The gateway received an invalid response from the upstream service. Retry with exponential backoff. If persistent, escalate."},"503":{"description":"Service Unavailable. The upstream service is temporarily unavailable, for example during rolling deployment. Retry with exponential backoff."},"504":{"description":"Gateway Timeout. The upstream service did not respond within the gateway's timeout window. Retry with exponential backoff."}}}}}}
```

## Submit an ISO 20022 admi.002 Message Reject

> Submit an ISO 20022 admi.002 Message Reject to technically reject a message Nexus previously delivered to the IPSO (post-202) that failed the IPSO's Nexus Usage Guideline, correlation, or internal-processing validations. Correlation back to the rejected message is via RltdRef/Ref. Nexus validates the message schema synchronously and returns 202 Accepted, then processes the body asynchronously. Transport security requires mutual TLS and a certificate-bound OAuth 2.0 bearer token; the message additionally carries an RFC 9421 message signature in the Signature-Input, Signature and Content-Digest headers.

```json
{"openapi":"3.1.0","info":{"title":"Nexus Payments API","version":"v1"},"tags":[{"name":"ISO 20022 Messages","description":"Accepts an ISO 20022 message in XML format, prepared according to the Nexus Message Usage Guidelines. The messagePath path parameter selects the message type."}],"servers":[{"url":"https://{environment}.payments.nexus.net","description":"Nexus participant-facing API endpoint. Resolved via Nexus private DNS over the established IPsec IKEv2 tunnel and not reachable from the public Internet.","variables":{"environment":{"default":"prod","enum":["pat","prod"],"description":"Deployment environment subdomain."}}}],"security":[{"mutualTLS":[],"nexusOAuth":["payment.process"]}],"components":{"securitySchemes":{"mutualTLS":{"type":"mutualTLS","description":"Mutual TLS: the IPSO presents its X.509 client certificate on every connection, validated during the TLS handshake (fail-closed). The same certificate is the RFC 8705 binding anchor for the OAuth access token (see nexusOAuth)."}},"parameters":{"SignatureInputWithBody":{"name":"Signature-Input","in":"header","required":true,"description":"RFC 9421 signature metadata for a request with a body, per the Nexus HTTP Message Signature Profile v1 (RFC 9421, RFC 9530). One dictionary member labelled `nexus` whose covered components are exactly `\"@method\" \"@authority\" \"@path\" \"@query\" \"content-type\" \"content-digest\"`, so the body is bound to the signature through its `Content-Digest`. Signature parameters, emitted in this order: `created` and `expires` (Unix seconds; `expires` = `created` + 300; the receiver rejects `created` more than ±5 minutes from its clock or a signature past `expires`), `keyid` (base64url SHA-256 thumbprint of the signer's signing public key, registered at onboarding; a missing, unknown, expired or revoked key id is rejected - never resolved to a default key), `alg` (always `rsa-pss-sha512`) and `tag` (always `nexus-v1`). The signature parameters are signed through the `@signature-params` line of the signature base. A missing, malformed or non-conforming value is rejected with AE005.","schema":{"type":"string","maxLength":512,"pattern":"^nexus=\\(\"@method\" \"@authority\" \"@path\" \"@query\" \"content-type\" \"content-digest\"\\);created=[0-9]{1,15};expires=[0-9]{1,15};keyid=\"[A-Za-z0-9_-]{43}\";alg=\"rsa-pss-sha512\";tag=\"nexus-v1\"$"}},"Signature":{"name":"Signature","in":"header","required":true,"description":"RFC 9421 signature value: one dictionary member labelled `nexus` holding an RFC 8941 byte sequence - the **standard base64** (not base64url) RSASSA-PSS signature using SHA-512 (`rsa-pss-sha512`), computed over the RFC 9421 signature base built from the components and parameters declared in `Signature-Input`. Produced with the sender's own signing private key; the receiver verifies it against the sender's registered signing public key resolved from `keyid`. With the minimum RSA-3072 key the signature is 384 bytes, i.e. 512 base64 characters. A missing, malformed or non-verifying signature is rejected with AE005.","schema":{"type":"string","minLength":520,"maxLength":1400,"pattern":"^nexus=:[A-Za-z0-9+/]+={0,2}:$"}},"ContentDigest":{"name":"Content-Digest","in":"header","required":true,"description":"RFC 9530 digest of the exact request body bytes as sent: `sha-512=:<standard base64 SHA-512>:`. Covered by the signature. The receiver recomputes the digest over the received bytes and rejects a mismatch with AE005 before verifying the signature. Only `sha-512` is accepted.","schema":{"type":"string","pattern":"^sha-512=:[A-Za-z0-9+/]{86}==:$"}}},"schemas":{"Admi002Document":{"type":"object","description":"ISO 20022 admi.002.001.01 Message Reject document.","properties":{"admi.002.001.01":{"$ref":"#/components/schemas/Admi002MessageReject"}},"required":["admi.002.001.01"],"xml":{"name":"Document","namespace":"urn:iso:std:iso:20022:tech:xsd:admi.002.001.01"}},"Admi002MessageReject":{"type":"object","properties":{"RltdRef":{"type":"object","description":"Reference of the rejected message, used to correlate back to the original message.","properties":{"Ref":{"type":"string","minLength":1,"maxLength":35}},"required":["Ref"]},"Rsn":{"type":"object","properties":{"RjctgPtyRsn":{"type":"string","minLength":1,"maxLength":35},"RjctnDtTm":{"type":"string","format":"date-time"},"RsnDesc":{"type":"string","minLength":1,"maxLength":350}},"required":["RjctgPtyRsn"]}},"required":["RltdRef","Rsn"]},"ErrorApiResponse":{"type":"object","description":"Standard structured rejection body. Returned for all non-2xx responses produced by the Nexus authentication layer or the application. Gateway level errors (405, 409, 413, 429, 502, 503, 504) do NOT carry this body.\n\n#### Validation rules\n\n- All four fields are required and never `null`.\n- `statusCode`: always `RJCT`.\n- `reasonCode`: 5 characters matching `^[A-Z]{2}[0-9]{3}$`; family prefix `TE` (technical), `AE` (authentication/authorisation, enforced at authentication) or `BE` (business); one of the values enumerated in the `reasonCode` schema.\n- `name`: UPPER_SNAKE_CASE, 1–50 characters; the name paired with `reasonCode` (e.g. `TE001` ↔ `INVALID_REQUEST`).\n- `description`: 1–500 characters; MUST NOT contain PII.\n- Gateway-level errors (405, 409, 413, 429, 502, 503, 504) do not carry this body.","properties":{"statusCode":{"type":"string","description":"Business-level status code. Always RJCT (Rejected) — the structured error body is only returned for rejection cases. Successful responses use HTTP status alone (200 OK for sync, 202 Accepted for async ingress) with no structured statusCode body.","enum":["RJCT"],"maxLength":4,"minLength":4},"reasonCode":{"type":"string","description":"Categorised reason code. Three families: TE (Technical Error, e.g. TE001/TE002/TE099), AE (Authentication / Authorization Error, AE001–AE006, enforced at authentication), BE (Business Error, BE001–BE031).","enum":["TE001","TE002","TE099","AE001","AE002","AE003","AE004","AE005","AE006","BE001","BE002","BE007","BE008","BE009","BE010","BE011","BE012","BE013","BE014","BE015","BE016","BE017","BE018","BE019","BE020","BE021","BE030","BE031"],"maxLength":5,"pattern":"^[A-Z]{2}[0-9]{3}$","minLength":5},"name":{"type":"string","description":"Machine-readable error name paired with the reason code.","maxLength":50,"pattern":"^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$","minLength":1},"description":{"type":"string","description":"Human-readable error description. MUST NOT contain PII.","maxLength":500,"minLength":1}},"required":["description","name","reasonCode","statusCode"]}}},"paths":{"/v1/iso20022/admi002":{"post":{"tags":["ISO 20022 Messages"],"summary":"Submit an ISO 20022 admi.002 Message Reject","description":"Submit an ISO 20022 admi.002 Message Reject to technically reject a message Nexus previously delivered to the IPSO (post-202) that failed the IPSO's Nexus Usage Guideline, correlation, or internal-processing validations. Correlation back to the rejected message is via RltdRef/Ref. Nexus validates the message schema synchronously and returns 202 Accepted, then processes the body asynchronously. Transport security requires mutual TLS and a certificate-bound OAuth 2.0 bearer token; the message additionally carries an RFC 9421 message signature in the Signature-Input, Signature and Content-Digest headers.","operationId":"submitAdmi002","parameters":[{"name":"Content-Type","in":"header","description":"application/xml","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"*/*","required":true,"schema":{"type":"string","default":"*/*"}},{"$ref":"#/components/parameters/SignatureInputWithBody"},{"$ref":"#/components/parameters/Signature"},{"$ref":"#/components/parameters/ContentDigest"}],"requestBody":{"description":"Raw ISO 20022 admi.002.001.01 XML payload. Validated against the admi.002.001.01 XSD.\n","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Admi002Document"}}},"required":true},"responses":{"202":{"description":"Message accepted with a technical acknowledgement (HTTP 202) and stored for async processing. Not final business acceptance - failures are sent later via an ISO 20022 message (e.g. admi.002)."},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"401":{"description":"Authentication failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"405":{"description":"Method Not Allowed. The HTTP method is not supported for this endpoint. Use the correct HTTP method.","headers":{"Allow":{"description":"Permitted HTTP methods for this endpoint","schema":{"type":"string"}}}},"409":{"description":"Conflict. This request was already accepted and is still being processed. Do not retry - the original submission is treated as accepted."},"413":{"description":"Payload Too Large. The request body exceeds the gateway's maximum allowed size. Reduce payload size or check gateway configuration."},"415":{"description":"Unsupported Media Type. The Content-Type header does not match the media type this endpoint accepts (application/xml)."},"429":{"description":"Too Many Requests. Rate limit exceeded. The Retry-After header indicates when to retry. Back off and retry after the indicated duration.","headers":{"Retry-After":{"description":"Duration after which the caller may retry","schema":{"type":"string"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"502":{"description":"Bad Gateway. The gateway received an invalid response from the upstream service. Retry with exponential backoff. If persistent, escalate."},"503":{"description":"Service Unavailable. The upstream service is temporarily unavailable, for example during rolling deployment. Retry with exponential backoff."},"504":{"description":"Gateway Timeout. The upstream service did not respond within the gateway's timeout window. Retry with exponential backoff."}}}}}}
```
