Skip to content

ISO 20022 reason code

SL01: Specific service offered by debtor agent

Refused because of a service the debtor’s bank offers (for example a direct-debit block set by the debtor). SL01 is an ISO 20022 reason code used as a status reason and a return reason: you will see it in pain.002, pacs.004 and camt.053.

SL01 at a glance
CodeSL01
NameSpecific service offered by debtor agent
ISO code listsExternalStatusReason1Code (status reason); ExternalReturnReason1Code (return reason)
WhereStsRsnInf/Rsn/Cd; RtrRsnInf/Rsn/Cd (pacs.004), TxDtls/RtrInf/Rsn/Cd (camt)

What SL01 means

The debtor’s bank refused the payment because of a service it offers its customer: with direct debits, typically a block or a list of allowed creditors the debtor set up, or a maximum amount.

Not to be confused with: SL01 is a service the debtor chose at its bank (a block, a list of allowed creditors, a maximum); MD01 is a mandate problem and AG01 a transaction type the account does not allow.

A reason code always comes with a status or an action: on its own it says why, not what happened. In a status report look at the status next to it (RJCT means the payment will not be executed); on a statement the returned entry tells you the money has come back.

Where SL01 appears

SL01 belongs to two of the ISO 20022 reason code lists, so it can arrive in these places:

  • Status reason (ExternalStatusReason1Code): in a payment status report (pain.002 from a bank to its customer, pacs.002 between banks) that rejects or holds a payment.
  • Return reason (ExternalReturnReason1Code): in a payment return (pacs.004) after the money has moved, and the returned entry on the account statement (camt.053) or notification (camt.054).

In a status report, SL01 explains a status such as RJCT, at transaction level here (the same StsRsnInf block can sit under the group or a payment block):

pain.002.001.10 · a rejected transaction
<OrgnlPmtInfAndSts>
  <OrgnlPmtInfId>PMT-20261028-03</OrgnlPmtInfId>
  <TxInfAndSts>
    <OrgnlEndToEndId>INV-2026-0042</OrgnlEndToEndId>
    <TxSts>RJCT</TxSts>
    <StsRsnInf>
      <Rsn>
        <Cd>SL01</Cd>
      </Rsn>
      <AddtlInf>Free text from the bank, if any</AddtlInf>
    </StsRsnInf>
  </TxInfAndSts>
</OrgnlPmtInfAndSts>

What to do about SL01

  • If you sent the payment or the collection: Ask the payer to allow your creditor identifier, or raise their limit, then collect again.

Your bank’s implementation guide and the scheme’s rulebook (for SEPA, the EPC rulebooks) say exactly when it may use SL01; banks do not all apply a code the same way.

Look up SL01 from a script or an AI agent

Scripts and AI agents get this code’s name, definition, where it sits and the address of this page from GET /api/v1/explain, keyless, or from the explain_code tool of the MCP server (API and MCP docs; add it to Claude, Cursor or VS Code).

REST · curl
curl -s 'https://iso20022-navigator.com/api/v1/explain?code=SL01&kind=status_reason'