/api/v2/merchant/create

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Create Merchant (V2)

Creates a new merchant application in the V2 boarding system, returning a merchantProfileId that is used in all subsequent boarding steps. This endpoint establishes the merchant record with core identifying information — the fees program, POS system, agent, and owner name — but does not submit the application to the processor. Use POST /api/v2/merchant/submit to complete the full submission after populating all application sections.

Endpoint

POST /api/v2/merchant/create

Authentication

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

Authorization: Basic {base64(username:password)}

When to use

This is the first step in the V2 merchant onboarding workflow after retrieving the agent profile (GET /api/v2/agent/profile) and boarding settings. Call this to create the merchant shell record, then use the returned merchantProfileId to populate merchant info, fees, owner details, and equipment via the update endpoints before calling the full submit endpoint.

Request Body

FieldTypeRequiredDescription
feesProgramstring (enum)YesPricing program for the merchant: Traditional, CashDiscount, Surcharge, ServiceFee, DualPricing
firstNamestringYesPrimary owner's first name
lastNamestringYesPrimary owner's last name
dbastringYesDoing Business As name of the merchant
posstring (enum)YesPoint-of-sale system: None, AptitoPalomaPOS, Clover, PalomaPOS, Aldelo, Restoactive, PoyntPOS, CloverGo, UnifiedMpos, CustomPos, RetailCloud, EHopper, FreedomPos, ClubPos, SelfLane, OtfPOS, NProKiosk, GretaPOS
agentProfileIdinteger (int32)YesAgent profile ID — obtained from GET /api/v2/agent/profile
emailstringNoMerchant owner's email address
guidstringNoExternal system GUID for idempotency or cross-system linking
boardingSettingsIdinteger (int32)NoBoarding settings template ID — obtained from the boarding settings endpoint
{
  "feesProgram": "CashDiscount",
  "firstName": "Sarah",
  "lastName": "Hernandez",
  "dba": "The Corner Bakery",
  "pos": "Clover",
  "agentProfileId": 204,
  "email": "[email protected]",
  "boardingSettingsId": 15
}

Response

200 OK

FieldTypeDescription
data.merchantProfileIdintegerNewly created merchant profile ID — required for all subsequent boarding API calls
requestIdintegerEcho of the internal request ID
successbooleantrue if the merchant record was created successfully
errorstringError message if success is false
validationErrorsarrayField-level validation errors with field and error properties
{
  "data": {
    "merchantProfileId": 30912
  },
  "requestId": 456,
  "success": true,
  "error": null,
  "validationErrors": []
}

Error Codes

CodeWhen it happens
400Required fields (feesProgram, firstName, lastName, dba, pos, agentProfileId) are missing or contain invalid enum values
401Invalid or missing Basic Auth credentials
403User does not have permission for this operation
404agentProfileId does not correspond to a valid agent profile
500Internal server error while creating the merchant record

Common Mistakes

  • Choosing a feesProgram that is not supported by the agent's boarding settings — confirm valid programs via the boarding settings endpoint first.
  • Sending a pos value not in the enum list — POS system names are case-sensitive and must match exactly.
  • Not capturing the returned merchantProfileId — every downstream V2 endpoint (update info, fees, submit) requires this ID.
  • Calling this endpoint multiple times for the same merchant accidentally creates duplicate merchant records with separate IDs.
  • Using BoardingV1_CreateMerchant (POST /api/v1/merchant/create) when integrating new workflows — V2 is preferred for new integrations.

Related Endpoints

  • GET /api/v2/agent/profile — Retrieve agent profile details and valid agentProfileId
  • POST /api/v2/merchant/submit — Submit the complete merchant application after all sections are populated
  • GET /api/v2/merchant/info — Retrieve current merchant profile data after creation

Example

curl -X POST https://hq.staging.netevia.dev/api/v2/merchant/create \
  -H "Authorization: Basic $(echo -n 'username:password' | base64)" \
  -H "Content-Type: application/json" \
  -d '{
    "feesProgram": "CashDiscount",
    "firstName": "Sarah",
    "lastName": "Hernandez",
    "dba": "The Corner Bakery",
    "pos": "Clover",
    "agentProfileId": 204,
    "email": "[email protected]",
    "boardingSettingsId": 15
  }'
Body Params
string
enum
required
Allowed:
string
required
string
required
string
required
string
enum
required
int32
required
string
string
int32
Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
string
enum
Defaults to application/json

Generated from available request content types

Allowed:
Response

Language
Credentials
Basic
base64
:
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
text/json
data
requestId
success