Merchant Management Service
API Reference(NEW)
Acquirer Profile

API endpoints for managing acquirer profiles. Same authentication as the rest of the Service API — see the Overview for what's new in this version.

Get Acquirer Profiles

GET /api/openapi/v1/acquirer
Authorization: Bearer {jwt}

Parameters

NameInTypeRequiredDescription
profileNamequerystringfalseFilter by profile name (partial match)
pageNumberquerynumberfalseDefault 1
pageSizequerynumberfalseDefault 20; use -1 to return all profiles on one page

Response

StatusMeaningDescriptionSchema
200OK (opens in a new tab)OKWrapper: Response List<T>
Data: AcquirerProfile

Example Response (200)

{
  "msg": "SUCCESS",
  "code": 0,
  "data": {
    "total": 2,
    "current": 1,
    "hasNext": false,
    "records": [
      {
        "profileId": 5201,
        "groupId": "G-12345678",
        "profileName": "Visa & Mastercard - US",
        "asDefault": true,
        "asSettleBlock": false,
        "currency": "USD",
        "acqType": "card",
        "connUrl": "https://acquirer-host.example.com/gateway",
        "connMessageFormat": "MS_ENABLER",
        "methodList": "{\"01\":[],\"02\":[]}",
        "emvList": "{\"01\":[1675],\"02\":[1676]}",
        "createdBy": "[email protected]",
        "createdAt": "2026-05-01T02:12:57+0000",
        "updatedAt": "2026-05-01T02:12:57+0000"
      },
      {
        "profileId": 5202,
        "groupId": "G-12345678",
        "profileName": "Unionpay - US",
        "asDefault": false,
        "asSettleBlock": false,
        "currency": "USD",
        "acqType": "card",
        "connUrl": "https://acquirer-host-2.example.com/gateway",
        "connMessageFormat": "MS_ENABLER",
        "methodList": "{\"03\":[]}",
        "emvList": "{\"03\":[1680]}",
        "createdBy": "[email protected]",
        "createdAt": "2026-05-02T09:40:11+0000",
        "updatedAt": "2026-05-02T09:40:11+0000"
      }
    ]
  }
}

Create Acquirer Profile

POST /api/openapi/v1/acquirer
Content-Type: application/json
Authorization: Bearer {jwt}

Parameters

NameTypeRequiredDefaultDescription
profileNameStringYesDisplay name for this profile; must be unique within the PBO
currencyStringYesSettlement currency(ISO-4217) this profile is created for
acqTypeStringNo"card""card" or "qr". "qr" requires the PBO's QR support config to be enabled — see PBO Owner
connUrlStringNoAcquirer host endpoint URL
notifyUrlStringNoCallback URL for async notifications from this acquirer
connExtraParamsStringNoJSON object of extra connection parameters passed to the host
connMessageFormatStringYesHost message format used on this connection. One of S2M_8583, MASARAT_8583, CASHPLUS_8583, EZ_AIO, EZ_WALLET, POMELO_JSON, MS_ENABLER
enablerMsgFormatStringNoOverrides the PBO-level Enabler message format for this profile only
enablerParamsStringNoComma/semicolon-separated list of param field names (e.g. "acqMid,acqTid") this profile expects under extParams.acquirers.{profileId} on Generate Activation Code; falls back to the PBO's group-level list when blank
asDefaultBooleanNofalseMarks this profile as the default for its acqType. Only one profile per acqType can be default — setting this clears the default flag on any other profile of the same type
asSettleBlockBooleanNofalseExcludes transactions on this profile from PBO settlement processing
methodListStringYESJSON-encoded string — map of payment method code → list of allowed transaction types and is reserved for future use, e.g. "{\"01\":[]}". See PaymentMethod enum for codes.
emvListStringRequired for cardJSON-encoded string — map of payment method code → list of EMV config IDs (from EMV Config) to apply for that method, e.g. "{\"01\":[1675]}". Every method key present in methodList must have at least one non-zero EMV id here when acqType is card

Request Body Example

{
  "profileName": "Visa & Mastercard - US",
  "currency": "USD",
  "acqType": "card",
  "connUrl": "https://acquirer-host.example.com/gateway",
  "notifyUrl": "https://your-server.example.com/webhooks/acquirer",
  "connMessageFormat": "MS_ENABLER",
  "asDefault": true,
  "asSettleBlock": false,
  "methodList": "{\"01\":[],\"02\":[]}",
  "emvList": "{\"01\":[1675],\"02\":[1676]}"
}

Response

StatusMeaningDescriptionSchema
200OK (opens in a new tab)CreatedWrapper: Response<T>
Data: { id: number }
code: 10000Validation errore.g. paymentMethod required / emv required when acqType=card and methodList/emvList are missing or incomplete

Example Response (200)

{
  "msg": "SUCCESS",
  "code": 0,
  "data": {
    "id": 5201
  }
}

Update Acquirer Profile

Partial update — only the fields you include are changed; everything else keeps its current value. currency and acqType are immutable after creation and are not accepted on this endpoint.

PUT /api/openapi/v1/acquirer/{profileId}
Content-Type: application/json
Authorization: Bearer {jwt}

Parameters

NameInTypeRequiredDescription
profileIdpathstringtrueAcquirer profile ID

Body accepts the same fields as Create except currency and acqType, all optional — omit a field to leave it unchanged.

Request Body Example

{
  "profileName": "Visa & Mastercard - US (primary)",
  "connUrl": "https://acquirer-host-new.example.com/gateway",
  "asDefault": true
}

Response

StatusMeaningDescriptionSchema
200OK (opens in a new tab)OKWrapper: Response<T>

Example Response (200)

{
  "msg": "SUCCESS",
  "code": 0
}

Delete Acquirer Profile

Fails if any merchant still has a payment method bound to this profile — remove those bindings first via Merchant payment config.

DELETE /api/openapi/v1/acquirer/{profileId}
Authorization: Bearer {jwt}

Parameters

NameInTypeRequiredDescription
profileIdpathstringtrueAcquirer profile ID

Response

StatusMeaningDescriptionSchema
200OK (opens in a new tab)OKWrapper: Response<T>
code: 10000, "Current acquirer used by merchant"Profile still has merchant payment bindings

Example Response (200)

{
  "msg": "SUCCESS",
  "code": 0
}