Skip to main content

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"
}