Linked accounts

Link PayMongo accounts in a parent / child relationship to invite, onboard, and operate on other accounts through the Accounts API.

Invite a new account by email

You can link a brand-new business or individual to your account by inviting them with their email address. This is for people who don't have a PayMongo account yet. Once they sign up and finish onboarding, they become your linked child account, and you can transact on their behalf.

There are two ways to do this, and this page covers both:

MethodBest forWhat it takes
Merchant DashboardLinking one or a few accounts by handPoint-and-click, no code
APIPlatforms that link accounts programmatically or at scaleA few API calls with your secret key

Both methods do the same thing behind the scenes, and they end the same way: your invitee receives a signup link, creates their PayMongo account, and completes standard onboarding.

📘

Two things to know before you begin

  • PayMongo does not send the invitation email for you. You generate a signup link and share it with your invitee through your own channel, such as your email or chat.
  • The email must match. Your invitee has to sign up using the exact email address you invited. Signup is rejected if the email is different.

What you'll need

  • Access to the parent account, which is the one doing the inviting.
  • Permission to send invitations. In the Dashboard, this is the Invite button on the Linked Accounts page. If you don't see it, contact support to enable Linked Accounts. For the API, you'll use your account's secret API key.
  • Your invitee's email address.

Method 1: Merchant Dashboard

Step 1. Open Invitations

Go to Linked Accounts → Invitations and select the Sent tab.

Step 2. Send the invitation

  1. Click Invite.
  2. Type the invitee's email address and press Enter to add it. You can add more than one address to invite several accounts at once.
  3. Choose the account Type:
    • Merchant: a business that will complete full business verification.
    • Non-business Individual: an individual who completes identity verification only.
  4. Click Send invitation.

Your invitation appears in the Sent list with the status Pending and an invitation ID that starts with lr_.

Step 3. Copy and share the signup link

  1. On the new invitation row, click Copy signup link.
  2. Send that link to your invitee. It looks like this:
https://dashboard.paymongo.com/[email protected]&invitation_code=lr_xxxxxxxxxxxxxxxxxxxxxxxx
🚧

Share the copied link exactly as it is

The link already contains your invitee's email and invitation code. Don't retype or edit it. Just copy and share it directly so the values aren't changed.

Step 4. Your invitee signs up and onboards

When the invitee opens the link while signed out, they land on PayMongo's Create your account page with their email and invitation code already filled in. They then:

  1. Set a password and accept the Terms, leaving the pre-filled email unchanged.
  2. Verify their email with the one-time code.
  3. Complete standard PayMongo onboarding. This is identity verification, followed by business information (for merchants) or personal information (for individuals).

Step 5. Confirm the link

Back in Linked Accounts → Invitations → Sent, the invitation status changes from Pending to Accepted and shows the linked child account. The two accounts are now linked.


Method 2: API

Use the API to create and track invitations programmatically. This is ideal for platforms that onboard many child accounts.

📘

What the API does, and what it doesn't do

The API creates and tracks the invitation. It does not onboard your invitee for you. A new user still opens the signup link in a browser and completes signup and identity verification themselves. In other words, the API handles the invitation, and your invitee completes the rest. That rest is the same standard onboarding as any PayMongo account.

Authentication. Authenticate with your secret API key using HTTP Basic auth: your secret key is the username, and the password is left empty. Public keys cannot create or manage links.

Base URL: https://api.paymongo.com

Step 1. Create the invitation

Send a POST to /v2/linking-requests/invites with one or more invitees. Set account_type to merchant for a business or consumer for a non-business individual.

curl -X POST https://api.paymongo.com/v2/linking-requests/invites \
  -u sk_live_your_secret_key: \
  -H "Content-Type: application/json" \
  -d '{
    "invites": [
      { "email": "[email protected]", "account_type": "merchant" }
    ]
  }'

The response returns an invitation ID (starting with lr_) for each invitee, each with a status of pending:

{
  "success_count": 1,
  "failed_count": 0,
  "invites": [
    {
      "email": "[email protected]",
      "account_type": "merchant",
      "invitation_id": "lr_xxxxxxxxxxxxxxxxxxxxxxxx",
      "status": "pending"
    }
  ]
}

You can include several invitees in one request. Each one is reported independently, so some can succeed while others fail.

Step 2. Build the signup link

Construct the signup link from the invitee's email and the invitation_id you got back:

https://dashboard.paymongo.com/signup?email={EMAIL}&invitation_code={invitation_id}
🚧

Encode the email

Encode the email before you put it in the link. In particular, a + must become %2B. For example, [email protected] becomes jane%[email protected]. Otherwise the invitee's prefilled email won't match the invitation, and signup will fail.

Step 3. Share the link and let your invitee onboard

Send the link to your invitee. They open it in a browser, create their PayMongo account with the prefilled email, and complete standard onboarding. This is identity verification, followed by business or personal information.

Step 4. Track the invitation

Poll the invitation to see when it's accepted. To fetch one by ID:

curl https://api.paymongo.com/v2/linking-requests/lr_xxxxxxxxxxxxxxxxxxxxxxxx \
  -u sk_live_your_secret_key:
{
  "invitation_id": "lr_xxxxxxxxxxxxxxxxxxxxxxxx",
  "email": "[email protected]",
  "account_type": "merchant",
  "status": "accepted",
  "child_account_id": "acct_xxxxxxxxxxxxxxxxxxxxxxxx"
}

When status becomes accepted, child_account_id is filled in and the accounts are linked. You can also list invitations and filter by status. See the Reference section below.


After the invitation is accepted

Once your invitee finishes onboarding and their account is activated:

  • The invitation status becomes Accepted, and the invitation now carries the new child account ID.
  • The link between your account and the child account is live, and you can transact on the child's behalf according to your Linked Accounts setup.
  • The child can also sign in and operate their own account independently.

Managing invitations

You can manage invitations from either the Dashboard or the API.

ActionMerchant DashboardAPI
See invitation statusOpen the row in Invitations → SentGET /v2/linking-requests or GET /v2/linking-requests/{id}
Cancel a pending invitationOpen the row and click CancelPOST /v2/linking-requests/{id}/cancel
Re-share the signup linkClick Copy signup link againRebuild the link from the email and invitation_id

A couple of things to keep in mind:

  • Invitations don't expire. A pending invitation stays valid until it's accepted, declined, or cancelled.
  • One active invitation per email. You can't send a second pending invitation to an email that already has one. Cancel the first if you need to resend.

Reference

Account types

TypeAPI valueOnboarding the invitee completes
MerchantmerchantIdentity verification and business information
Non-business IndividualconsumerIdentity verification only

Invitation statuses

StatusMeaning
pendingInvitation sent. The invitee hasn't signed up yet.
acceptedThe invitee signed up, and the accounts are linked.
declinedThe invitee declined the invitation.
cancelledThe parent cancelled the invitation.

Endpoints

PurposeMethod and path
Create invitationsPOST /v2/linking-requests/invites
List invitationsGET /v2/linking-requests
Get one invitationGET /v2/linking-requests/{id}
Cancel an invitationPOST /v2/linking-requests/{id}/cancel