ClearBank

CHAPS

CHAPS

ClearBank accounts support inbound and outbound CHAPS payments. As CHAPS is the UK’s high value payment scheme, there is no amount limit associated with inbound or outbound CHAPS payments. However, you can only send or return CHAPS payments between 08:00 – 17:00 Monday to Friday (excluding UK public holidays).

The latest versions of the CHAPS endpoints support the new ISO20022 payment message formats. See FIN to ISO20022 field mapping for guidance on how the previous MT numbered field values map to the new ISO20022 XML tags.

CHAPS validation

ElementTypeValidationDescription
namestringmaxLength: 140
minLength: 1
pattern: [0-9a-zA-Z/\-\?:\(\)\.,'\+ !#$%&\*=^_`\{\|\}~";<>@\[\\\]]+
Also known as Account Holder Name
This the Creditor’s name.
If max length exceeds 35 characters, this will be truncated before sending to scheme.
referencestringmaxLength: 35
minLength: 0
pattern: [0-9a-zA-Z/\-\?:\(\)\.,'\+ !#$%&\*=^_`\{\|\}~";<>@\[\\\]]+
Also known as the Payment Reference
This is the Payment reference under remittance information.

The character set defined by the pattern for the name and reference fields includes all SWIFT allowed characters. These are alphanumeric (uppercase and lowercase) and the special characters shown in this table:

Special characterDescriptionSpecial characterDescription
!Exclamation mark|Pipe
#Hash}Right curly bracket
$Dollar sign~Tilde
%Percent"Double straight quote
&Ampersand(Left parenthesis
'Single straight quote)Right parenthesis
*Asterisk,Comma
+Plus sign:Colon
-Hyphen;Semicolon
/Forward slash<Left angle bracket
=Equals sign>Right angle bracket
?Question mark@At sign
^Caret[Left square bracket
_Underscore\Backslash
`Backtick]Right square bracket
{Left curly bracket

Send a CHAPS payment

postpayments/chaps/v4/customer-payments

This endpoint will send a CHAPS customer payment (pacs.008).

Parameters

  • Authorization string, header, Required

    Your API token retrieved from the ClearBank portal.

  • DigitalSignature string, header, Required

    Signed hash of the body of the request. The hash is signed by your private key.

  • X-Request-Id string, header, Required

    A unique identifier for the request.

Request Payload (application/json)

  • instructionIdentification string, Required

    Unique identification, as assigned by you, to unambiguously identify the payment instruction.

    Minimum length
    1
    Maximum length
    35
    Pattern
    ^[0-9a-zA-Z/\-\?:\(\)\.,'\+ !#$%&\*=^_`\{\|\}~";<>@\[\\\]]+$
  • endToEndIdentification string, Required

    Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain.

    Minimum length
    1
    Maximum length
    35
    Pattern
    ^[0-9a-zA-Z/\-\?:\(\)\.,'\+ ]+$
  • instructedAmount object, Required

    Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.

  • sourceAccount object, Required

    The ClearBank account that will be debited based on the successful completion of the payment instruction. You need to include EITHER the iban field OR the schemeName and identification fields in this object.

  • debtorAccount object, Required

    Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction. You need to include EITHER the iban field OR the schemeName and identification fields in this object.

  • debtor object, Required
  • creditorAccount object, Required

    Party is owed an amount of money as the (ultimate) creditor. You need to include EITHER the iban field OR the schemeName and identification fields in this object.

  • creditor object, Required
  • purpose string

    Underlying reason for the payment transaction, as published in an external purpose code list.

    Enum array
    Deposit, IntraCompanyPayment, IntraPartyPayment, AgriculturalTransfer, CommercialPayment, PurchaseSaleOfGoodsAndServices, SupplierPayment, CharityPayment, CompensationPayment, PropertyLoanRepayment, PropertyLoanSettlement, PaymentOfInsuranceClaim, LoanRepayment, TradeSettlementPayment, PaymentOfFees, Gift, InvoicePayment, ForeignExchange, Savings, TaxPayment, Utilities, LotteryPayment, PropertyCompletionPayment, PropertyDeposit, PropertyLoanDisbursement, PropertyLoanRefinancing
  • categoryPurpose string

    Category purpose, in a proprietary form.

    Enum array
    TradeSettlementPayment, PersonToPersonPayment, GovernmentPayment, IntraCompanyPayment, Loan, OtherPayment, SupplierPayment, TaxPayment, Trade, TreasuryPayment
  • remittanceInformation object

    Information supplied to enable the matching of an entry with the items that the transfer is intended to settle, such as commercial invoices in an accounts' receivable system.

request

{
"instructionIdentification": "string",
"endToEndIdentification": "string",
"instructedAmount": {
"amount": 0,
"currency": "GBP"
},
"sourceAccount": {
"iban": "string",
"schemeName": "Other",
"proprietary": "SortcodeAccountNumber",
"identification": "01020301234567"
},
"debtorAccount": {
"iban": "string",
"schemeName": "Other",
"proprietary": "SortcodeAccountNumber",
"identification": "01020301234567"
},
"debtor": {
"name": "string",
"postalAddress": {
"buildingNumber": "string",
"buildingName": "string",
"streetName": "string",
"townName": "string",
"country": "string",
"postCode": "string"
},
"lei": "string"
},
"creditorAccount": {
"iban": "string",
"schemeName": "Other",
"proprietary": "SortcodeAccountNumber",
"identification": "01020301234567"
},
"creditor": {
"name": "string",
"postalAddress": {
"buildingNumber": "string",
"buildingName": "string",
"streetName": "string",
"townName": "string",
"country": "string",
"postCode": "string"
},
"lei": "string"
},
"purpose": "Deposit",
"categoryPurpose": "TradeSettlementPayment",
"remittanceInformation": {
"creditorReferenceInformation": "string"
}
}
Code copied

Response (application/json)

  • 202 Accepted
  • 400 Bad Request

Accepted

{
"paymentId": "472e651e-5a1e-424d-8098-23858bf03ad7"
}
Code copied

Bad Request

{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}
Code copied

Associated Webhooks

Return a CHAPS payment

post/payments/chaps/v4/return-payments

Use this endpoint to return a CHAPS payment.

If you need to return a payment, you should do so by the next working day. The same operating hours apply for CHAPS returns as for regular CHAPS payments. Note that this endpoint only supports returning CHAPS payments made after the Bank of England's RTGS Renewal Programme went live, that is, to all payments made on or after 19 June 2023.

Parameters

  • Authorization string, header, Required

    Your API token retrieved from the portal

  • DigitalSignature string, header, Required

    The hash of the request body signed with your private key

  • X-Request-Id string, header, Required

    A unique identifier for the request.

Request Payload (application/json)

  • paymentId string, Required

    Payment ID assigned by ClearBank to the inbound payment. This is the same value as the TransactionId in the Transaction Settled webhook.

  • reason string, Required

    Specifies the reason for the return.

    Enum array
    WrongAmount, InconsistentWithEndCustomer, MissingCreditorAddress, UnrecognisedInitiatingParty, UnknownEndCustomer, FollowingCancellationRequest, RefundRequestByEndCustomer
  • instructionIdentification string, Required

    Unique identification, as assigned by an instructing party for an instructed party, to unambiguously identify the instruction.

    Minimum length
    1
    Maximum length
    35
    Pattern
    ^[0-9a-zA-Z/\-\?:\(\)\.,'\+ !#$%&\*=^_`\{\|\}~";<>@\[\\\]]+$

request

{
"paymentId": "472e651e-5a1e-424d-8098-23858bf03ad7",
"reason": "WrongAmount",
"instructionIdentification": "string"
}
Code copied

Response (application/json)

  • 202 Accepted
  • 400 Bad Request

Accepted

{
"paymentId": "9e987f04-4c84-1009-ef88-a9121bc8948f"
}
Code copied

Bad Request

{
"detail": "string",
"errors": null,
"instance": "string",
"status": "string",
"title": "string",
"type": "string"
}
Code copied

Associated Webhooks

Send a CHAPS bank-to-bank payment

post/payments/chaps/v4/institution-payments

Create an outbound bank-to-bank payment. This endpoint is used to send CHAPS Pacs.009 payments between financial institutions and is only available to authorised institutions.

Parameters

    Request Payload (application/json)

    • instructionIdentification string, Required

      Unique identification, as assigned by an instructing party for an instructed party, to unambiguously identify the instruction.

      Minimum length
      1
      Maximum length
      35
      Pattern
      ^[0-9a-zA-Z/\-\?:\(\)\.,'\+ !#$%&\*=^_`\{\|\}~";<>@\[\\\]]+$
    • endToEndIdentification string, Required

      Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain.

      Minimum length
      1
      Maximum length
      35
      Pattern
      ^[0-9a-zA-Z/\-\?:\(\)\.,'\+ ]+$
    • instructedAmount object, Required

      Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.

    • sourceAccount object, Required

      The ClearBank account that will be debited based on the successful completion of the payment instruction. You need to include EITHER the iban field OR the schemeName and identification fields in this object.

    • debtor object, Required
    • creditorAccount object, Required

      Party is owed an amount of money as the (ultimate) creditor. You need to include EITHER the iban field OR the schemeName and identification fields in this object.

    • creditor object, Required
    • purpose string

      Underlying reason for the payment transaction, as published in an external purpose code list.

      Enum array
      Deposit, IntraCompanyPayment, IntraPartyPayment, AgriculturalTransfer, CommercialPayment, PurchaseSaleOfGoodsAndServices, SupplierPayment, CharityPayment, CompensationPayment, PropertyLoanRepayment, PropertyLoanSettlement, PaymentOfInsuranceClaim, LoanRepayment, TradeSettlementPayment, PaymentOfFees, Gift, InvoicePayment, ForeignExchange, Savings, TaxPayment, Utilities, LotteryPayment, PropertyCompletionPayment, PropertyDeposit, PropertyLoanDisbursement, PropertyLoanRefinancing
    • categoryPurpose string

      Category purpose, in a proprietary form.

      Enum array
      TradeSettlementPayment, PersonToPersonPayment, GovernmentPayment, IntraCompanyPayment, Loan, OtherPayment, SupplierPayment, TaxPayment, Trade, TreasuryPayment
    • remittanceInformation object

      Information supplied to enable the matching of an entry with the items that the transfer is intended to settle, such as commercial invoices in an accounts' receivable system.

    request

    {
    "instructionIdentification": "string",
    "endToEndIdentification": "string",
    "instructedAmount": {
    "amount": 0,
    "currency": "GBP"
    },
    "sourceAccount": {
    "iban": "string",
    "schemeName": "BBan",
    "identification": "string"
    },
    "debtor": {
    "name": "string",
    "postalAddress": {
    "buildingNumber": "string",
    "buildingName": "string",
    "streetName": "string",
    "townName": "string",
    "country": "string",
    "postCode": "string"
    },
    "lei": "string"
    },
    "creditorAccount": {
    "iban": "string",
    "schemeName": "BBan",
    "identification": "string"
    },
    "creditor": {
    "name": "string",
    "postalAddress": {
    "buildingNumber": "string",
    "buildingName": "string",
    "streetName": "string",
    "townName": "string",
    "country": "string",
    "postCode": "string"
    },
    "lei": "string"
    },
    "purpose": "Deposit",
    "categoryPurpose": "TradeSettlementPayment",
    "remittanceInformation": {
    "unstructured": "string"
    }
    }
    Code copied

    Response (application/json)

    • 202 Accepted
    • 400 Bad Request

    Accepted

    {
    "paymentId": "472e651e-5a1e-424d-8098-23858bf03ad7"
    }
    Code copied

    Bad Request

    {
    "type": "string",
    "title": "string",
    "status": 0,
    "detail": "string",
    "instance": "string",
    "property1": null,
    "property2": null
    }
    Code copied

    Associated Webhooks

    CHAPS simulation endpoints

    These endpoints can be used to simulate payments. You can also use them for automated testing.

    The ClearBank Payment Simulator should no longer be used for CHAPS payments.

    Simulate an inbound CHAPS payment

    post/inbound-payment-simulation/chaps/v1/customer-payments

    Define a CHAPS payment to be received by an account in sim.

    This endpoint exists to support your testing and development in our simulation environment. It does not apply to production. You can use it to send a simulated inbound CHAPS payment, so that you will have a payment available to return. Note that if this request is not successful because the payment details are incorrect, you will not receive a webhook.

    Parameters

    • Authorization string, header, Required

      Your API token retrieved from the portal

    • DigitalSignature string, header, Required

      The hash of the request body signed with your private key

    • X-Request-Id string, header, Required

      A unique identifier for the request.

    Request Payload (application/json)

    • instructionIdentification string, Required

      Unique identification, as assigned by an instructing party for an instructed party, to unambiguously identify the instruction.

      Minimum length
      1
      Maximum length
      35
    • endToEndIdentification string, Required

      Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain.

      Minimum length
      1
      Maximum length
      35
    • instructedAmount object, Required

      Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.

    • debtorBic string, Required

      Valid BIC for the debtor account.

      Minimum length
      1
    • debtorAccount object, Required

      Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction. You need to include EITHER the iban field OR the schemeName and identification fields in this object.

    • debtor object, Required

      Party that owes an amount of money to the (ultimate) creditor.

    • creditorBic string, Required

      Valid BIC for the creditor account.

      Minimum length
      1
    • creditorAccount object, Required

      Unambiguous identification of the account of the creditor to which a credit entry will be made as a result of the transaction. You need to include EITHER the iban field OR the schemeName and identification fields in this object.

    • creditor object, Required

      Party that is owed an amount of money by the (ultimate) debtor.

    • purpose string

      Underlying reason for the payment transaction, as published in an external purpose code list.

      Minimum length
      1
      Maximum length
      35
      Enum array
      Deposit, IntraCompanyPayment, IntraPartyPayment, AgriculturalTransfer, CommercialPayment, PurchaseSaleOfGoodsAndServices, SupplierPayment, CharityPayment, CompensationPayment, PropertyLoanRepayment, PropertyLoanSettlement, PaymentOfInsuranceClaim, LoanRepayment, TradeSettlementPayment, PaymentOfFees, Gift, InvoicePayment, ForeignExchange, Savings, TaxPayment, Utilities, LotteryPayment, PropertyCompletionPayment, PropertyDeposit, PropertyLoanDisbursement, PropertyLoanRefinancing
    • categoryPurpose string

      Category purpose, in a proprietary form.

      Minimum length
      1
      Maximum length
      35
      Enum array
      TradeSettlementPayment, PersonToPersonPayment, GovernmentPayment, IntraCompanyPayment, Loan, OtherPayment, SupplierPayment, TaxPayment, Trade, TreasuryPayment
    • remittanceInformation object

      Information supplied to enable the matching of an entry with the items that the transfer is intended to settle, such as commercial invoices in an accounts' receivable system.

    request

    {
    "instructionIdentification": "string",
    "endToEndIdentification": "string",
    "instructedAmount": {
    "amount": 0,
    "currency": "GBP"
    },
    "debtorBic": "string",
    "debtorAccount": {
    "iban": "string",
    "schemeName": "BBan",
    "identification": "string"
    },
    "debtor": {
    "name": "string",
    "postalAddress": {
    "buildingNumber": "string",
    "buildingName": "string",
    "streetName": "string",
    "townName": "string",
    "country": "string",
    "postCode": "string"
    }
    },
    "creditorBic": "string",
    "creditorAccount": {
    "iban": "string",
    "schemeName": "BBan",
    "identification": "string"
    },
    "creditor": {
    "name": "string",
    "postalAddress": {
    "buildingNumber": "string",
    "buildingName": "string",
    "streetName": "string",
    "townName": "string",
    "country": "string",
    "postCode": "string"
    }
    },
    "purpose": "Deposit",
    "categoryPurpose": "TradeSettlementPayment",
    "remittanceInformation": {
    "creditorReferenceInformation": "string"
    }
    }
    Code copied

    Response (application/json)

    • 202 Accepted
    • 400 Bad Request

    Accepted

    {
    "uetr": "string"
    }
    Code copied

    Bad Request

    {
    "detail": "string",
    "errors": null,
    "instance": "string",
    "status": "string",
    "title": "string",
    "type": "string"
    }
    Code copied

    Associated Webhooks

    Simulate a returned CHAPS payment

    post/inbound-payment-simulation/chaps/v1/return-payments

    Define a returned CHAPS payment to be received by an account in sim.

    This endpoint exists to support your testing and development in our simulation environment. It does not apply to production. You can use it to send a simulated returned CHAPS payment. Note that if this request is not successful because the payment details are incorrect, you will not receive a webhook.

    Parameters

      Request Payload (application/json)

      • originalUetr string, Required

        Universally unique identifier to provide the original end-to-end reference of a payment transaction.

        Pattern
        [a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}
      • returnReasonCode string, Required
        Enum array
        WrongAmount, InconsistentWithEndCustomer, MissingCreditorAddress, UnrecognisedInitiatingParty, UnknownEndCustomer, FollowingCancellationRequest, RefundRequestByEndCustomer
      • originalInstructionIdentification string, Required

        Unique identification, as assigned by the original instructing party for the original instructed party, to unambiguously identify the original instruction.

        Minimum length
        1
        Maximum length
        35
      • originalEndToEndIdentification string, Required

        Unique identification, as assigned by the original initiating party, to unambiguously identify the original transaction.

        Minimum length
        1
        Maximum length
        35
      • originalReference string, Required
        Minimum length
        1
      • instructedAmount object, Required

        Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party. Usage: This amount has to be transported unchanged through the transaction chain.

      • debtorName string

        Name of the person or business who owns the debtor account.

      • debtorBic string, Required

        Valid BIC for the debtor account.

        Minimum length
        1
      • creditorName string

        Name of the person or business who owns the creditor account.

      • creditorBic string, Required

        Valid BIC for the creditor account.

        Minimum length
        1

      request

      {
      "originalUetr": "string",
      "returnReasonCode": "WrongAmount",
      "originalInstructionIdentification": "string",
      "originalEndToEndIdentification": "string",
      "originalReference": "string",
      "instructedAmount": {
      "amount": 0,
      "currency": "GBP"
      },
      "debtorName": "string",
      "debtorBic": "string",
      "creditorName": "string",
      "creditorBic": "string"
      }
      Code copied

      Response (application/json)

      • 202 Accepted
      • 400 Bad Request

      Accepted

      {
      "uetr": "string"
      }
      Code copied

      Bad Request

      {
      "detail": "string",
      "errors": null,
      "instance": "string",
      "status": "string",
      "title": "string",
      "type": "string"
      }
      Code copied

      Associated Webhooks

      Simulate a CHAPS bank-to-bank payment

      post/inbound-payment-simulation/chaps/v1/institution-payments

      Define a CHAPS bank-to-bank payment to be received by an account in sim.

      This endpoint exists to support your testing and development in our simulation environment. It does not apply to production. You can use it to send a simulated inbound bank-to-bank payment. Note that if this request is not successful because the payment details are incorrect, you will not receive a webhook.

      Parameters

        Request Payload (application/json)

        • instructionIdentification string, Required

          Unique identification, as assigned by an instructing party for an instructed party, to unambiguously identify the instruction.

          Minimum length
          1
          Maximum length
          35
        • endToEndIdentification string, Required

          Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain.

          Minimum length
          1
          Maximum length
          35
        • instructedAmount object, Required

          Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.

        • debtorAccount object, Required

          Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction. You need to include EITHER the iban field OR the schemeName and identification fields in this object.

        • debtorBic string, Required

          Valid BIC for the debtor account.

          Minimum length
          1
        • debtor object, Required

          Party that owes an amount of money to the (ultimate) creditor.

        • creditorBic string, Required

          Valid BIC for the creditor account.

          Minimum length
          1
        • creditorAccount object, Required

          Unambiguous identification of the account of the creditor to which a credit entry will be made as a result of the transaction. You need to include EITHER the iban field OR the schemeName and identification fields in this object.

        • creditor object, Required

          Party that owes an amount of money to the (ultimate) creditor.

        • purpose string

          Underlying reason for the payment transaction, as published in an external purpose code list.

          Minimum length
          1
          Maximum length
          35
          Enum array
          Deposit, IntraCompanyPayment, IntraPartyPayment, AgriculturalTransfer, CommercialPayment, PurchaseSaleOfGoodsAndServices, SupplierPayment, CharityPayment, CompensationPayment, PropertyLoanRepayment, PropertyLoanSettlement, PaymentOfInsuranceClaim, LoanRepayment, TradeSettlementPayment, PaymentOfFees, Gift, InvoicePayment, ForeignExchange, Savings, TaxPayment, Utilities, LotteryPayment, PropertyCompletionPayment, PropertyDeposit, PropertyLoanDisbursement, PropertyLoanRefinancing
        • categoryPurpose string

          Category purpose, in a proprietary form.

          Minimum length
          1
          Maximum length
          35
          Enum array
          TradeSettlementPayment, PersonToPersonPayment, GovernmentPayment, IntraCompanyPayment, Loan, OtherPayment, SupplierPayment, TaxPayment, Trade, TreasuryPayment
        • remittanceInformation object

          Information supplied to enable the matching of an entry with the items that the transfer is intended to settle, such as commercial invoices in an accounts' receivable system.

        request

        {
        "instructionIdentification": "string",
        "endToEndIdentification": "string",
        "instructedAmount": {
        "amount": 0,
        "currency": "GBP"
        },
        "debtorAccount": {
        "iban": "string",
        "schemeName": "BBan",
        "identification": "string"
        },
        "debtorBic": "string",
        "debtor": {
        "name": "string",
        "postalAddress": {
        "buildingNumber": "string",
        "buildingName": "string",
        "streetName": "string",
        "townName": "string",
        "country": "string",
        "postCode": "string"
        }
        },
        "creditorBic": "string",
        "creditorAccount": {
        "iban": "string",
        "schemeName": "BBan",
        "identification": "string"
        },
        "creditor": {
        "name": "string",
        "postalAddress": {
        "buildingNumber": "string",
        "buildingName": "string",
        "streetName": "string",
        "townName": "string",
        "country": "string",
        "postCode": "string"
        }
        },
        "purpose": "Deposit",
        "categoryPurpose": "TradeSettlementPayment",
        "remittanceInformation": {
        "unstructured": "string"
        }
        }
        Code copied

        Response (application/json)

        • 202 Accepted
        • 400 Bad Request

        Accepted

        {
        "uetr": "string"
        }
        Code copied

        Bad Request

        {
        "detail": "string",
        "errors": null,
        "instance": "string",
        "status": "string",
        "title": "string",
        "type": "string"
        }
        Code copied

        Associated Webhooks

        FIN to ISO20022 field mapping

        As part of the Bank of England's RTGS Renewal Programme, the payment message format for CHAPS has recently changed. The previous message format known as MT messages has changed to MX messages that are compliant with ISO20022.

        This table provides information on the most relevant fields within the messages and their associated conversions.

        FieldField nameMT103MT202Explanationpacs.008
        (MT103 successor)
        pacs.009
        (MT202 successor)
        pacs.004
        (MT202 RTN successor)
        :20Transaction Reference NumberMandatoryMandatoryThis field specifies the unique reference assigned by the sender to unambiguously identify the message.<PmtId><InstrId><PmtId><InstrId><RtrId>
        :21Related ReferenceMandatoryThis field contains a reference to the related transaction.<PmtId><EndToEndId><OrgnlInstrId>
        :23BBank Operation CodeMandatoryThis field identifies the type of operation. By the nature of the ISO message, the payment is always credit, so there is no need to specify the type in the message itself.

        In FIN, it's usually populated CRED - Normal credit transfer.
        :32AValue date / Currency / Interbank SettledMandatoryMandatoryThis field specifies the value date, currency, and settlement amount. The settlement amount is the amount to be booked/reconciled at interbank level.<IntrBkSttlmAmt><Ccy>

        <IntrBkSttlmDt>
        <IntrBkSttlmAmt><Ccy>

        <IntrBkSttlmDt>
        <RtrdIntrBkSttlmAmt><Ccy>

        <IntrBkSttlmDt>
        :50A, F, or KOrdering Customer (Payer)MandatoryThis field specifies the customer ordering the transaction.<Dbtr>

        <DbtrAcct>
        <RtrChain><Dbtr><Pty>
        :52A or DOrdering Institution (Payer's Bank)OptionalOptionalThis field specifies the financial institution of the ordering customer.<DbtrAgt> Supercedes Field 52a - Ordering Institution

        <DbtrAgtAcct> Supercedes Field 52a - Ordering Institution Account Number subfield
        <Dbtr> Supercedes Field 52a - Ordering Institution

        <DbtrAcct> Supercedes Field 52a - Ordering Institution Account Number subfield
        <RtrChain><Dbtr><Agt>
        :57A, B, C, or DAccount with Institution (Beneficiary's Bank)OptionalOptionalThis field specifies the financial institution which services the account for the beneficiary customer.<CdtrAgt> Supercedes Field 57a – Account With Institution

        <CdtrAgtAcct> Supercedes Field 57a – Account With Institution Account Number subfield
        <CdtrAgt> Supercedes Field 57a – Account With Institution

        <CdtrAgtAcct> Supercedes Field 57a – Account With Institution Account Number subfield
        <RtrChain><CdtrAgt>
        :58A or DBeneficiary InstitutionMandatoryThis field specifies the financial institution which has been designated by the ordering institution as the ultimate recipient of the funds being transferred.<Cdtr>

        <CdtrAcct>
        <RtrChain><Cdtr><Agt>
        :59 or 59A, FBeneficiaryMandatoryThis field specifies the customer which will be paid.<Cdtr>

        <CdtrAcct>
        <RtrChain><Cdtr><Pty>
        :70Remittance Information (payment reference)OptionalThis field specifies either the details of the individual transaction, or a reference to another message containing the details which are to be transmitted to the beneficiary customer.<PmtId><EndToEndId> Supercedes Field 70 - preceded by codeword /ROC/

        <UltmtDbtr> Supercedes Field 70 - preceded by codeword /ULTD/

        <UltmtCdtr> Supercedes Field 70 - preceded by codeword /ULTB/

        <RltdRmtInf> Supercedes Field 70 - preceded by codeword /RELID/

        <RmtInf> Supercedes Field 70 - Remittance Information
        <RmtInf>
        :71ADetails of ChargesMandatoryThis field specifies which party will bear the charges for the transaction.

        Previous FIN charge codes:
        BEN - Beneficiary
        OUR - Our Customer charged
        SHA - Shared Charges
        <ChrgBr>
        Borne by Creditor - CRED
        Borne by Debtor - DEBT
        Shared - SHAR
        <ChrgBr>
        Borne by Creditor - CRED
        Borne by Debtor - DEBT
        Shared - SHAR
        :72Sender to Receiver InformationOptionalOptionalThis field specifies additional information for the Receiver or other party specified.

        Previously, in FIN, if the first six characters in line 1 contain the character string /REJT/ or /RETN/, then it is mandatory to follow the Payments Reject/Return Guidelines described in the Standards MT Usage Guidelines.
        <PmtTpInf><LclInstrm> Supercedes Field 72 – preceded by codeword /LOCINS/

        <PrvsInstgAgt1><PrvsInstgAgt2><PrvsInstgAgt3> Supercedes Field 72 – preceded by codeword /INS/

        <InstgAgt> Sender

        <InstdAgt>Receiver

        <IntrmyAgt2><IntrmyAgt3> Supercedes Field 72 – preceded by codeword /INTA/

        <InstrForCdtrAgt> Supercedes Field 72 – preceded by codeword /ACC/

        <InstrForNxtAgt> Supercedes Field 72 – preceded by codeword /REC/

        <PmtTpInf><LclInstrm> Supercedes Field 72 – preceded by codeword /LOCINS/ Also CLS-specific codewords

        <PmtTpInf><CtgyPurp> Supercedes Field 72 – preceded by codeword /CATPURP/

        <PrvsInstgAgt1><PrvsInstgAgt2><PrvsInstgAgt3> Supercedes Field 72 – preceded by codeword /INS/

        <IntrmyAgt2><IntrmyAgt3> Supercedes Field 72 – preceded by codeword /INTA/

        <DbtrAgt> Supercedes Field 72 – preceded by codeword /INS/

        <InstrForCdtrAgt> Supercedes Field 72 – preceded by codeword /ACC/, /PHONBEN/, /TELEBEN/

        <InstrForNxtAgt> Supercedes Field 72 – preceded by codeword /REC/

        <Purp> Supercedes Field 72 – preceded by codeword /PURP/

        <RmtInf> Supercedes Field 72 – preceded by codeword /BNF/ or /TSU/

        <RtrRsnInf><Rsn><Cd> Supercedes Field 72 - Sender to Receiver Info - Line 2

        <OrgnlEndToEndId> Supercedes Field 72 - Sender to Receiver Info - Line 4

        <ChrgsInf><Amt> Supercedes Field 72 - Sender to Receiver Info - Line 5

        <OrgnlIntrBkSttlmDt> Supercedes Field 72 - Sender to Receiver Info - Line 6