Payment Initiation Service (PIS)

Payment cancellation request

This method initiates the cancellation of a payment. Depending on the payment-service, the payment-product and the ASPSP's implementation, this TPP call might be sufficient to cancel a payment. If an authorisation of the payment cancellation is mandated by the ASPSP, a corresponding hyperlink will be contained in the response message.

Cancels the addressed payment with resource identification paymentId if applicable to the payment-service, payment-product and received in product related timelines (e.g. before end of business day for scheduled payments of the last business day before the scheduled execution day).

The response to this DELETE command will tell the TPP whether the

  • access method was rejected,
  • access method was successful, or
  • access method is generally applicable, but further authorisation processes are needed.
delete/v1/{payment-service}/{payment-product}/{paymentId}

Path parameters

payment-service'payments' | 'bulk-payments' | 'periodic-payments' required

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product'domestic-swiss-credit-transfers-isr' | 'domestic-swiss-credit-transfers' | 'domestic-swiss-credit-transfers-qr' | 'domestic-swiss-foreign-credit-transfers' | 'swiss-sepa-credit-transfers' | 'swiss-cross-border-credit-transfers' | 'pain.001-sepa-credit-transfers' | 'pain.001-cross-border-credit-transfers' | 'pain.001-swiss-six-credit-transfers' required

The addressed payment product endpoint, e.g. for SEPA Credit Transfers (SCT). The ASPSP will publish which of the payment products/endpoints will be supported.

The following payment products are supported:

  • domestic-swiss-credit-transfers-isr
  • domestic-swiss-credit-transfers
  • domestic-swiss-credit-transfers-qr
  • domestic-swiss-foreign-credit-transfers
  • swiss-sepa-credit-transfers
  • swiss-cross-border-credit-transfers
  • pain.001-sepa-credit-transfers
  • pain.001-cross-border-credit-transfers
  • pain.001-swiss-six-credit-transfers

Remark: For all SEPA Credit Transfer based endpoints which accept XML encoding, the XML pain.001 schemes provided by EPC are supported by the ASPSP as a minimum for the body content. Further XML schemes might be supported by some communities.

Remark: For cross-border and TARGET-2 payments only community wide pain.001 schemes do exist. There are plenty of country specificic scheme variants.

paymentIdstring required

Resource identification of the generated payment initiation resource.

Example:1234-wertiq-983

Resource identification of the generated payment initiation resource.

Headers

X-Request-IDstring required

ID of the request, unique to the call, as determined by the initiating party.

Digeststring

Is contained if and only if the "Signature" element is contained in the header of the request.

Signaturestring

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificatestring byte

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

TPP-Redirect-Preferredboolean

If it equals "true", the TPP prefers a redirect over an embedded SCA approach. If it equals "false", the TPP prefers not to be redirected for SCA. The ASPSP will then choose between the Embedded or the Decoupled SCA approach, depending on the choice of the SCA procedure by the TPP/PSU. If the parameter is not used, the ASPSP will choose the SCA approach to be applied depending on the SCA method chosen by the TPP/PSU.

TPP-Nok-Redirect-URIstring uri

If this URI is contained, the TPP is asking to redirect the transaction flow to this address instead of the TPP-Redirect-URI in case of a negative result of the redirect SCA method. This might be ignored by the ASPSP.

TPP-Redirect-URIstring uri

URI of the TPP, where the transaction flow shall be redirected to after a Redirect.

Mandated for the Redirect SCA Approach, specifically when TPP-Redirect-Preferred equals "true". It is recommended to always use this header field.

Remark for Future: This field might be changed to mandatory in the next version of the specification.

TPP-Explicit-Authorisation-Preferredboolean

If it equals "true", the TPP prefers to start the authorisation process separately, e.g. because of the usage of a signing basket. This preference might be ignored by the ASPSP, if a signing basket is not supported as functionality.

If it equals "false" or if the parameter is not used, there is no preference of the TPP. This especially indicates that the TPP assumes a direct authorisation of the transaction in the next step, without using a signing basket.

PSU-IP-Addressstring ipv4

The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.

PSU-IP-Portstring

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Acceptstring

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charsetstring

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encodingstring

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Languagestring

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agentstring

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-IDstring

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Locationstring

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Response

Received

transactionStatus'ACCC' | 'ACCP' | 'ACSC' | 'ACSP' | 'ACTC' | 'ACWC' | 'ACWP' | 'RCVD' | 'PDNG' | 'RJCT' | 'CANC' | 'ACFC' | 'PATC' | 'PART' required

The transaction status is filled with codes of the ISO 20022 data table:

  • 'ACCC': 'AcceptedSettlementCompleted' - Settlement on the creditor's account has been completed.

  • 'ACCP': 'AcceptedCustomerProfile' - Preceding check of technical validation was successful. Customer profile check was also successful.

  • 'ACSC': 'AcceptedSettlementCompleted' - Settlement on the debtoro?=s account has been completed.

    Usage: this can be used by the first agent to report to the debtor that the transaction has been completed.

    Warning: this status is provided for transaction status reasons, not for financial information. It can only be used after bilateral agreement.

  • 'ACSP': 'AcceptedSettlementInProcess' - All preceding checks such as technical validation and customer profile were successful and therefore the payment initiation has been accepted for execution.

  • 'ACTC': 'AcceptedTechnicalValidation' - Authentication and syntactical and semantical validation are successful.

  • 'ACWC': 'AcceptedWithChange' - Instruction is accepted but a change will be made, such as date or remittance not sent.

  • 'ACWP': 'AcceptedWithoutPosting' - Payment instruction included in the credit transfer is accepted without being posted to the creditor customero?=s account.

  • 'RCVD': 'Received' - Payment initiation has been received by the receiving agent.

  • 'PDNG': 'Pending' - Payment initiation or individual transaction included in the payment initiation is pending. Further checks and status update will be performed.

  • 'RJCT': 'Rejected' - Payment initiation or individual transaction included in the payment initiation has been rejected.

  • 'CANC': 'Cancelled' Payment initiation has been cancelled before execution Remark: This codeis accepted as new code by ISO20022.

  • 'ACFC': 'AcceptedFundsChecked' - Preceding check of technical validation and customer profile was successful and an automatic funds check was positive . Remark: This code is accepted as new code by ISO20022.

  • 'PATC': 'PartiallyAcceptedTechnical' Correct The payment initiation needs multiple authentications, where some but not yet all have been performed. Syntactical and semantical validations are successful. Remark: This code is accepted as new code by ISO20022.

  • 'PART': 'PartiallyAccepted' - A number of transactions have been accepted, whereas another number of transactions have not yet achieved 'accepted' status. Remark: This code may be used only in case of bulk payments. It is only used in a situation where all mandated authorisations have been applied, but some payments have been rejected.

Example response

{
  "transactionStatus": "ACCP",
  "scaMethods": [
    {
      "authenticationMethodId": "myAuthenticationID",
      "name": "SMS OTP on phone +49160 xxxxx 28",
      "explanation": "Detailed information about the SCA method for the PSU."
    }
  ],
  "chosenScaMethod": {
    "authenticationMethodId": "myAuthenticationID",
    "name": "SMS OTP on phone +49160 xxxxx 28",
    "explanation": "Detailed information about the SCA method for the PSU."
  },
  "_links": {
    "startAuthorisation": {
      "href": "/v1/payments/swiss-sepa-credit-transfers/1234-wertiq-983"
    },
    "startAuthorisationWithPsuIdentification": {
      "href": "/v1/payments/swiss-sepa-credit-transfers/1234-wertiq-983"
    },
    "startAuthorisationWithPsuAuthentication": {
      "href": "/v1/payments/swiss-sepa-credit-transfers/1234-wertiq-983"
    },
    "startAuthorisationWithEncryptedPsuAuthentication": {
      "href": "/v1/payments/swiss-sepa-credit-transfers/1234-wertiq-983"
    },
    "startAuthorisationWithAuthenticationMethodSelection": {
      "href": "/v1/payments/swiss-sepa-credit-transfers/1234-wertiq-983"
    }
  }
}

Changes

Changed in 7 of the 50 revisions of this API.362455

  • 0d82c4699548416See the full diff
    • ●

      added the new SCA_INVALID enum value to the // response property for the response status (media type: application/problem+json)

      response-property-enum-value-added

    • ●

      added the new SCA_INVALID enum value to the response property for the response status (media type: application/problem+json)

      response-property-enum-value-added

    • ●

      added the new SCA_INVALID enum value to the // response property for the response status (media type: application/json)

      response-property-enum-value-added

    • ●

      added the new SMTP_OTP enum value to the // response property for the response status

      response-property-enum-value-added

    • ○

      added the new optional header request parameter TPP-Explicit-Authorisation-Preferred

      new-optional-request-parameter

    • ○

      added the new optional header request parameter TPP-Nok-Redirect-URI

      new-optional-request-parameter

    • ○

      added the new optional header request parameter TPP-Redirect-Preferred

      new-optional-request-parameter

    • ○

      added the new optional header request parameter TPP-Redirect-URI

      new-optional-request-parameter

    • ○

      added the optional property / to the response with the status (media type: application/json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/problem+json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/problem+json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/problem+json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/problem+json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/problem+json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/problem+json)

      response-optional-property-added

    This revision also has 3 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

  • b51fe6ddb1fc251613See the full diff
    • ▲

      removed the enum value cross-border-credit-transfers from the path request parameter payment-product

      request-parameter-enum-value-removed

    • ▲

      removed the enum value instant-sepa-credit-transfers from the path request parameter payment-product

      request-parameter-enum-value-removed

    • ▲

      removed the enum value pain.001-instant-sepa-credit-transfers from the path request parameter payment-product

      request-parameter-enum-value-removed

    • ▲

      removed the enum value pain.001-target-2-payments from the path request parameter payment-product

      request-parameter-enum-value-removed

    • ▲

      removed the enum value sepa-credit-transfers from the path request parameter payment-product

      request-parameter-enum-value-removed

    • ▲

      removed the enum value target-2-payments from the path request parameter payment-product

      request-parameter-enum-value-removed

    • ▲

      the // response property's maxLength was increased from 500 to 512 for the response status (media type: application/problem+json)

      response-property-max-length-increased

    • ▲

      the // response property's maxLength was increased from 500 to 512 for the response status (media type: application/problem+json)

      response-property-max-length-increased

    • ▲

      the // response property's maxLength was increased from 500 to 512 for the response status (media type: application/problem+json)

      response-property-max-length-increased

    • ▲

      the // response property's maxLength was increased from 500 to 512 for the response status (media type: application/problem+json)

      response-property-max-length-increased

    • ▲

      the // response property's maxLength was increased from 500 to 512 for the response status (media type: application/problem+json)

      response-property-max-length-increased

    • ▲

      the // response property's maxLength was increased from 500 to 512 for the response status (media type: application/problem+json)

      response-property-max-length-increased

    • ▲

      the response property's maxLength was increased from 500 to 512 for the response status (media type: application/problem+json)

      response-property-max-length-increased

    • ▲

      the response property's maxLength was increased from 500 to 512 for the response status (media type: application/problem+json)

      response-property-max-length-increased

    • ▲

      the response property's maxLength was increased from 500 to 512 for the response status (media type: application/problem+json)

      response-property-max-length-increased

    • ▲

      the response property's maxLength was increased from 500 to 512 for the response status (media type: application/problem+json)

      response-property-max-length-increased

    • ▲

      the response property's maxLength was increased from 500 to 512 for the response status (media type: application/problem+json)

      response-property-max-length-increased

    • ▲

      the response property's maxLength was increased from 500 to 512 for the response status (media type: application/problem+json)

      response-property-max-length-increased

    • ▲

      the // response property's maxLength was increased from 500 to 512 for the response status (media type: application/json)

      response-property-max-length-increased

    • ▲

      the // response property's maxLength was increased from 500 to 512 for the response status (media type: application/json)

      response-property-max-length-increased

    • ▲

      the // response property's maxLength was increased from 500 to 512 for the response status (media type: application/json)

      response-property-max-length-increased

    • ▲

      the // response property's maxLength was increased from 500 to 512 for the response status (media type: application/json)

      response-property-max-length-increased

    • ▲

      the // response property's maxLength was increased from 500 to 512 for the response status (media type: application/json)

      response-property-max-length-increased

    • ▲

      the // response property's maxLength was increased from 500 to 512 for the response status (media type: application/json)

      response-property-max-length-increased

    • ▲

      the / response's property format changed from url to no format for status

      response-property-type-changed

    • ●

      deleted the header request parameter TPP-Explicit-Authorisation-Preferred

      request-parameter-removed

    • ●

      deleted the header request parameter TPP-Nok-Redirect-URI

      request-parameter-removed

    • ●

      deleted the header request parameter TPP-Redirect-Preferred

      request-parameter-removed

    • ●

      deleted the header request parameter TPP-Redirect-URI

      request-parameter-removed

    • ●

      removed the optional property / from the response with the status (media type: application/json)

      response-optional-property-removed

    • ●

      removed the optional property / from the response with the status (media type: application/problem+json)

      response-optional-property-removed

    • ●

      removed the optional property / from the response with the status (media type: application/json)

      response-optional-property-removed

    • ●

      removed the optional property / from the response with the status (media type: application/problem+json)

      response-optional-property-removed

    • ●

      removed the optional property / from the response with the status (media type: application/json)

      response-optional-property-removed

    • ●

      removed the optional property / from the response with the status (media type: application/problem+json)

      response-optional-property-removed

    • ●

      removed the optional property / from the response with the status (media type: application/json)

      response-optional-property-removed

    • ●

      removed the optional property / from the response with the status (media type: application/problem+json)

      response-optional-property-removed

    • ●

      removed the optional property / from the response with the status (media type: application/json)

      response-optional-property-removed

    • ●

      removed the optional property / from the response with the status (media type: application/problem+json)

      response-optional-property-removed

    • ●

      removed the optional property / from the response with the status (media type: application/json)

      response-optional-property-removed

    • ●

      removed the optional property / from the response with the status (media type: application/problem+json)

      response-optional-property-removed

    • ○

      added the new enum value domestic-swiss-credit-transfers to the path request parameter payment-product

      request-parameter-enum-value-added

    • ○

      added the new enum value domestic-swiss-credit-transfers-isr to the path request parameter payment-product

      request-parameter-enum-value-added

    • ○

      added the new enum value domestic-swiss-credit-transfers-qr to the path request parameter payment-product

      request-parameter-enum-value-added

    • ○

      added the new enum value domestic-swiss-foreign-credit-transfers to the path request parameter payment-product

      request-parameter-enum-value-added

    • ○

      added the new enum value pain.001-swiss-six-credit-transfers to the path request parameter payment-product

      request-parameter-enum-value-added

    • ○

      added the new enum value swiss-cross-border-credit-transfers to the path request parameter payment-product

      request-parameter-enum-value-added

    • ○

      added the new enum value swiss-sepa-credit-transfers to the path request parameter payment-product

      request-parameter-enum-value-added

    • ○

      for the header request parameter PSU-Device-ID, the format was generalized from uuid to no format

      request-parameter-type-generalized

    • ○

      for the header request parameter X-Request-ID, the format was generalized from uuid to no format

      request-parameter-type-generalized

    • ○

      removed the SCA_INVALID enum value from the // response property for the response status (media type: application/problem+json)

      response-property-enum-value-removed

    • ○

      removed the SCA_INVALID enum value from the response property for the response status (media type: application/problem+json)

      response-property-enum-value-removed

    • ○

      removed the SCA_INVALID enum value from the // response property for the response status (media type: application/json)

      response-property-enum-value-removed

    • ○

      removed the SMTP_OTP enum value from the // response property for the response status

      response-property-enum-value-removed

    This revision also has 23 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

  • 3cc5b6a584f1416See the full diff
    • ●

      added the new SCA_INVALID enum value to the // response property for the response status (media type: application/problem+json)

      response-property-enum-value-added

    • ●

      added the new SCA_INVALID enum value to the response property for the response status (media type: application/problem+json)

      response-property-enum-value-added

    • ●

      added the new SCA_INVALID enum value to the // response property for the response status (media type: application/json)

      response-property-enum-value-added

    • ●

      added the new SMTP_OTP enum value to the // response property for the response status

      response-property-enum-value-added

    • ○

      added the new optional header request parameter TPP-Explicit-Authorisation-Preferred

      new-optional-request-parameter

    • ○

      added the new optional header request parameter TPP-Nok-Redirect-URI

      new-optional-request-parameter

    • ○

      added the new optional header request parameter TPP-Redirect-Preferred

      new-optional-request-parameter

    • ○

      added the new optional header request parameter TPP-Redirect-URI

      new-optional-request-parameter

    • ○

      added the optional property / to the response with the status (media type: application/json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/problem+json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/problem+json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/problem+json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/problem+json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/problem+json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/json)

      response-optional-property-added

    • ○

      added the optional property / to the response with the status (media type: application/problem+json)

      response-optional-property-added

    This revision also has 3 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

  • f324b23056bf96See the full diff
    • ▲

      removed the enum value domestic-swiss-credit-transfers from the path request parameter payment-product

      request-parameter-enum-value-removed

    • ▲

      removed the enum value domestic-swiss-credit-transfers-isr from the path request parameter payment-product

      request-parameter-enum-value-removed

    • ▲

      removed the enum value domestic-swiss-credit-transfers-qr from the path request parameter payment-product

      request-parameter-enum-value-removed

    • ▲

      removed the enum value domestic-swiss-foreign-credit-transfers from the path request parameter payment-product

      request-parameter-enum-value-removed

    • ▲

      removed the enum value pain.001-swiss-six-credit-transfers from the path request parameter payment-product

      request-parameter-enum-value-removed

    • ▲

      removed the enum value swiss-cross-border-credit-transfers from the path request parameter payment-product

      request-parameter-enum-value-removed

    • ▲

      removed the enum value swiss-sepa-credit-transfers from the path request parameter payment-product

      request-parameter-enum-value-removed

    • ▲

      for the header request parameter PSU-Device-ID, the format changed from no format to uuid

      request-parameter-type-changed

    • ▲

      for the header request parameter X-Request-ID, the format changed from no format to uuid

      request-parameter-type-changed

    • ○

      added the new enum value cross-border-credit-transfers to the path request parameter payment-product

      request-parameter-enum-value-added

    • ○

      added the new enum value instant-sepa-credit-transfers to the path request parameter payment-product

      request-parameter-enum-value-added

    • ○

      added the new enum value pain.001-instant-sepa-credit-transfers to the path request parameter payment-product

      request-parameter-enum-value-added

    • ○

      added the new enum value pain.001-target-2-payments to the path request parameter payment-product

      request-parameter-enum-value-added

    • ○

      added the new enum value sepa-credit-transfers to the path request parameter payment-product

      request-parameter-enum-value-added

    • ○

      added the new enum value target-2-payments to the path request parameter payment-product

      request-parameter-enum-value-added

    This revision also has 10 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • ○

      added the new enum value domestic-swiss-credit-transfers-qr to the path request parameter payment-product

      request-parameter-enum-value-added

  • c972b3e74ec222See the full diff
    • ▲

      removed the enum value cross-border-credit-transfers from the path request parameter payment-product

      request-parameter-enum-value-removed

    • ▲

      removed the enum value sepa-credit-transfers from the path request parameter payment-product

      request-parameter-enum-value-removed

    • ○

      added the new enum value swiss-cross-border-credit-transfers to the path request parameter payment-product

      request-parameter-enum-value-added

    • ○

      added the new enum value swiss-sepa-credit-transfers to the path request parameter payment-product

      request-parameter-enum-value-added

    • ○

      added the new enum value domestic-swiss-foreign-credit-transfers to the path request parameter payment-product

      request-parameter-enum-value-added

Of the 50 revisions, 1 has no diff computed.