---
updatedAt: 2025-12-05T11:16:08.000Z
agentTools:
  projectIndex: https://docs.neonomics.io/llms.txt
---

# /ics/v3/payments/{paymentProduct}/{paymentId}

Deletes a payment by its context ID. Returns the updated payment status. Throws BadRequestException if the payment is already deleted or not deletable.


# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "Welcome to Open API",
    "description": "Discover APIs that enable you to create great user experiences and start integrating with our Payments and Accounts APIs.\nTo start with our APIs first create a Neonomics application on the [developer portal](https://developer.neonomics.io/login) to get a Neonomics application Client ID and Secret ID. Links for developer portal are mentioned below.\nAuthenticate with the Neonomics API, to obtain an access_token so Neonomics can allow you to make requests to the Neonomics API. Use Authorization API to Get\naccess token which will be used in all APIs.\n\nReference Links :\n\n[Neonomics API Documentation](https://docs.neonomics.io/documentation/development/quickstart)\n\n[Sandbox Developer Portal](https://developer.neonomics.io/login)\n\n[Production Developer Portal](https://portal.neonomics.io)\n",
    "version": "3.0"
  },
  "servers": [
    {
      "url": "https://sandbox.neonomics.io",
      "description": "Test env which connects banks Sandbox env"
    },
    {
      "url": "https://api.neonomics.io",
      "description": "Production env which connects live banks"
    }
  ],
  "paths": {
    "/ics/v3/payments/{paymentProduct}/{paymentId}": {
      "delete": {
        "tags": [
          "Payment"
        ],
        "operationId": "deletePaymentById",
        "description": "Deletes a payment by its context ID. Returns the updated payment status. Throws BadRequestException if the payment is already deleted or not deletable.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/Authorization"
          },
          {
            "$ref": "#/components/parameters/paymentId"
          },
          {
            "$ref": "#/components/parameters/paymentProduct"
          },
          {
            "$ref": "#/components/parameters/x-session-id"
          },
          {
            "$ref": "#/components/parameters/x-device-id"
          },
          {
            "$ref": "#/components/parameters/x-psu-ip-address"
          },
          {
            "$ref": "#/components/parameters/x-psu-id"
          },
          {
            "$ref": "#/components/parameters/x-psu-corporate-id"
          },
          {
            "$ref": "#/components/parameters/x-originating-host"
          },
          {
            "$ref": "#/components/parameters/x-originating-date"
          },
          {
            "$ref": "#/components/parameters/Signature"
          },
          {
            "$ref": "#/components/parameters/customer-type"
          }
        ],
        "responses": {
          "202": {
            "description": "OK - Payment deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletePaymentStatus"
                }
              }
            }
          },
          "510": {
            "$ref": "#/components/responses/510"
          },
          "520": {
            "$ref": "#/components/responses/520"
          },
          "530": {
            "$ref": "#/components/responses/530"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    },
    "parameters": {
      "x-device-id": {
        "name": "x-device-id",
        "required": true,
        "in": "header",
        "description": "String that uniquely identifies a single end-user or device.",
        "schema": {
          "type": "string"
        }
      },
      "Authorization": {
        "name": "Authorization",
        "in": "header",
        "required": false,
        "description": "Authentication scheme used to transmit the access token. Valid value is \"Bearer {access token}\".",
        "schema": {
          "type": "string"
        }
      },
      "x-originating-host": {
        "name": "x-originating-host",
        "in": "header",
        "required": false,
        "description": "The host where the request is originating from.\nIf you are using end to end encryption from our developer portal then this header is mandatory.\n",
        "schema": {
          "type": "string"
        }
      },
      "x-originating-date": {
        "name": "x-originating-date",
        "in": "header",
        "required": false,
        "description": "The request originating date.\nIf you are using end to end encryption from our developer portal then this header is mandatory.\n",
        "schema": {
          "type": "string"
        }
      },
      "Signature": {
        "name": "Signature",
        "in": "header",
        "required": false,
        "description": "The signature header consisting of the signature string\nIf you are using end to end encryption from our developer portal then this header is mandatory.\n",
        "schema": {
          "type": "string"
        }
      },
      "x-session-id": {
        "name": "x-session-id",
        "in": "header",
        "required": true,
        "description": "The session Id returned in the response body when this session was created.",
        "schema": {
          "type": "string"
        }
      },
      "x-psu-ip-address": {
        "name": "x-psu-ip-address",
        "in": "header",
        "required": true,
        "description": "The IP Address of the end-user (PSU), which must be provided if the PSU actively requests information.\nIf this value is not provided, then the call will count towards the number of TPP calls without PSU interaction.\nLeave it empty if the end user is not actively requesting account information, such as during automatic background updates.\nProvided in either IPv4 or IPv6 format.\n",
        "schema": {
          "type": "string"
        }
      },
      "x-psu-id": {
        "name": "x-psu-id",
        "in": "header",
        "required": false,
        "description": "Identifier of the end-user, passed as the base64-encoded value of an encrypted string following\nthe guidelines given in Documentation > Development > Sensitive end-user data.\nThis parameter is required if the value of 'personalIdentificationRequired' returned from the /banks endpoint is \"true\".\n",
        "schema": {
          "type": "string"
        }
      },
      "x-psu-corporate-id": {
        "name": "x-psu-corporate-id",
        "in": "header",
        "required": false,
        "description": "Corporate identifier of the end-user's organisation, used for business/corporate consents (the `business-accounts` scope).\n\n**Currently effective for Länsförsäkringar and Sparebanken Vest (Folio, bank `folio.noSPAVNOBB`).**\n\n- **Länsförsäkringar**: required in addition to `x-psu-id`, and both are distinct. `x-psu-id` carries the\n  signing person's personnummer (SSN), type `SSSN`; `x-psu-corporate-id` carries the organisationsnummer\n  (org number), type `SON`. Confirmed with the bank: both values must be **exactly 12 numeric digits** — a\n  continuous digit string with no hyphens, spaces, letters, or special characters (e.g. `12345678-0987` is\n  not valid). Fewer or more than 12 digits fails validation.\n- **Sparebanken Vest / Folio**: required on both consent initiation and every subsequent account/transaction\n  read, not only at consent time. Carries the 9-digit Norwegian organisation number. `x-psu-id` is optional\n  here and, if sent, must be the authorising person's national identifier — never the organisation number.\n\nFor all other banks this header is **currently ignored**, even those whose corporate flows rely on a corporate\nidentifier (e.g. DNB) — those flows continue to work via `x-psu-id` as today. Do not rely on this header for any\nbank other than the ones listed above; support for additional banks may be added later.\n\nIgnored for personal-scope consents.\n",
        "schema": {
          "type": "string"
        }
      },
      "paymentId": {
        "name": "paymentId",
        "in": "path",
        "required": true,
        "description": "The payment Id returned in the response body when the payment was initiated.",
        "schema": {
          "type": "string"
        }
      },
      "paymentProduct": {
        "name": "paymentProduct",
        "in": "path",
        "required": true,
        "description": "Specific method used for a payment, which is one of the following values: 'sepa-credit', 'domestic-transfer', 'domestic-scheduled-transfer', 'sepa-scheduled-credit', 'batch-transfer'.\n",
        "schema": {
          "type": "string"
        }
      },
      "customer-type": {
        "name": "customer-type",
        "in": "query",
        "required": false,
        "description": "Specifies the category of bank accounts to target for the request.\n\nAccepted values:\n- `PERSONAL` – retail / personal accounts. **Default** when the parameter is omitted.\n- `BUSINESS` – small-business accounts.\n- `CORPORATE` – corporate / large-enterprise accounts.\n\n**Payment endpoints**: optional; defaults to `PERSONAL` when not supplied.\n\n> **Note:** Not all banks support every customer type. Available types are determined by\n> what each bank exposes through its PSD2 API.\n",
        "schema": {
          "type": "string",
          "enum": [
            "PERSONAL",
            "BUSINESS",
            "CORPORATE"
          ],
          "default": "PERSONAL"
        }
      }
    },
    "schemas": {
      "DeletePaymentStatus": {
        "type": "object",
        "properties": {
          "paymentId": {
            "type": "string",
            "description": "Unique identifier for the payment."
          },
          "status": {
            "type": "string",
            "description": "Payment status according to ISO 20022 messaging standard. Status code examples are given in Documentation > Development > ISO Codes.",
            "enum": [
              "CANC",
              "RJCT",
              "PDNG",
              "NAUT"
            ]
          },
          "deleteDateTime": {
            "type": "string",
            "description": "Timestamp for payment deletion following ISO 8601.",
            "format": "date-time"
          }
        }
      },
      "ApiException": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for an error, used for debugging purposes. In connection with error reporting to Neonomics, it is called correlation ID.\n"
          },
          "errorCode": {
            "type": "string",
            "description": "Error code that identifies the error scenario. Description of error codes is available at Documentation > Development > Error Codes."
          },
          "message": {
            "type": "string",
            "description": "Text description of an error."
          },
          "source": {
            "type": "string",
            "description": "Identifies the source of an error. \"example\": \"C\" indicates a client error.\n"
          },
          "type": {
            "type": "string",
            "description": "Categorization of an error as either 'FATAL', 'NETWORK', 'BAD_REQUEST', 'AUTH' or 'CONSENT'.\nThe error types are described in Documentation > Development > Error Codes.\n"
          },
          "timestamp": {
            "type": "string"
          },
          "links": {
            "type": "array",
            "description": "Array of link objects related to the error. The meta object contains the sessionId.",
            "items": {
              "$ref": "#/components/schemas/links"
            }
          }
        }
      },
      "links": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "HTTP Method type of the link."
          },
          "rel": {
            "type": "string",
            "description": "API Operation related to the link."
          },
          "href": {
            "type": "string",
            "description": "Use this URL to call the consent endpoint, which will return the bank's authentication URL."
          },
          "meta": {
            "type": "object",
            "description": "This object contains an id which is the current sessionId."
          }
        }
      }
    },
    "responses": {
      "510": {
        "description": "Returned when the request is invalid due to client-side issues, such as missing or incorrect parameters. Check your request and refer to the [Client Error Codes](https://docs.neonomics.io/docs/error-codes#client-errors-10001999) for details.\n",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiException"
            }
          }
        }
      },
      "520": {
        "description": "Indicates a problem within the Neonomics platform. This error is not caused by your request. See [Neonomics Error Codes](https://docs.neonomics.io/docs/error-codes#neonomics-errors-30003999) for troubleshooting steps.\n",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiException"
            }
          }
        }
      },
      "530": {
        "description": "Returned when the bank encounters an error processing your request. Review the [Bank Error Codes](https://docs.neonomics.io/docs/error-codes#bank-errors-40005999) for more information and possible solutions.\n",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiException"
            }
          }
        }
      }
    }
  },
  "security": [
    {
      "bearerAuth": []
    }
  ]
}
```