Skip to main content

Overview

Partners can onboard merchants in two ways:
  1. Create a merchant (below) — Provide basic contact info; the merchant completes the full form (company details, bank linking, billing agreement).
  2. Fast-track (API) — Provide full company and regulatory data in one request; the sub-TPP is created immediately and the merchant only completes FarPay and bank linking via the returned link. Use for migrations or when you already have all required data.

Create a Merchant

curl -X POST https://api.acountpay.com/v1/partner/merchants \
  -H "X-Partner-Client-Id: your-client-id" \
  -H "X-Partner-Client-Secret: your-client-secret" \
  -H "Content-Type: application/json" \
  -d '{
    "companyName": "Restaurant XYZ ApS",
    "contactEmail": "owner@restaurant-xyz.dk",
    "contactPhone": "+4512345678",
    "partnerRefId": "your-internal-id-123"
  }'

Response

{
  "merchantId": 42,
  "clientId": "a1b2c3d4-...",
  "companyName": "Restaurant XYZ ApS",
  "contactEmail": "owner@restaurant-xyz.dk",
  "onboardingUrl": "https://merchant.acountpay.com/partner-onboard/abc123-...",
  "onboardingToken": "abc123-...",
  "status": "pending_onboarding",
  "expiresAt": "2026-03-25T12:00:00.000Z"
}
Share the onboardingUrl with the merchant. They complete a form that covers:
  1. CVR lookup (Danish company registration)
  2. Company details and address
  3. Beneficial owners, directors, signatories
  4. Bank account linking (via secure open banking)
  5. Billing agreement

Fast-track merchant creation (API)

Use this endpoint when you already have full merchant and company data (e.g. from a migration or your own onboarding) and want to create the sub-TPP on Token.io immediately. The backend creates the merchant and sub-TPP in one call; the merchant only needs to complete the remaining steps (FarPay agreement and bank account linking) via the returned onboarding link. Endpoint: POST /v1/partner/merchants/fast-track When to use: Programmatic integrations, bulk migrations, or when you collect all required company and regulatory data yourself. The merchant will appear in your Partner Dash with status Pending completion until they finish FarPay and bank linking. You can use Resend Onboarding Link to send them the link.

Request body

FieldTypeRequiredDescription
companyNamestringYesLegal company name
contactEmailstringYesMerchant contact email
contactPhonestringNoContact phone
partnerRefIdstringNoYour internal reference for this merchant
registrationNumberstringYesCompany registration number (CVR)
websitestringYesCompany website URL
ibanstringYesCompany IBAN for payouts
bicstringNoBIC/SWIFT code
primaryUseCasestringNoOne of: PIS: In store merchant payment, PIS: eCommerce merchant payment, PIS: Funding an account, PIS: Paying a bill, PIS: Paying off debt. Default: PIS: In store merchant payment
mccCodestringNoMerchant Category Code (4-digit)
isSoleTraderbooleanNoWhether the merchant is a sole trader
soleTraderobjectNoIf sole trader: { fullName, address?, dateOfBirth? } (dateOfBirth: YYYY-MM-DD)
ubosarrayNoUltimate beneficial owners: [{ fullName, address?, dateOfBirth? }]
directorsarrayNoDirectors: [{ fullName, address?, dateOfBirth? }]
signatoriesarrayNoAuthorized signatories: [{ fullName, address?, dateOfBirth? }]
addressobjectNo{ street?, city?, postalCode?, countryCode? } (default countryCode: DK)

Example

curl -X POST https://api.acountpay.com/v1/partner/merchants/fast-track \
  -H "X-Partner-Client-Id: your-client-id" \
  -H "X-Partner-Client-Secret: your-client-secret" \
  -H "Content-Type: application/json" \
  -d '{
    "companyName": "Restaurant XYZ ApS",
    "contactEmail": "owner@restaurant-xyz.dk",
    "registrationNumber": "12345678",
    "website": "https://restaurant-xyz.dk",
    "iban": "DK5000400440116243",
    "bic": "NDEADKKK",
    "partnerRefId": "migration-001"
  }'

Response

{
  "merchantId": 42,
  "clientId": "a1b2c3d4-...",
  "companyName": "Restaurant XYZ ApS",
  "contactEmail": "owner@restaurant-xyz.dk",
  "subTppId": "8d54f066-...",
  "subTppStatus": "created",
  "subTppMessage": null,
  "onboardingUrl": "https://merchant.acountpay.com/partner-onboard/abc123-...",
  "onboardingToken": "abc123-...",
  "status": "pending_farpay_ais",
  "expiresAt": "2026-03-25T12:00:00.000Z"
}
  • status: pending_farpay_ais when the sub-TPP was created successfully (merchant must complete FarPay and bank linking via onboardingUrl). If sub-TPP creation failed, status is pending_onboarding and subTppStatus / subTppMessage describe the failure.
  • Share onboardingUrl with the merchant so they can complete the remaining steps. Use the resend onboarding endpoint if the link expires or is lost.

Check Onboarding Status

curl https://api.acountpay.com/v1/partner/merchants/42/onboarding-status \
  -H "X-Partner-Client-Id: your-client-id" \
  -H "X-Partner-Client-Secret: your-client-secret"

Response

{
  "merchantId": 42,
  "onboardingStatus": "awaiting_approval",
  "subTppId": "8d54f066-...",
  "subTppDetails": {
    "status": "AWAITING_APPROVAL",
    "isActivated": false
  }
}

Status Values

StatusDescription
pending_onboardingMerchant hasn’t completed the onboarding form yet
pending_completionFast-tracked: sub-TPP created; merchant must complete FarPay and bank linking via onboarding link
pending_farpay_aisSame as pending_completion (returned by fast-track create response)
awaiting_approvalOnboarding complete, waiting for regulatory approval
activatedMerchant is active and can accept payments
rejectedApplication was rejected
inactiveMerchant deactivated

List Merchants

curl "https://api.acountpay.com/v1/partner/merchants?page=1&limit=20" \
  -H "X-Partner-Client-Id: your-client-id" \
  -H "X-Partner-Client-Secret: your-client-secret"
If the link expires (7 days) or the merchant lost it:
curl -X POST https://api.acountpay.com/v1/partner/merchants/42/resend-onboarding \
  -H "X-Partner-Client-Id: your-client-id" \
  -H "X-Partner-Client-Secret: your-client-secret"

Webhook Notifications

Subscribe to merchant.activated and merchant.onboarding.completed webhook events to know when merchants are ready to accept payments. See Webhooks.