2.6 KiB
2.6 KiB
Create a Client Link
How to create a client link to onboard new merchants to Mollie through your app.
The Code
use Mollie\Api\Http\Data\Owner;
use Mollie\Api\Resources\ClientLink;
use Mollie\Api\Http\Data\OwnerAddress;
use Mollie\Api\Http\Requests\CreateClientLinkRequest;
try {
// Create a client link for a new merchant
/** @var ClientLink $clientLink */
$clientLink = $mollie->send(
new CreateClientLinkRequest(
owner: new Owner(
email: 'merchant@example.com',
givenName: 'John',
familyName: 'Doe',
locale: 'en_US'
),
organizationName: 'Example Store',
address: new OwnerAddress(
countryCode: 'NL',
streetAndNumber: 'Keizersgracht 313',
postalCode: '1016 EE',
city: 'Amsterdam'
),
registrationNumber: '30204462',
vatNumber: 'NL123456789B01'
)
);
// Generate the redirect URL for the merchant
$redirectUrl = $clientLink->getRedirectUrl(
clientId: 'app_j9Pakf56Ajta6Y65AkdTtAv',
state: bin2hex(random_bytes(8)), // Random state to prevent CSRF
prompt: 'force', // Always show login screen
scopes: [
'onboarding.read',
'onboarding.write'
]
);
// Redirect the merchant to complete their onboarding
header('Location: ' . $redirectUrl, true, 303);
} catch (\Mollie\Api\Exceptions\ApiException $e) {
echo "API call failed: " . htmlspecialchars($e->getMessage());
}
The Response
$clientLink->id; // "csr_wJPGBj7sFr"
$clientLink->resource; // "client-link"
$clientLink->status; // "pending"
$clientLink->createdAt; // "2024-02-24T12:13:14+00:00"
$clientLink->expiresAt; // "2024-02-25T12:13:14+00:00"
Additional Notes
- Client links are used to onboard new merchants to Mollie through your app
- The link expires after 24 hours
- Required merchant information:
- Owner details (name, email, locale)
- Organization details (name, address)
- Registration number (Chamber of Commerce number)
- VAT number (if applicable)
- The
stateparameter should be:- Random and unique
- Stored in your session
- Verified when the merchant returns to prevent CSRF attacks
- Available scopes:
onboarding.read: View onboarding statusonboarding.write: Update onboarding information
- The merchant will need to:
- Create a Mollie account or log in
- Connect their account to your app
- Complete the onboarding process
- You can track the onboarding status through the OAuth APIs