---
updatedAt: 2026-06-09T17:02:41.000Z
---

Fetch the complete documentation index at: https://hq.docs.netevia.com/llms.txt. Use this file to discover all available pages before exploring further.

# /api/v2/merchant/info

## Update Merchant Info (V2)

Updates the core configuration of an existing V2 merchant application record. The writable fields cover the fees program, POS system, agent profile association, boarding settings template, MID, and external system identifiers. This endpoint is used to correct or change top-level merchant metadata before or after submission. Only the fields provided in the `merchant` sub-object are updated.

### Endpoint

`POST /api/v2/merchant/info`

### Authentication

Basic HTTP Authentication required.
Encode `username:password` in Base64 and pass in the Authorization header:

```
Authorization: Basic {base64(username:password)}
```

### When to use

Call this endpoint when you need to change the agent assignment, fees program, or POS system for a merchant that was already created with `POST /api/v2/merchant/create`. It is also used to associate external client or chain IDs for multi-system integrations. After updating, verify the changes with `GET /api/v2/merchant/info` before submitting.

### Request Body

| Field                       | Type               | Required                   | Description                                                                                                                                                                                                                                      |
| --------------------------- | ------------------ | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| id                          | integer (int32)    | Yes                        | Merchant profile ID to update (1–999999)                                                                                                                                                                                                         |
| merchant                    | TsysMerchantV2Edit | No                         | Merchant configuration fields to update                                                                                                                                                                                                          |
| merchant.feesProgram        | string (enum)      | Yes (if merchant provided) | Pricing program: `Traditional`, `CashDiscount`, `Surcharge`, `ServiceFee`, `DualPricing`                                                                                                                                                         |
| merchant.agentProfileId     | integer (int32)    | Yes (if merchant provided) | Agent profile ID from `GET /api/v2/agent/profile`                                                                                                                                                                                                |
| merchant.pos                | string (enum)      | Yes (if merchant provided) | POS system type: `None`, `AptitoPalomaPOS`, `Clover`, `PalomaPOS`, `Aldelo`, `Restoactive`, `PoyntPOS`, `CloverGo`, `UnifiedMpos`, `CustomPos`, `RetailCloud`, `EHopper`, `FreedomPos`, `ClubPos`, `SelfLane`, `OtfPOS`, `NProKiosk`, `GretaPOS` |
| merchant.boardingSettingsId | integer (int32)    | No                         | Boarding settings template ID to apply                                                                                                                                                                                                           |
| merchant.mid                | string             | No                         | Existing MID to associate (for manual MID assignment scenarios)                                                                                                                                                                                  |
| merchant.externalClientID   | string             | No                         | External client identifier for cross-system linking                                                                                                                                                                                              |
| merchant.externalChainID    | string             | No                         | External chain identifier for multi-location grouping                                                                                                                                                                                            |

```json
{
  "id": 30912,
  "merchant": {
    "feesProgram": "Surcharge",
    "agentProfileId": 204,
    "pos": "PoyntPOS",
    "boardingSettingsId": 22,
    "externalClientID": "EXT-CLIENT-8801"
  }
}
```

### Response

**200 OK**

| Field            | Type    | Description                                                       |
| ---------------- | ------- | ----------------------------------------------------------------- |
| requestId        | integer | Echo of the internal request ID                                   |
| success          | boolean | `true` if the merchant info was updated successfully              |
| error            | string  | Error message if `success` is `false`                             |
| validationErrors | array   | Field-level validation errors with `field` and `error` properties |

```json
{
  "requestId": 71204,
  "success": true,
  "error": null,
  "validationErrors": []
}
```

### Error Codes

| Code | When it happens                                                                                |
| ---- | ---------------------------------------------------------------------------------------------- |
| 400  | `id` is missing, outside 1–999999 range, or `merchant` sub-object contains invalid enum values |
| 401  | Invalid or missing Basic Auth credentials                                                      |
| 403  | User does not have permission to update this merchant                                          |
| 404  | No merchant found with the given `id`                                                          |
| 500  | Internal server error                                                                          |

### Common Mistakes

* Confusing this POST endpoint with the GET endpoint at the same path (`GET /api/v2/merchant/info`) — the POST updates while the GET retrieves.
* Omitting `feesProgram`, `agentProfileId`, or `pos` from the `merchant` object — all three are required if the `merchant` object is included at all.
* Using `CashDiscountLegacy` as the `feesProgram` value — this value appears in GET responses for legacy records but is not accepted as input in update calls.
* Not verifying the update with `GET /api/v2/merchant/info` before calling the submit endpoint — confirms the changes were applied correctly.
* Sending `id: 0` or negative values — the schema enforces `minimum: 1` and `maximum: 999999`.

### Related Endpoints

* `GET /api/v2/merchant/info` — Retrieve the current merchant profile before or after updating
* `POST /api/v2/merchant/fees` — Update the merchant's fee schedule
* `POST /api/v2/merchant/submit` — Submit the complete merchant application

### Example

```bash
curl -X POST https://hq.staging.netevia.dev/api/v2/merchant/info \
  -H "Authorization: Basic $(echo -n 'username:password' | base64)" \
  -H "Content-Type: application/json" \
  -d '{
    "id": 30912,
    "merchant": {
      "feesProgram": "Surcharge",
      "agentProfileId": 204,
      "pos": "PoyntPOS",
      "boardingSettingsId": 22,
      "externalClientID": "EXT-CLIENT-8801"
    }
  }'
```

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "info": {
    "version": "v2",
    "title": "Netevia HQ | API Documentation",
    "description": "Netevia HQ | API Documentation"
  },
  "paths": {
    "/api/v2/merchant/info": {
      "post": {
        "tags": [
          "Merchant applications/Merchants data management"
        ],
        "operationId": "BoardingV2_UpdateMerchantInfo",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTsysMerchantV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTsysMerchantV2"
              }
            },
            "application/xml": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTsysMerchantV2"
              }
            },
            "text/xml": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTsysMerchantV2"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTsysMerchantV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResult"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResult"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResult"
                }
              }
            }
          }
        }
      }
    }
  },
  "security": [
    {
      "Basic": []
    }
  ],
  "servers": [
    {
      "url": "https://hq.staging.netevia.dev"
    }
  ],
  "components": {
    "securitySchemes": {
      "Basic": {
        "type": "http",
        "description": "Basic HTTP Authentication",
        "scheme": "basic"
      }
    },
    "schemas": {
      "ValidationError": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string"
          },
          "error": {
            "type": "string"
          }
        }
      },
      "TsysMerchantV2Edit": {
        "required": [
          "feesProgram",
          "agentProfileId",
          "pos"
        ],
        "type": "object",
        "properties": {
          "feesProgram": {
            "enum": [
              "Traditional",
              "CashDiscount",
              "Surcharge",
              "ServiceFee",
              "DualPricing"
            ],
            "type": "string"
          },
          "agentProfileId": {
            "format": "int32",
            "type": "integer"
          },
          "pos": {
            "enum": [
              "None",
              "AptitoPalomaPOS",
              "Clover",
              "PalomaPOS",
              "Aldelo",
              "Restoactive",
              "PoyntPOS",
              "CloverGo",
              "UnifiedMpos",
              "CustomPos",
              "RetailCloud",
              "EHopper",
              "FreedomPos",
              "ClubPos",
              "SelfLane",
              "OtfPOS",
              "NProKiosk",
              "GretaPOS"
            ],
            "type": "string"
          },
          "boardingSettingsId": {
            "format": "int32",
            "type": "integer"
          },
          "mid": {
            "type": "string"
          },
          "externalClientID": {
            "type": "string"
          },
          "externalChainID": {
            "type": "string"
          }
        }
      },
      "UpdateTsysMerchantV2": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "merchant": {
            "$ref": "#/components/schemas/TsysMerchantV2Edit"
          },
          "id": {
            "format": "int32",
            "maximum": 999999,
            "minimum": 1,
            "type": "integer"
          }
        }
      },
      "ApiResult": {
        "type": "object",
        "properties": {
          "requestId": {
            "format": "int32",
            "type": "integer"
          },
          "success": {
            "type": "boolean"
          },
          "error": {
            "type": "string"
          },
          "validationErrors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            }
          }
        }
      }
    }
  }
}
```