Virtual Accounts
The Virtual Accounts API allows your customers to easily access dedicated EUR and USD accounts to receive international payments with no monthly fees. With this API, businesses can seamlessly onboard, complete KYC, generate payment accounts, and import incoming payments for reconciliation.
Features
Create dedicated EUR and USD virtual accounts
Streamlined onboarding and KYC submission
Payment creation and import payment endpoints for reconciliation
Fully integrated with your customer’s profile
1. Onboarding
Initiates customer onboarding to set up a virtual account.
POST https://api.mypayd.app/v1/customers/initialize
Request Body
{
"account_id": "3875ed8d-83f2-4e4f-b076-9a45a9bae5cde",
"redirect_url": "https://web.mypayd.app/"
}
Request Body
{
"account_id": "3875ed8d-83f2-4e4f-b076-9a45a9baec5e",
"agreement_id": "5234b4c4-1712-495f-93da-8280c91c4642"
}
Response Example
{
"success": true,
"account_id": "acc_8123ds92jd",
"message": "Customer onboarding successful"
}
2. KYC Submission
Customer submits the required KYC information to activate the virtual account.
POST https://mypayd.app/v1/customers/complete
Request Body
{
"account_id": "3875ed8d-83f2-4e4f-b076-9a45a9baec5e",
"agreement_id": "5234b4c4-1712-495f-93da-8280c91c4642"
}
Response Body
{
"success": true,
"status": "pending review",
"message": "KYC documents submitted successfully"
}
3. Create Payment
Generates a payment instruction (e.g., invoice or payment request) linked to the customer’s virtual account.
POST /api/v1/payment_channels
Request Body
{
"account_id": "3c8010c1-1a3a-4906-827d-857614f8d526",
"customer_id": "8d42bdbc-30a7-4a12-be10-af5fd9dc6014",
"currency": "usd",
"provider": "bridge"
}
Response Body
{
"success": true,
"payment_id": "pay_9823hdsf",
"status": "CREATED",
"message": "Payment created successfully"
}
4. Import Payment
Captures incoming payments into the virtual account for reconciliation.
POST https://mypayd.app/v1/payment_channels_import
Request Payment
{
"account_id": "3c8010c1-1a3a-4906-827d-857614f8d526",
"payment_channel_id": "897b341f-487f-499d-b726-a5d1ca6caf15"
}
Response Body
{
"success": true,
"status": "SUCCESS",
"message": "Payment imported successfully"
}