Skip to main content
POST
/
v1
/
virtual-accounts
/
sessions
Create a Virtual Account Session
curl --request POST \
  --url https://remittances.sandbox.api-us.meridianapps.dev:80/v1/virtual-accounts/sessions \
  --header 'Content-Type: application/json' \
  --header 'X-Meridian-Api-Key: <x-meridian-api-key>' \
  --header 'X-Meridian-Signature: <x-meridian-signature>' \
  --header 'X-Meridian-Timestamp: <x-meridian-timestamp>' \
  --data '
{
  "customer": {
    "addressLine1": "<string>",
    "addressLine2": "<string>",
    "city": "<string>",
    "countryCode": "<string>",
    "dateOfBirth": "<string>",
    "email": "<string>",
    "employmentStatus": "<string>",
    "employmentStatusDescription": "<string>",
    "firstName": "<string>",
    "lastName": "<string>",
    "monthlyDepositVolume": "<string>",
    "monthlyDepositVolumeCurrency": "<string>",
    "occupation": "<string>",
    "phoneNumber": "<string>",
    "postalCode": "<string>",
    "primarySourceOfFunds": "<string>",
    "primarySourceOfFundsDescription": "<string>",
    "stateProvince": "<string>"
  },
  "customerId": "<string>",
  "receiver": {
    "firstName": "<string>",
    "lastName": "<string>",
    "phoneNumber": "<string>",
    "linkedAccount": {
      "blockchain": {
        "chainId": "<string>",
        "address": "<string>"
      },
      "wallet": {
        "walletId": "<string>"
      },
      "bankAccount": {
        "accountNumber": "<string>",
        "accountName": "<string>"
      }
    }
  },
  "redirectUrl": "<string>"
}
'
{
  "expiresAt": "<string>",
  "sessionKey": "<string>"
}

Headers

X-Meridian-Api-Key
string
required

API key issued by Meridian during provisioning. See Authentication.

X-Meridian-Timestamp
string
required

Current time in milliseconds since the Unix epoch. Must be within 60 seconds of the request. See Authentication.

X-Meridian-Signature
string
required

HMAC SHA-256 signature of the canonical request string, computed per request. See Authentication for how to construct it.

Body

application/json

Request body to create a Virtual Account Session

customer
null | KYC · object
required

All fields in this data structure should be populated on a best-efforts basis. No field is required but this data helps to provide a seamless user experience for the customer so that they don’t need to re-enter information already provided to the partner.

customerId
string
required

A non-sensitive string that uniquely identifies your customer across all Meridian sessions. Must be consistent and never change — Meridian uses this to detect whether to route a customer to onboarding or Account Home. Note: this value is case-sensitive; inconsistent casing will cause a returning customer to be treated as new.

receiver
Receiver · object
required

This data is separate from KYC information, as this will not be changed by the customer during onboarding. All details provided here must match the information associated with the receiver of funds withdrawn from the virtual account.

redirectUrl
string
required

Deep Link or Universal Link to bring the user back to your app

Response

Created the session and stored the contents for later use

expiresAt
string
required

ISO8601 datetime string for the expiration of the session

sessionKey
string
required

Unique session key assigned to this transaction payload