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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| profileName | query | string | false | Filter by profile name (partial match) |
| pageNumber | query | number | false | Default 1 |
| pageSize | query | number | false | Default 20; use -1 to return all profiles on one page |
Response
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK (opens in a new tab) | OK | Wrapper: 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
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| profileName | String | Yes | — | Display name for this profile; must be unique within the PBO |
| currency | String | Yes | — | Settlement currency(ISO-4217) this profile is created for |
| acqType | String | No | "card" | "card" or "qr". "qr" requires the PBO's QR support config to be enabled — see PBO Owner |
| connUrl | String | No | — | Acquirer host endpoint URL |
| notifyUrl | String | No | — | Callback URL for async notifications from this acquirer |
| connExtraParams | String | No | — | JSON object of extra connection parameters passed to the host |
| connMessageFormat | String | Yes | — | Host message format used on this connection. One of S2M_8583, MASARAT_8583, CASHPLUS_8583, EZ_AIO, EZ_WALLET, POMELO_JSON, MS_ENABLER |
| enablerMsgFormat | String | No | — | Overrides the PBO-level Enabler message format for this profile only |
| enablerParams | String | No | — | Comma/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 |
| asDefault | Boolean | No | false | Marks 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 |
| asSettleBlock | Boolean | No | false | Excludes transactions on this profile from PBO settlement processing |
| methodList | String | YES | — | JSON-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. |
| emvList | String | Required for card | — | JSON-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
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK (opens in a new tab) | Created | Wrapper: Response<T> Data: { id: number } |
| — | code: 10000 | Validation error | e.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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| profileId | path | string | true | Acquirer 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
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK (opens in a new tab) | OK | Wrapper: 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| profileId | path | string | true | Acquirer profile ID |
Response
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK (opens in a new tab) | OK | Wrapper: Response<T> |
| — | code: 10000, "Current acquirer used by merchant" | Profile still has merchant payment bindings | — |
Example Response (200)
{
"msg": "SUCCESS",
"code": 0
}