{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/citi/main/json-schema/citi-message-request-schema.json", "title": "MessageRequest", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/citi-non-payment-messages-api-openapi.yml#/components/schemas/Message-Request", "type": "object", "properties": { "message_type": { "type": "string", "description": "Message Type provided by the customer \n- RFR - Request for Refund (camt.056) \n- RRFR - Response to Request for Refund(camt.029) \n- PCR - Payment Confirmation Request \n- RPCR - Response to Payment Confirmation Request \n- RFP - Request for Payment (pain.013) \n- RRFP - Response to Request for Payment (pain.014) \n- RRFICS - Response to Request for Information Compliance", "enum": [ "RFR", "RRFR", "PCR", "RPCR", "RFP", "RRFP", "RRFICS" ], "title": "message_type" }, "message": { "oneOf": [ { "$ref": "#/$defs/Final-Response-To-Request-For-Refund" }, { "$ref": "#/$defs/Final-Response-To-Payment-Confirmation-Request" }, { "$ref": "#/$defs/Response-To-Request-For-Payment" }, { "$ref": "#/$defs/Outgoing-Request-For-Refund" }, { "$ref": "#/$defs/Response-To-Request-For-Information-Compliance" } ] } }, "required": [ "message_type", "message" ], "$defs": { "Address": { "type": "string", "maxLength": 70, "minLength": 1, "maxItems": 7, "description": "Address", "title": "Address" }, "Debtor-Payment": { "type": "object", "title": "DebtorPayment", "writeOnly": true, "properties": { "name": { "minLength": 1, "maxLength": 140, "type": "string", "description": "Name of Debtor that may be passed for payment initiation", "title": "name" }, "street_name": { "minLength": 1, "maxLength": 70, "type": "string", "description": "Street Name of Debtor that may be passed for payment initiation", "title": "street_name" }, "building_number": { "minLength": 1, "maxLength": 16, "type": "string", "description": "Building number of Debtor that may be passed for payment initiation", "title": "building_number" }, "postal_code": { "minLength": 1, "maxLength": 16, "type": "string", "description": "Postal code of Debtor that may be passed for payment initiation", "title": "postal_code" }, "city": { "minLength": 1, "maxLength": 35, "type": "string", "description": "City of Debtor that may be passed for payment initiation", "title": "city" }, "state": { "minLength": 1, "maxLength": 35, "type": "string", "description": "State of Debtor that may be passed for payment initiation", "title": "state" }, "country": { "type": "string", "description": "Country of Debtor that may be passed for payment initiation", "pattern": "^[A-Z]{2,2}$", "title": "country" }, "address_lines": { "type": "array", "minItems": 1, "maxItems": 7, "description": "Debtor Address lines which is array of 7 lines and each line has maximum 70 characters which may be passed for payment initiation", "items": { "$ref": "#/$defs/Address" }, "title": "address_lines" } } }, "Debtor-Refund": { "type": "object", "title": "DebtorRefund", "properties": { "name": { "minLength": 1, "maxLength": 140, "type": "string", "description": "Name of Debtor to be passed for Refund payment \n- For United States debtor.name field is mandatory for decision code IPAY and PECR \n- For Thailand debtor.name field is not applicable \n- For Brazil debtor.name field is not applicable \n- For SEPA debtor.name field is not applicable", "title": "name" }, "street_name": { "minLength": 1, "maxLength": 70, "type": "string", "description": "Street Name of Debtor to be passed for Refund payment \n- For United States debtor.street_name field is optional \n- For Thailand debtor.street_name field is not applicable \n- For Brazil debtor.street_name field is not applicable \n- For SEPA debtor.street_name field is not applicable", "title": "street_name" }, "building_number": { "minLength": 1, "maxLength": 16, "type": "string", "description": "Building number of Debtor to be passed for Refund payment \n- For United States debtor.building_number field is optional \n- For Thailand debtor.building_number field is not applicable \n- For Brazil debtor.building_number field is not applicable \n- For SEPA debtor.building_number field is not applicable", "title": "building_number" }, "postal_code": { "minLength": 1, "maxLength": 16, "type": "string", "description": "Postal code of Debtor to be passed for Refund payment \n- For United States debtor.postal_code field is optional \n- For Thailand debtor.postal_code field is not applicable \n- For Brazil debtor.postal_code field is not applicable \n- For SEPA debtor.postal_code field is not applicable", "title": "postal_code" }, "city": { "minLength": 1, "maxLength": 35, "type": "string", "description": "City of Debtor to be passed for Refund payment \n- For United States debtor.city field is optional \n- For Thailand debtor.city field is not applicable \n- For Brazil debtor.city field is not applicable \n- For SEPA debtor.city field is not applicable", "title": "city" }, "state": { "minLength": 1, "maxLength": 35, "type": "string", "description": "State of Debtor to be passed for Refund payment \n- For United States debtor.state field is optional \n- For Thailand debtor.state field is not applicable \n- For Brazil debtor.state field is not applicable \n- For SEPA debtor.state field is not applicable", "title": "state" }, "country": { "type": "string", "description": "Country of Debtor to be passed for Refund payment \n- For United States debtor.country field is optional \n- For Thailand debtor.country field is not applicable \n- For Brazil debtor.country field is not applicable \n- For SEPA debtor.country field is not applicable", "pattern": "^[A-Z]{2,2}$", "title": "country" }, "address_lines": { "type": "array", "minItems": 1, "maxItems": 7, "description": "Debtor Address lines which is array of 7 lines and each line has maximum 70 characters which is to be passed for Refund payment \n- For United States debtor.address_lines field is optional \n- For Thailand debtor.address_lines field is not applicable \n- For Brazil debtor.address_lines field is not applicable \n- For SEPA debtor.address_lines field is not applicable", "items": { "$ref": "#/$defs/Address" }, "title": "address_lines" } } }, "Field-level-Responses-For-RRFICS": { "type": "object", "description": "“FieldlevelResponsesForRRFICS”", "title": "Field-level-Responses-For-RRFICS", "properties": { "field_id": { "type": "string", "description": "Field ID.", "minLength": 1, "maxLength": 16, "title": "field_id" }, "field_name": { "type": "string", "description": "Field name.", "minLength": 1, "maxLength": 70, "title": "field_name" }, "field_value": { "type": "string", "description": "Field value.", "minLength": 1, "maxLength": 70, "title": "field_value" }, "individual": { "type": "object", "description": "Input type selected as Individual. \n When individual is selected any one of the fields displayed under individual object are mandatory", "title": "individual", "properties": { "name": { "type": "string", "description": "Name of individual.\n If selected input type = individual, at least 1 field from individual object must be provided.", "minLength": 1, "maxLength": 140, "title": "name" }, "street_name": { "type": "string", "description": "Street Name of individual. \n If selected input type = individual, at least 1 field from individual object must be provided.", "minLength": 1, "maxLength": 70, "title": "street_name" }, "building_number": { "type": "string", "description": "Building Number of individual. \n If selected input type = individual, at least 1 field from individual object must be provided.", "minLength": 1, "maxLength": 16, "title": "building_number" }, "postal_code": { "type": "string", "description": "Postal Code of individual. \n If selected input type = individual, at least 1 field from individual object must be provided.", "minLength": 1, "maxLength": 16, "title": "postal_code" }, "city": { "type": "string", "description": "City of individual. \n If selected input type = individual, at least 1 field from individual object must be provided.", "minLength": 1, "maxLength": 35, "title": "city" }, "state": { "type": "string", "description": "State of individual. \n If selected input type = individual, at least 1 field from individual object must be provided.", "minLength": 1, "maxLength": 35, "title": "state" }, "country": { "type": "string", "description": "Country of individual. \n If selected input type = individual, at least 1 field from individual object must be provided.", "minLength": 1, "maxLength": 2, "title": "country" }, "birth_date": { "type": "string", "format": "date", "description": "Birth Date of individual \n Format is YYYY-MM-DD. \n If selected input type = individual, at least 1 field from individual object must be provided.", "title": "birth_date" }, "city_of_birth": { "type": "string", "description": "City Of Birth of individual. \n If selected input type = individual, at least 1 field from individual object must be provided.", "minLength": 1, "maxLength": 35, "title": "city_of_birth" }, "country_of_birth": { "type": "string", "description": "Country Of Birth of individual. \n If selected input type = individual, at least 1 field from individual object must be provided.", "minLength": 1, "maxLength": 2, "title": "country_of_birth" }, "nationality": { "type": "string", "description": "Nationality of individual. \n If selected input type = individual, at least 1 field from individual object must be provided.", "minLength": 1, "maxLength": 35, "title": "nationality" }, "occupation": { "type": "string", "description": "Occupation of individual. \n If selected input type = individual, at least 1 field from individual object must be provided.", "minLength": 1, "maxLength": 35, "title": "occupation" }, "country_of_residence": { "type": "string", "description": "Country of Residence of individual. \n If selected input type = individual, at least 1 field from individual object must be provided.", "minLength": 1, "maxLength": 2, "title": "country_of_residence" } } }, "entity": { "type": "object", "description": "Input type selected as Entity. When Entity is selected any one of the fields displayed under entity object are mandatory", "title": "entity", "properties": { "name": { "type": "string", "description": "Name of Entity. \n If selected input type = entity, at least 1 field from entity object must be provided.", "minLength": 1, "maxLength": 140, "title": "name" }, "street_name": { "type": "string", "description": "Street Name of Entity. \n If selected input type = entity, at least 1 field from entity object must be provided.", "minLength": 1, "maxLength": 70, "title": "street_name" }, "building_number": { "type": "string", "description": "Building Number of Entity. \n If selected input type = entity, at least 1 field from entity object must be provided.", "minLength": 1, "maxLength": 16, "title": "building_number" }, "postal_code": { "type": "string", "description": "Postal Code of Entity. \n If selected input type = entity, at least 1 field from entity object must be provided.", "minLength": 1, "maxLength": 16, "title": "postal_code" }, "city": { "type": "string", "description": "City of Entity. \n If selected input type = entity, at least 1 field from entity object must be provided.", "minLength": 1, "maxLength": 35, "title": "city" }, "state": { "type": "string", "description": "State of Entity. \n If selected input type = entity, at least 1 field from entity object must be provided.", "minLength": 1, "maxLength": 35, "title": "state" }, "country": { "type": "string", "description": "Country of Entity. \n If selected input type = entity, at least 1 field from entity object must be provided.", "minLength": 1, "maxLength": 2, "title": "country" }, "line_of_business": { "type": "string", "description": "Line of business of Entity. \n If selected input type = entity, at least 1 field from entity object must be provided.", "minLength": 1, "maxLength": 35, "title": "line_of_business" }, "ownership_details": { "type": "string", "description": "Ownership Details of entity. \n If selected input type = entity, at least 1 field from entity object must be provided.", "minLength": 1, "maxLength": 560, "title": "ownership_details" }, "global_presence": { "type": "string", "description": "Global Presence of entity. \n If selected input type = entity, at least 1 field from entity object must be provided.", "minLength": 1, "maxLength": 140, "title": "global_presence" }, "website": { "type": "string", "description": "Website of entity. \n If selected input type = entity, at least 1 field from entity object must be provided.", "minLength": 1, "maxLength": 140, "title": "website" }, "registration_number": { "type": "string", "description": "Registration Number of entity. \n If selected input type = entity, at least 1 field from entity object must be provided.", "minLength": 1, "maxLength": 35, "title": "registration_number" }, "country_of_incorporation": { "type": "string", "description": "Country of incorporation of entity. \n If selected input type = entity, at least 1 field from entity object must be provided.", "minLength": 1, "maxLength": 2, "title": "country_of_incorporation" } } }, "vessel": { "type": "object", "description": "Input type selected as vessel. When vessel is selected any one of the fields displayed under vessel object are mandatory", "title": "vessel", "properties": { "name": { "type": "string", "description": "Name of vessel. \n If selected input type = vessel, at least 1 field from vessel object must be provided.", "minLength": 1, "maxLength": 140, "title": "name" }, "flag": { "type": "string", "description": "Flag of vessel. \n If selected input type = vessel, at least 1 field from vessel object must be provided.", "minLength": 1, "maxLength": 35, "title": "flag" }, "ownership_details": { "type": "string", "description": "Ownership Details of vessel. \n If selected input type = vessel, at least 1 field from vessel object must be provided.", "minLength": 1, "maxLength": 560, "title": "ownership_details" }, "imo_number": { "type": "string", "description": "Imo Number of vessel. \n If selected input type = vessel, at least 1 field from vessel object must be provided.", "minLength": 1, "maxLength": 35, "title": "imo_number" }, "gross_registered_tonnage": { "type": "string", "description": "Gross registered tonnage of vessel. \n If selected input type = vessel, at least 1 field from vessel object must be provided.", "minLength": 1, "maxLength": 10, "title": "gross_registered_tonnage" }, "vessel_type": { "type": "string", "description": "Type of vessel. \n If selected input type = vessel, at least 1 field from vessel object must be provided.", "minLength": 1, "maxLength": 35, "title": "vessel_type" } } }, "aircraft": { "type": "object", "description": "Input type selected as aircraft. When aircraft is selected any one of the fields displayed under aircraft object are mandatory", "title": "aircraft", "properties": { "call_sign": { "type": "string", "description": "Call Sign of aircraft. \n If selected input type = aircraft, at least 1 field from aircraft object must be provided.", "minLength": 1, "maxLength": 140, "title": "call_sign" }, "flag": { "type": "string", "description": "Flag of aircraft. \n If selected input type = aircraft, at least 1 field from aircraft object must be provided.", "minLength": 1, "maxLength": 35, "title": "flag" }, "ownership_details": { "type": "string", "description": "Ownership Details of aircraft. \n If selected input type = aircraft, at least 1 field from aircraft object must be provided.", "minLength": 1, "maxLength": 560, "title": "ownership_details" }, "msn_number": { "type": "string", "description": "Msn Number of aircraft. \n If selected input type = aircraft, at least 1 field from aircraft object must be provided.", "minLength": 1, "maxLength": 35, "title": "msn_number" }, "model": { "type": "string", "description": "Model of aircraft. \n If selected input type = aircraft, at least 1 field from aircraft object must be provided.", "minLength": 1, "maxLength": 35, "title": "model" }, "operator": { "type": "string", "description": "Operator of aircraft. \n If selected input type = aircraft, at least 1 field from aircraft object must be provided.", "minLength": 1, "maxLength": 35, "title": "operator" } } } } }, "Final-Response-To-Payment-Confirmation-Request": { "type": "object", "title": "FinalResponseToPaymentConfirmationRequest", "description": "Outgoing Response to Payment Confirmation Request", "properties": { "status": { "type": "object", "title": "status", "properties": { "date_time": { "type": "string", "format": "date-time", "description": "UTC (YYYY-MM-DDTHH:MM:SS.sssZ) date time", "title": "date_time" }, "code": { "type": "string", "description": "ISO 20022 message status code", "enum": [ "ACSC", "RJCT" ], "title": "code" }, "description": { "type": "string", "description": "Status code description \n- ACSC - Accepted \n- RJCT - Rejected", "minLength": 1, "maxLength": 105, "title": "description" } }, "required": [ "date_time", "code", "description" ] }, "reasons": { "type": "object", "title": "reasons", "properties": { "code": { "type": "string", "description": "Reason code (mandatory when status is rejected) \n- For US RPCR, client need to pass reason.code only AC02,AC03,AC04,AC06,AC11,AC13,AC14,AG01,AG03,AM02,AM04,AM09,AM12,AM13,AM14,NARR \n- For Thailand RPCR, client need to pass reason.code only AM09 or NARR \n- For SEPA RPCR, client need to pass reason.code only AM05,AC01,AC04,AC06,RR04,AG01,MS03,MS02", "enum": [ "AC02", "AC03", "AC04", "AC06", "AC11", "AC13", "AC14", "AG01", "AG03", "AM02", "AM04", "AM09", "AM12", "AM13", "AM14", "NARR", "AM05", "AC01", "RR04", "MS02", "MS03" ], "title": "code" }, "description": { "type": "string", "description": "Reason code description \n - AC02- Debtor account number invalid or missing \n - AC03- Creditor account number invalid or missing \n- AC04- Account number specified has been closed on the bank of account’s books \n- AC06- Account specified is blocked,prohibiting posting of transactions against it \n- AC11- Creditor account currency is invalid or missing \n- AC13- Debtor account type invalid \n- AC14- Creditor account type invalid \n- AG01- Transaction forbidden on this type of account (formerly NoAgreement) \n- AG03- Transaction type not supported / authorized on this account \n- AM02- Specific transaction/message amount is greater than allowed maximum \n- AM04- Amount of funds available to cover specified message amount is insufficient \n- AM09- Amount received is not the amount agreed or expected \n- AM12- Amount is invalid or missing \n- AM13- Transaction amount exceeds limits set by clearing system \n- AM14- Transaction amount exceeds limits agreed between bank and client \n- NARR- Put the description as per clearing guideline for NARR (if reasons.code is NARR, reasons.decription is mandatory) \n- AM05- Duplication \n- AC01- Incorrect Account Number \n- RR04- Regulatory Reason \n- MS03- Not Specified Reason Agent Generated \n- MS02- Not Specified Reason Customer Generated", "minLength": 1, "maxLength": 105, "title": "description" } } } }, "required": [ "status" ] }, "Final-Response-To-Request-For-Refund": { "type": "object", "title": "FinalResponseToRequestForRefund", "description": "Outgoing/Incoming Response to Request for Refund", "properties": { "case_id": { "type": "string", "description": "Case Id received from clearing", "minLength": 1, "maxLength": 35, "title": "case_id" }, "decision_code": { "type": "string", "description": "Acceptance or Rejection of return of funds. Only the below 3 codes are applicable \n- IPAY - Acceptance to Return the payment \n- RJCR - Decline to Return the payment \n- PECR - Partially Executed Cancellation Return", "enum": [ "ACDA", "ACNR", "ACVA", "CHRG", "CNCL", "CONF", "CVAA", "CWFW", "FTNA", "ICOV", "IDUP", "IPAY", "IPYI", "MCOV", "MODI", "MWFW", "PDCR", "PECR", "PURP", "RJCR", "RJNR", "RJVA", "SMTC", "SMTI", "UWFW", "BIAS", "IDNE", "IVCR", "INFO", "NINF", "PDNG" ], "title": "decision_code" }, "reasons": { "type": "object", "title": "reasons", "properties": { "code": { "type": "string", "description": "Code of Transaction reasons \n- If decision_code = RJCR,reasons.code is mandatory for ResponseToRequest-For-Refund ", "enum": [ "AC04", "ADAC", "AGNT", "AM04", "ARDT", "ARPL", "CUST", "LEGL", "NARR", "NOAS", "NOOR", "PTNA", "RQDA", "WSEQ", "IDMN", "ACLR", "AEXR", "ARFR", "ARJR", "PATE", "RR04", "RCAR", "RCNR", "RCPR", "URTP" ], "title": "code" }, "description": { "type": "string", "description": "Reason code description (e.g., Debtor account is invalid.). \n- For reasons.code = NARR this field is mandatory", "minLength": 1, "maxLength": 105, "title": "description" } } }, "method": { "type": "string", "description": "Method type \n- MPNS - for ACH payment \n- RTGS - for FedWire \n- RTNS - for CHIPS \n- RT1 - for SEPA IP payments", "readOnly": true, "enum": [ "MPNS", "RTGS", "RTNS", "RT1" ], "title": "method" }, "interbank_settlement_date": { "type": "string", "description": "YYYY-MM-DD Intended interbank settlement date", "format": "date", "readOnly": true, "title": "interbank_settlement_date" }, "instructed_amount": { "type": "number", "description": "Instructed amount for partial acceptance of return request \n- Mandatory for ResponseToRequest-For-Refund with decision code as PECR.", "minimum": 0.01, "maximum": 1000000000000000, "title": "instructed_amount" }, "instructed_currency": { "type": "string", "description": "Instructed currency for partial acceptance of return request \n- Mandatory for ResponseToRequest-For-Refund with decision code as PECR", "enum": [ "USD", "EUR", "AUD", "ARS", "BRL", "HKD", "CNY" ], "title": "instructed_currency" }, "instruction_id": { "writeOnly": true, "type": "string", "description": "Unique Instruction id on return payment initiation", "minLength": 1, "maxLength": 35, "title": "instruction_id" }, "end_to_end_id": { "writeOnly": true, "type": "string", "description": "Unique end to end id on return payment initiation", "minLength": 1, "maxLength": 35, "title": "end_to_end_id" }, "country": { "writeOnly": true, "description": "ISO 3166 Alpha-2 code for the non pay message country. \n- This field is optional for US \n- This field is mandatory for SEPA", "type": "string", "default": "US", "enum": [ "US", "IE", "DE", "AT", "BE", "FI", "FR", "GR", "IT", "LU", "NL", "PT", "ES", "SK", "AU", "AR", "BR", "HK", "BG" ], "title": "country" }, "network": { "type": "string", "readOnly": true, "enum": [ "RTP", "FDN" ], "description": "Financial market infrastructure or clearing system (e.g., RTP Network in the United States) \n- RTP for TCH \n- FDN for FedNow", "title": "network" }, "debtor": { "$ref": "#/$defs/Debtor-Refund" }, "ultimate_debtor": { "$ref": "#/$defs/Ultimate-Debtor-Refund" }, "status": { "type": "object", "title": "status", "readOnly": true, "properties": { "date_time": { "type": "string", "format": "date-time", "description": "UTC (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) \n- Date time, \n-, status change date time", "title": "date_time" }, "code": { "type": "string", "description": "ISO 20022 message status code", "enum": [ "RCVD", "RJCT", "PDNG" ], "title": "code" }, "description": { "type": "string", "description": "Status code description \n- RJCT - Rejected \n- RCVD - Received \n - PDNG - Pending", "minLength": 1, "maxLength": 256, "title": "description" }, "reasons": { "type": "object", "title": "reasons", "readOnly": true, "properties": { "code": { "type": "string", "description": "Reason code (applicable when message is rejected)", "maxLength": 4, "title": "code" }, "description": { "type": "string", "description": "Reason code description (e.g., Debtor account is invalid.)", "minLength": 1, "maxLength": 256, "title": "description" } } } }, "required": [ "date_time", "code", "description" ] }, "return_id": { "type": "string", "readOnly": true, "description": "If other FI wants to return funds outside of RTP, the unique identifier of the transaction used to return the funds must be included in this field \n - If via ACH, Trace Number must be populated \n - If via FedWire -- IMAD must be populated \n- If via CHIPS -- System Sequence Number (SSN) must be populated", "minLength": 1, "maxLength": 35, "title": "return_id" } }, "required": [ "case_id", "decision_code", "end_to_end_id" ] }, "Outgoing-Request-For-Refund": { "type": "object", "title": "OutgoingRequestForRefund", "description": "Outgoing Request For Refund", "properties": { "reasons": { "type": "object", "title": "reasons", "properties": { "code": { "type": "string", "description": "Code of Transaction reasons \n- For US RTP the applicable reason.code are (AC03,AM09,CUST,DUPL,FRAD,FRTR,TECH,UPAY) \n- For AU the applicable reason.code are (DUPL,AGNT,CURR,CUST,UPAY,CUTA,TECH,FRAD) \n- DUPL DuplicatePayment \n- BIAS BatchInstructionAlreadySettled \n- DRTP DuplicationRequestToPay \n- WNTB WarrantyBreach \n- MD06 RefundRequestByEndCustomer \n- UAPA UnauthorizedPayment \n- PAID TransactionAlreadyPaid \n- SVNR ServiceNotRendered \n- SYAD RequestToSettlementSystemAdministrator \n- ENUE EndUserError \n- NARR Narrative \n- INCR InvalidCancellationRequest \n- BE16 InvalidDebtorIdentificationCode \n- COVR CoverCancelledOrReturned \n- CURR IncorrectCurrency \n- CUTA CancelUponUnableToApply \n- DT01 InvalidDate \n- FRNA ForwardToNextAgent \n- INDM IndemnityRequired \n- MODT ModifiedTransaction \n- AC03 InvalidCreditorAccountNumber \n- AM09 WrongAmount \n- CUST RequestedByCustomerDUPL \n- FRAD FraudulentOrigin \n- FRTR FinalResponse \n- TECH TechnicalProblem \n- UPAY UnduePayment \n- AC02 InvalidDebtorAccountNumber \n- AGNT IncorrectAgent", "enum": [ "AC03", "AM09", "CUST", "DUPL", "FRAD", "FRTR", "TECH", "UPAY", "UAPA", "AGNT", "CURR", "CUTA", "AC02", "BE16", "COVR", "DT01", "FRNA", "INDM", "MODT", "PAID", "SVNR", "SYAD", "ENUE", "NARR", "INCR", "BIAS", "DRTP", "WNTB", "MD06" ], "title": "code" }, "description": { "type": "string", "description": "Description of Transaction reasons. \n- For RFP warranty claim, the following codes/ warranty component may be used.The client may populate the code and warranty component, OR code, comma, free form text \n - N: No Legitimate Purpose \n- F: Part of Fraudulent Scheme to Induce Payment \n- H: Harassing \n- U: Otherwise Unlawful", "minLength": 1, "maxLength": 105, "title": "description" } }, "required": [ "code" ] }, "country": { "writeOnly": true, "description": "The ISO 3166 Alpha-2 code for the non-payment message country should correspond to the originator’s payment initiation country code. \n- This field is optional for US \n- This field is mandatory for SEPA", "type": "string", "default": "US", "enum": [ "US", "IE", "DE", "AT", "BE", "FI", "FR", "GR", "IT", "LU", "NL", "PT", "ES", "SK", "GB", "AU", "IN", "AR", "BR", "HK", "BG" ], "title": "country" } } }, "Response-To-Request-For-Information-Compliance": { "title": "Response-To-Request-For-Information-Compliance", "type": "object", "description": "Response to Request for Information Compliance", "properties": { "rrfics": { "type": "object", "description": "Response to Request for Information Compliance", "title": "rrfics", "properties": { "alert_id": { "type": "string", "description": "RFI Alert ID.", "minLength": 1, "maxLength": 16, "title": "alert_id" }, "request_id": { "type": "string", "description": "RFI Request ID. ", "minLength": 1, "maxLength": 16, "title": "request_id" }, "response_date_time": { "type": "string", "format": "date-time", "description": "RFI Response Date Time.", "title": "response_date_time" }, "purpose_of_transaction": { "type": "string", "description": "Purpose Of Transaction.", "minLength": 1, "maxLength": 140, "title": "purpose_of_transaction" }, "additional_details": { "type": "string", "description": "Additional Details.", "minLength": 1, "maxLength": 140, "title": "additional_details" }, "fieldlevel_responses": { "type": "array", "items": { "$ref": "#/$defs/Field-level-Responses-For-RRFICS" }, "description": " This block will contain 3 fields (id, name,value) and at least 1 field from the input type for which response is provided.", "maxItems": 30, "title": "fieldlevel_responses" } }, "required": [ "alert_id", "request_id", "response_date_time" ] } }, "required": [ "uetr" ] }, "Response-To-Request-For-Payment": { "type": "object", "title": "ResponseToRequestForPayment", "description": "Response to Request for Payment", "properties": { "decision_code": { "type": "string", "description": "Acceptance or Rejection of request for payment \n- ACTC - Acceptance to make requested payment \n- RJCT - Decline to pay requested amount", "enum": [ "ACTC", "RJCT" ], "title": "decision_code" }, "end_to_end_id": { "maxLength": 35, "minLength": 1, "pattern": "^(?!\\s*$).+", "type": "string", "description": "Unique End to End ID of Response to Request for Payment", "title": "end_to_end_id" }, "accepted_amount": { "type": "number", "minimum": 0.01, "maximum": 1000000000000000, "description": "Amount to be paid from Request for Payment.Indicates if Instructed amount in Payment request will be paid, or different amount.If Different amount not allowed by Payment Request, this field must carry Instructed amount \n- Mandatory if message.decision_code = ACTC", "title": "accepted_amount" }, "accepted_currency": { "type": "string", "description": "ISO 4217 code for the accepted currency \n- Mandatory if message.decision_code = ACTC", "enum": [ "USD" ], "title": "accepted_currency" }, "scheduled_exec_date": { "type": "string", "format": "date", "description": "Date payment is expected to be made.Format is YYYY-MM-DD \n- Mandatory if message.decision_code = ACTC", "title": "scheduled_exec_date" }, "reasons": { "type": "object", "title": "reasons", "properties": { "code": { "type": "string", "description": "Code of Transaction reasons \n - Mandatory if message.decision_code = RJCT", "enum": [ "AC06", "AG01", "AG03", "AM09", "AM14", "BE04", "BE07", "CH11", "CUST", "DS04", "MD07", "NARR", "SL12" ], "title": "code" }, "description": { "type": "string", "description": "Description of Transaction reasons \n- Mandatory if message.reasons.code = NARR", "minLength": 1, "maxLength": 105, "title": "description" } } }, "debtor": { "$ref": "#/$defs/Debtor-Payment" }, "ultimate_debtor": { "$ref": "#/$defs/Ultimate-Debtor-Payment" }, "status": { "type": "object", "title": "status", "readOnly": true, "properties": { "date_time": { "type": "string", "format": "date-time", "description": "UTC (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) \n- Status change date time", "title": "date_time" }, "code": { "type": "string", "description": "ISO 20022 message status code", "enum": [ "RCVD", "RJCT", "PDNG" ], "title": "code" }, "description": { "type": "string", "description": "Status code description \n- RCVD - Received \n - RJCT - Rejected \n- PDNG - Pending", "minLength": 1, "maxLength": 256, "title": "description" }, "reasons": { "type": "object", "title": "reasons", "readOnly": true, "properties": { "code": { "type": "string", "description": "Reason code (applicable when message is rejected)", "maxLength": 4, "title": "code" }, "description": { "type": "string", "description": "Reason code description (e.g., Debtor account is invalid.)", "minLength": 1, "maxLength": 256, "title": "description" } } } }, "required": [ "date_time", "code", "description" ] } }, "required": [ "decision_code", "end_to_end_id", "payment_information_id" ] }, "Ultimate-Debtor-Payment": { "type": "object", "title": "UltimateDebtorPayment", "writeOnly": true, "properties": { "name": { "minLength": 1, "maxLength": 140, "type": "string", "description": "Name of Ultimate Debtor that may be passed for payment initiation", "title": "name" }, "street_name": { "minLength": 1, "maxLength": 70, "type": "string", "description": "Street Name of Ultimate Debtor that may be passed for payment initiation", "title": "street_name" }, "building_number": { "minLength": 1, "maxLength": 16, "type": "string", "description": "Building number of Ultimate Debtor that may be passed for payment initiation", "title": "building_number" }, "postal_code": { "minLength": 1, "maxLength": 16, "type": "string", "description": "Postal code of Ultimate Debtor that may be passed for payment initiation", "title": "postal_code" }, "city": { "minLength": 1, "maxLength": 35, "type": "string", "description": "City of Ultimate Debtor that may be passed for payment initiation", "title": "city" }, "state": { "minLength": 1, "maxLength": 35, "type": "string", "description": "State of Ultimate Debtor that may be passed for payment initiation", "title": "state" }, "country": { "type": "string", "description": "Country of Ultimate Debtor that may be passed for payment initiation", "pattern": "^[A-Z]{2,2}$", "title": "country" }, "address_lines": { "type": "array", "minItems": 1, "maxItems": 7, "description": "Ultimate Debtor Address lines which is array of 7 lines and each line has maximum 70 characters which may be passed for payment initiation", "items": { "$ref": "#/$defs/Address" }, "title": "address_lines" } } }, "Ultimate-Debtor-Refund": { "type": "object", "title": "UltimateDebtorRefund", "properties": { "name": { "minLength": 1, "maxLength": 140, "type": "string", "description": "Name of Ultimate Debtor to be passed for Refund payment \n- For United States ultimate_debtor.name field is optional \n- For Thailand ultimatedebtor.name field is not applicable \n- For Brazil ultimatedebtor.name field is not applicable \n- For SEPA ultimate_debtor.name field is not applicable", "title": "name" }, "street_name": { "minLength": 1, "maxLength": 70, "type": "string", "description": "Street Name of Ultimate Debtor to be passed for Refund payment \n- For United States ultimate_debtor.street_name field is optional \n- For Thailand ultimatedebtor.street_name field is not applicable \n- For Brazil ultimatedebtor.street_name field is not applicable \n- For SEPA ultimate_debtor.street_name field is not applicable", "title": "street_name" }, "building_number": { "minLength": 1, "maxLength": 16, "type": "string", "description": "Building number of Ultimate Debtor to be passed for Refund payment \n- For United States ultimate_debtor.building_number field is optional \n- For Thailand ultimatedebtor.building_number field is not applicable \n- For Brazil ultimatedebtor.building_number field is not applicable \n- For SEPA ultimate_debtor.building_number field is not applicable", "title": "building_number" }, "postal_code": { "minLength": 1, "maxLength": 16, "type": "string", "description": "Postal code of Ultimate Debtor to be passed for Refund payment \n- For United States ultimate_debtor.postal_code field is optional\n- For Thailand ultimatedebtor.postal_code field is not applicable \n- For Brazil ultimatedebtor.postal_code field is not applicable \n- For SEPA ultimate_debtor.postal_code field is not applicable", "title": "postal_code" }, "city": { "minLength": 1, "maxLength": 35, "type": "string", "description": "City of Ultimate Debtor to be passed for Refund payment \n- For United States ultimate_debtor.city field is optional \n- For Thailand ultimatedebtor.city field is not applicable \n- For Brazil ultimatedebtor.city field is not applicable \n- For SEPA ultimate_debtor.city field is not applicable", "title": "city" }, "state": { "minLength": 1, "maxLength": 35, "type": "string", "description": "State of Ultimate Debtor to be passed for Refund payment \n- For United States ultimate_debtor.state field is optional \n- For Thailand ultimatedebtor.state field is not applicable \n- For Brazil ultimatedebtor.state field is not applicable \n- For SEPA ultimate_debtor.state field is not applicable", "title": "state" }, "country": { "type": "string", "description": "Country of Ultimate Debtor to be passed for Refund payment \n- For United States ultimate_debtor.country field is optional \n- For Thailand ultimatedebtor.country field is not applicable \n- For Brazil ultimatedebtor.country field is not applicable \n- For SEPA ultimate_debtor.country field is not applicable", "pattern": "^[A-Z]{2,2}$", "title": "country" }, "address_lines": { "type": "array", "minItems": 1, "maxItems": 7, "description": "Ultimate Debtor Address lines which is array of 7 lines and each line has maximum 70 characters which is to be passed for Refund payment \n- For United States ultimate_debtor.address_lines field is optional \n- For Thailand ultimatedebtor.address_lines field is not applicable \n- For Brazil ultimatedebtor.address_lines field is not applicable \n- For SEPA ultimate_debtor.address_lines field is not applicable", "items": { "$ref": "#/$defs/Address" }, "title": "address_lines" } } } } }