---
title: "EP-26 — Update Channel Profile"
url: "https://dev.ionova.ai/apis/ars-address-resolution-service-4/versions/fdd2c316-7f84-4f04-8bb7-64e9bf97893b/operations/updateChannelProfile"
---

> Full API specification: https://dev.ionova.ai/apis/ars-address-resolution-service-4/versions/fdd2c316-7f84-4f04-8bb7-64e9bf97893b.md

# EP-26 — Update Channel Profile

`PATCH` `/channel-profile/{name}`

Operation ID: `updateChannelProfile`

Updates an existing named channel profile using PATCH semantics — only provided fields updated. All other profile values remain unchanged. Changes take effect immediately for all subsequent requests using this channelName. channelName cannot be changed — use DELETE + POST to rename.

## Path parameters

- `name` (string, required) - channelName of the profile to update

## Header parameters

- `X-Request-ID` (string, uuid, optional) - Client-supplied correlation ID echoed in response headers for tracing.

## Request body (required)

Content types: `application/json`, `application/xml`

## Responses

- `200` - Channel profile updated — full profile returned
- `400` - Bad Request — malformed request body or invalid parameter.
- `401` - Unauthorized — missing or invalid authentication credentials.
- `404` - Not Found — the requested resource does not exist.
- `422` - Unprocessable Entity — semantic validation failure (e.g. R-transaction type submitted to a non-R endpoint).
- `500` - Internal Server Error — unexpected server-side failure.

## OpenAPI definition

```yaml
openapi: 3.0.3
info:
  title: ARS — Address Resolution Service
  version: 4.3.1
servers:
  - url: https://api-uat.ionova.ai/ars
    description: UAT (test data only)
paths:
  /channel-profile/{name}:
    patch:
      tags:
        - Layer 5 — Config
      summary: EP-26 — Update Channel Profile
      description: >
        Updates an existing named channel profile using PATCH semantics — only
        provided

        fields updated. All other profile values remain unchanged.

        Changes take effect immediately for all subsequent requests using this
        channelName.

        channelName cannot be changed — use DELETE + POST to rename.
      operationId: updateChannelProfile
      parameters:
        - $ref: "#/components/parameters/XRequestId"
        - name: name
          in: path
          required: true
          description: channelName of the profile to update
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateChannelProfileRequest"
            example:
              channelSelection:
                schemeVersion: SR2026
              preferences:
                repairConfidenceThreshold: 0.85
          application/xml:
            schema:
              $ref: "#/components/schemas/UpdateChannelProfileRequest"
            example: |
              <UpdateChannelProfileRequest>
                <channelSelection>
                  <schemeVersion>SR2026</schemeVersion>
                </channelSelection>
                <preferences>
                  <repairConfidenceThreshold>0.85</repairConfidenceThreshold>
                </preferences>
              </UpdateChannelProfileRequest>
      responses:
        "200":
          description: Channel profile updated — full profile returned
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChannelProfileResponse"
            application/xml:
              schema:
                $ref: "#/components/schemas/ChannelProfileResponse"
              example: |
                <ChannelProfileResponse>
                  <channelName>MY_SEPA_SCT</channelName>
                  <channelSelection>
                    <schemeVersion>SR2026</schemeVersion>
                  </channelSelection>
                  <preferences>
                    <repairConfidenceThreshold>0.85</repairConfidenceThreshold>
                  </preferences>
                  <updatedAt>2026-05-01T09:00:00Z</updatedAt>
                </ChannelProfileResponse>
        "400":
          $ref: "#/components/responses/BadRequest"
        "401":
          $ref: "#/components/responses/Unauthorized"
        "404":
          $ref: "#/components/responses/NotFound"
        "422":
          $ref: "#/components/responses/UnprocessableEntity"
        "500":
          $ref: "#/components/responses/InternalServerError"
      security:
        - ApiKeyAuth: []
security:
  - ApiKeyAuth: []
components:
  parameters:
    XRequestId:
      name: X-Request-ID
      in: header
      required: false
      schema:
        type: string
        format: uuid
      description: Client-supplied correlation ID echoed in response headers for tracing.
  schemas:
    UpdateChannelProfileRequest:
      type: object
      xml:
        name: UpdateChannelProfileRequest
      description: >
        Request body for EP-26 — Update Channel Profile (PATCH semantics).

        Only fields provided are updated. channelName cannot be changed via
        PATCH.
      properties:
        channelSelection:
          type: object
          description: PATCH of channelSelection block. Only provided sub-fields are
            updated.
          properties:
            channel:
              $ref: "#/components/schemas/ChannelType"
            scheme:
              $ref: "#/components/schemas/SchemeCode"
            schemeVersion:
              $ref: "#/components/schemas/SchemeVersion"
            direction:
              $ref: "#/components/schemas/Direction"
            messageType:
              $ref: "#/components/schemas/MessageType"
            partyRole:
              $ref: "#/components/schemas/PartyRole"
            pspCountry:
              type: string
              pattern: ^[A-Z]{2}$
            payerPspCountry:
              type: string
              pattern: ^[A-Z]{2}$
            payeePspCountry:
              type: string
              pattern: ^[A-Z]{2}$
            timezone:
              type: string
        corridor:
          type: object
          properties:
            sendingCountry:
              type: string
              pattern: ^[A-Z]{2}$
            receivingCountry:
              type: string
              pattern: ^[A-Z]{2}$
            currency:
              type: string
              pattern: ^[A-Z]{3}$
        preferences:
          type: object
          properties:
            outputMode:
              $ref: "#/components/schemas/OutputMode"
            autoRepairMode:
              $ref: "#/components/schemas/AutoRepairMode"
            enforcePostNovember2026:
              type: boolean
            targetFormat:
              $ref: "#/components/schemas/TargetFormat"
            quality:
              $ref: "#/components/schemas/Quality"
            repairConfidenceThreshold:
              type: number
              minimum: 0
              maximum: 1
    ChannelProfileResponse:
      type: object
      xml:
        name: ChannelProfileResponse
      description: Full channel profile returned by EP-25 (201), EP-26 (200), and
        EP-27 (200).
      properties:
        channelName:
          type: string
          example: CBPR_OUTBOUND_US
        channelSelection:
          $ref: "#/components/schemas/ChannelSelection"
        corridor:
          $ref: "#/components/schemas/Corridor"
        preferences:
          $ref: "#/components/schemas/ChannelPreferences"
        createdAt:
          type: string
          format: date-time
          description: Timestamp when this channel profile was first registered.
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when this channel profile was last updated.
    ChannelType:
      type: string
      description: Payment delivery channel type.
      enum:
        - api
        - file
        - other
    SchemeCode:
      type: string
      description: Payment scheme identifier.
      enum:
        - SCT
        - SCT_INST
        - SDD_CORE
        - SDD_B2B
        - OCT_INST
        - CBPRPLUS
        - CHAPS
        - T2
        - EURO1
        - FEDWIRE
        - OTHER
    SchemeVersion:
      type: string
      description: ISO 20022 scheme version / SR year.
      enum:
        - SR2025
        - SR2026
    Direction:
      type: string
      description: Payment processing direction. OUTBOUND = sending; INBOUND = receiving.
      enum:
        - OUTBOUND
        - INBOUND
    MessageType:
      type: string
      description: >
        ISO 20022 message type. R-transaction types (pain.002, pain.007,
        pacs.002,

        pacs.004, camt.029, camt.052, camt.053, camt.054, camt.055, camt.056,
        camt.058, camt.110, camt.111) must be submitted to R-transaction
        endpoints only

        (EP-07, EP-15). Submitting them to Check/Convert endpoints returns HTTP
        422 (REG-06).
      enum:
        - pain.001
        - pain.002
        - pain.007
        - pain.008
        - pacs.002
        - pacs.003
        - pacs.004
        - pacs.008
        - pacs.009
        - pacs.010
        - camt.029
        - camt.052
        - camt.053
        - camt.054
        - camt.055
        - camt.056
        - camt.057
        - camt.058
        - camt.060
        - camt.105
        - camt.106
        - camt.107
        - camt.108
        - camt.109
        - camt.110
        - camt.111
    PartyRole:
      type: string
      description: >
        ISO 20022 party role. Determines the PostalAddress24 XSD variant:

        - **__2 variant** (ultimate_debtor, ultimate_creditor,
        initiating_party):
          TownName AND Country are MANDATORY. FULLY_UNSTRUCTURED is NEVER permitted (REG-05).
        - **__1 variant** (debtor, creditor):
          Max 3 AddressLines. FULLY_UNSTRUCTURED is permitted until SR2026 cutover (2026-11-22T02:30:00Z) for INBOUND;
          banned OUTBOUND post-cutover.
      enum:
        - debtor
        - creditor
        - ultimate_debtor
        - ultimate_creditor
        - initiating_party
    OutputMode:
      type: string
      description: |
        Address line rendering constraints applied during output formatting.
        - EPC: 2 lines × 70 chars
        - CBPR_PLUS: 3 lines × 35 chars
        - MT_LEGACY: 2 lines × 35 chars
        - COMPLIANCE: 7 lines × 70 chars
      enum:
        - EPC
        - CBPR_PLUS
        - MT_LEGACY
        - COMPLIANCE
    AutoRepairMode:
      type: string
      description: ARS AutoCorrect repair aggressiveness level.
      enum:
        - CONSERVATIVE
        - STANDARD
        - AGGRESSIVE
    TargetFormat:
      type: string
      description: >
        Target conversion format. `auto` lets ARS select the best achievable
        format.
      enum:
        - auto
        - FULLY_STRUCTURED
        - HYBRID
        - FULLY_UNSTRUCTURED
    Quality:
      type: string
      description: Postal database verification depth.
      enum:
        - premium
        - standard
        - basic
    ChannelSelection:
      type: object
      xml:
        name: ChannelSelection
      description: Channel identification block for channelProfile registration and
        retrieval.
      required:
        - channel
      properties:
        channel:
          allOf:
            - $ref: "#/components/schemas/ChannelType"
          description: Payment delivery channel type. Required.
        scheme:
          $ref: "#/components/schemas/SchemeCode"
        schemeVersion:
          $ref: "#/components/schemas/SchemeVersion"
        direction:
          $ref: "#/components/schemas/Direction"
        messageType:
          $ref: "#/components/schemas/MessageType"
        partyRole:
          allOf:
            - $ref: "#/components/schemas/PartyRole"
          description: Default party role. Determines PostalAddress24 XSD variant.
        pspCountry:
          type: string
          pattern: ^[A-Z]{2}$
          description: PSP home country for this channel. Overrides account-level
            pspCountry.
        payerPspCountry:
          type: string
          pattern: ^[A-Z]{2}$
          description: Default payer PSP country for EEA mandate determination.
        payeePspCountry:
          type: string
          pattern: ^[A-Z]{2}$
          description: Default payee PSP country for EEA mandate determination.
        timezone:
          type: string
          description: Default IANA timezone for executionDatetime evaluation (e.g.
            Europe/Frankfurt).
    Corridor:
      type: object
      xml:
        name: Corridor
      description: Default corridor (geographic routing) block for a channelProfile.
      properties:
        sendingCountry:
          type: string
          pattern: ^[A-Z]{2}$
          description: Default sending PSP country (ISO 3166-1 alpha-2).
        receivingCountry:
          type: string
          pattern: ^[A-Z]{2}$
          description: Default receiving PSP country (ISO 3166-1 alpha-2).
        currency:
          type: string
          pattern: ^[A-Z]{3}$
          description: Default transaction currency (ISO 4217, e.g. EUR, GBP, USD).
    ChannelPreferences:
      type: object
      xml:
        name: ChannelPreferences
      description: Output and behaviour preference defaults for a channelProfile.
      properties:
        outputMode:
          $ref: "#/components/schemas/OutputMode"
        autoRepairMode:
          $ref: "#/components/schemas/AutoRepairMode"
        enforcePostNovember2026:
          type: boolean
          description: When true, force SR2026 rules even if schemeVersion=SR2025.
        targetFormat:
          $ref: "#/components/schemas/TargetFormat"
        quality:
          $ref: "#/components/schemas/Quality"
        repairConfidenceThreshold:
          type: number
          minimum: 0
          maximum: 1
          description: Default minimum confidence score for REPAIRED classification
            (0.0–1.0).
    ErrorResponse:
      type: object
      xml:
        name: ErrorResponse
      description: Standard error envelope returned on 4xx and 5xx responses.
      properties:
        code:
          type: integer
          description: HTTP status code.
        message:
          type: string
          description: Human-readable error description.
        requestId:
          type: string
          description: Correlation ID for support.
  responses:
    BadRequest:
      description: Bad Request — malformed request body or invalid parameter.
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorResponse"
          example:
            code: 400
            message: Request body is not valid JSON.
            requestId: b1a2c3d4-0000-0000-0000-000000000000
        application/xml:
          schema:
            $ref: "#/components/schemas/ErrorResponse"
          example: |
            <?xml version="1.0" encoding="UTF-8"?>
            <ErrorResponse>
              <code>400</code>
              <message>Request body is not valid JSON.</message>
              <requestId>b1a2c3d4-0000-0000-0000-000000000000</requestId>
            </ErrorResponse>
    Unauthorized:
      description: Unauthorized — missing or invalid authentication credentials.
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorResponse"
          example:
            code: 401
            message: Authentication credentials are missing or invalid.
            requestId: b1a2c3d4-0000-0000-0000-000000000001
        application/xml:
          schema:
            $ref: "#/components/schemas/ErrorResponse"
          example: >
            <?xml version="1.0" encoding="UTF-8"?>

            <ErrorResponse>
              <code>401</code>
              <message>Authentication credentials are missing or invalid.</message>
              <requestId>b1a2c3d4-0000-0000-0000-000000000001</requestId>
            </ErrorResponse>
    NotFound:
      description: Not Found — the requested resource does not exist.
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorResponse"
          example:
            code: 404
            message: The requested resource was not found.
            requestId: b1a2c3d4-0000-0000-0000-000000000002
        application/xml:
          schema:
            $ref: "#/components/schemas/ErrorResponse"
          example: |
            <?xml version="1.0" encoding="UTF-8"?>
            <ErrorResponse>
              <code>404</code>
              <message>The requested resource was not found.</message>
              <requestId>b1a2c3d4-0000-0000-0000-000000000002</requestId>
            </ErrorResponse>
    UnprocessableEntity:
      description: Unprocessable Entity — semantic validation failure (e.g.
        R-transaction type submitted to a non-R endpoint).
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorResponse"
          example:
            code: 422
            message: R-transaction message types (e.g. pacs.002) are not permitted on this
              endpoint. Use /r-transaction-message-party-addresses.
            requestId: b1a2c3d4-0000-0000-0000-000000000004
        application/xml:
          schema:
            $ref: "#/components/schemas/ErrorResponse"
          example: >
            <?xml version="1.0" encoding="UTF-8"?>

            <ErrorResponse>
              <code>422</code>
              <message>R-transaction message types (e.g. pacs.002) are not permitted on this endpoint.</message>
              <requestId>b1a2c3d4-0000-0000-0000-000000000004</requestId>
            </ErrorResponse>
    InternalServerError:
      description: Internal Server Error — unexpected server-side failure.
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorResponse"
          example:
            code: 500
            message: An unexpected error occurred. Please contact support with your
              requestId.
            requestId: b1a2c3d4-0000-0000-0000-000000000006
        application/xml:
          schema:
            $ref: "#/components/schemas/ErrorResponse"
          example: |
            <?xml version="1.0" encoding="UTF-8"?>
            <ErrorResponse>
              <code>500</code>
              <message>An unexpected error occurred.</message>
              <requestId>b1a2c3d4-0000-0000-0000-000000000006</requestId>
            </ErrorResponse>
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: Your ioNova platform API key. Generate it from your organisation
        admin in the ioNova app, then paste it here to test.
```
