APG PayAPG Paydocs

Merchants

Create merchants

POST/merchants

Onboard a merchant into a marketplace, as a seller or as a supplier. Selected by the body's type.

2 actionsMchtCmdCreateMchtCmdCreateSupplier

Permissions

Required permission
merchants:create

Requires the `create` action on `merchants` for the supplied runtime context

Request body

This body is a typed union. Pick a variant to see its fields and a matching example.

Discriminated by type
type = "MchtCmdCreate"
marketplaceIdMktpIdrequired

The marketplace to onboard into. Named rather than inferred, an administrator's credential names no marketplace.

Example mktp_9f2Kd8QpLzXw

The trading identity of a merchant.

slugstringrequired
timeZonestringrequired
referenceMerchantIdstring

Your own identifier for this merchant.

Example your-own-reference

termsAndConditionsAcceptedbooleanrequired

Whether the merchant has accepted the platform's terms. The operation records it against the merchant, so it is stated rather than assumed.

Example true

tradingCountrystring

ISO-3166 alpha-2. Only needed when the merchant trades somewhere other than business.country.

Example AU

organisationIdOrgId

An organisation already in the platform that this merchant is, such as a business already onboarded for another merchant. It must be one you can read on /organisations. The merchant shares that organisation's record instead of one being made from business, so business.businessRegistrationNumber and business.taxRegistrationNumber must be left out and business.country must be the organisation's country.

Example org_9f2Kd8QpLzXw

curl -X POST https://api.tst.au.apgpay.dev/merchants \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "MchtCmdCreate",
  "marketplaceId": "mktp_9f2Kd8QpLzXw",
  "business": {
    "type": "MchtBusinessAttributes",
    "legalName": "Ada Lovelace",
    "brandName": "Ada Lovelace",
    "businessRegistrationNumber": "string",
    "taxRegistrationNumber": "string",
    "country": "AU",
    "website": "string",
    "contactEmail": "ada@example.com"
  },
  "slug": "string",
  "timeZone": "string",
  "referenceMerchantId": "your-own-reference",
  "termsAndConditionsAccepted": true,
  "tradingCountry": "AU",
  "organisationId": "org_9f2Kd8QpLzXw"
}'

Responses

The response is a tagged shape: type is always "MchtCreateRspAttributes". Switch on it; subtypes can be added, and a client that already reads it will not break.

Discriminated by type
type = "MchtCreateRspAttributes"

The resource that was created.

Example
{
  "type": "MchtCreateRspAttributes",
  "created": {
    "type": "MchtViewStandard",
    "merchantId": "mcht_9f2Kd8QpLzXw",
    "organisationId": "org_9f2Kd8QpLzXw",
    "referenceMerchantId": "your-own-reference",
    "slug": "string",
    "status": "Onboarding",
    "verification": {
      "type": "MchtVerificationAttributes",
      "status": "Pending",
      "errorCodes": [
        "string"
      ],
      "details": [
        "string"
      ]
    },
    "business": {
      "type": "MchtBusinessAttributes",
      "legalName": "Ada Lovelace",
      "brandName": "Ada Lovelace",
      "businessRegistrationNumber": "string",
      "taxRegistrationNumber": "string",
      "country": "AU",
      "website": "string",
      "contactEmail": "ada@example.com"
    },
    "timeZone": "string",
    "publicProfile": {
      "type": "MchtPublicProfileAttributes",
      "brandName": "Ada Lovelace",
      "cardStatementName": "Ada Lovelace",
      "smsSenderName": "Ada Lovelace",
      "website": "string",
      "supportSite": "string"
    },
    "contact": {
      "type": "MchtContactAttributes",
      "firstName": "Ada Lovelace",
      "lastName": "Ada Lovelace",
      "title": "string",
      "contactEmail": "ada@example.com",
      "supportEmail": "ada@example.com",
      "phoneNumber": "+61400000000",
      "address": {
        "type": "MchtAddressAttributes",
        "unitNumber": "string",
        "streetNumber": "string",
        "streetName": "Ada Lovelace",
        "streetType": "string",
        "suburb": "string",
        "city": "string",
        "state": "string",
        "postalCode": "3000",
        "country": "AU"
      }
    },
    "payoutSettings": {
      "type": "MchtPayoutSettingsAttributes",
      "schedule": "Daily",
      "dayOfWeek": "string",
      "dayOfMonth": 6,
      "delayDays": 1250,
      "statementDescriptor": "ADA COFFEE",
      "payoutsEnabled": true,
      "automatedPayoutsEnabled": true,
      "automatedDisbursementsEnabled": true,
      "notificationEmails": [
        "ada@example.com"
      ],
      "remitterName": "Ada Lovelace"
    },
    "billingSettings": {
      "type": "MchtBillingSettingsAttributes",
      "notificationEmails": [
        "ada@example.com"
      ],
      "notificationsEnabled": true,
      "address": {
        "type": "MchtAddressAttributes",
        "unitNumber": "string",
        "streetNumber": "string",
        "streetName": "Ada Lovelace",
        "streetType": "string",
        "suburb": "string",
        "city": "string",
        "state": "string",
        "postalCode": "3000",
        "country": "AU"
      },
      "paymentSourceId": "psrc_9f2Kd8QpLzXw"
    },
    "branding": {
      "type": "MchtBrandingAttributes",
      "logoFileId": "lfile_9f2Kd8QpLzXw",
      "iconFileId": "lfile_9f2Kd8QpLzXw",
      "logoAltText": "string",
      "brandColour": "string"
    },
    "orderSettings": {
      "type": "MchtOrderSettingsAttributes",
      "customFields": [
        {
          "type": "MchtOrderCustomFieldAttributes",
          "key": "string",
          "label": "string",
          "required": true,
          "visibleToPayer": true
        }
      ],
      "notificationEmails": [
        "ada@example.com"
      ],
      "notifyOnPaid": true
    },
    "sourceRules": [
      {
        "type": "MchtRuleAttributes",
        "criterion": {
          "type": "MchtRuleAlways"
        },
        "actions": [
          {
            "type": "MchtRuleAllow"
          }
        ]
      }
    ],
    "usageRules": {
      "type": "MchtUsageRulesAttributes",
      "currencies": {
        "type": "MchtCurrencyAllow",
        "currencies": [
          "AUD"
        ]
      },
      "issuerCountries": {
        "type": "MchtIssuerCountryAllow",
        "countries": [
          "AU"
        ]
      }
    },
    "riskSettings": {
      "type": "MchtRiskSettingsAttributes",
      "settlementType": "Net",
      "bankAccountVerificationRequired": true,
      "bankAccountVerification": {
        "type": "MchtVerificationPolicyAttributes",
        "accept": [
          "Match"
        ],
        "includeResultInResponse": true
      },
      "sourceVerificationEnabled": true,
      "supportedCustomerTypes": [
        "Consumer"
      ],
      "paymentLimits": {
        "type": "MchtPaymentLimitsAttributes",
        "currency": "AUD",
        "minimumPaymentAmount": 1250,
        "maximumPaymentAmount": 1250
      },
      "disputesWaived": true,
      "payoutPriority": 10,
      "showPlatformLogoInTerms": true,
      "showSavedPaymentMethodsInCheckout": true,
      "showReferenceOrderIdToCustomer": true,
      "emailPaymentReceipt": true,
      "emailPaymentFailure": true
    },
    "bankAccounts": [
      {
        "type": "MchtBankAccountAttributes",
        "externalAccountId": "xacc_9f2Kd8QpLzXw",
        "accountName": "Ada Lovelace",
        "last4": "4242",
        "currency": "AUD",
        "isPrimary": true,
        "status": "Active",
        "verificationStatus": "Active"
      }
    ],
    "capabilityTags": [
      "DirectDebit"
    ],
    "createdAt": "2026-08-19T04:21:07Z",
    "updatedAt": "2026-08-19T04:21:07Z"
  }
}

Error responses