Accounts
Create a link to verify a Plaid account
For an unverified internal Plaid account, returns a short-lived link you hand to the entity. Opening it takes them to a Melio-hosted page where they complete same-day micro-deposit verification in Plaid. Authenticate with your api-key.
POST
/
accounts
/
{accountId}
/
verify
/
link
Create a link to verify a Plaid account
const options = {
method: 'POST',
headers: {'Melio-Entity-Id': '<melio-entity-id>', 'api-key': '<api-key>'}
};
fetch('https://api.melio.com/v2/accounts/{accountId}/verify/link', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.melio.com/v2/accounts/{accountId}/verify/link"
headers = {
"Melio-Entity-Id": "<melio-entity-id>",
"api-key": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)curl --request POST \
--url https://api.melio.com/v2/accounts/{accountId}/verify/link \
--header 'Melio-Entity-Id: <melio-entity-id>' \
--header 'api-key: <api-key>'HttpResponse<String> response = Unirest.post("https://api.melio.com/v2/accounts/{accountId}/verify/link")
.header("Melio-Entity-Id", "<melio-entity-id>")
.header("api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.melio.com/v2/accounts/{accountId}/verify/link")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Melio-Entity-Id"] = '<melio-entity-id>'
request["api-key"] = '<api-key>'
response = http.request(request)
puts response.read_bodypackage main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.melio.com/v2/accounts/{accountId}/verify/link"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Melio-Entity-Id", "<melio-entity-id>")
req.Header.Add("api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"data": {
"url": "https://portal.melio.com/accounts/verify?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9&type=plaid",
"expiration": "2026-07-08T16:04:05Z"
}
}{
"error": {
"type": "invalid_request_error",
"code": "VALIDATION_ERROR",
"message": "<string>",
"details": {}
}
}{
"error": {
"type": "authorization_error",
"code": "BUSINESS_NOT_ELIGIBLE",
"message": "Business is not eligible to add an internal account. See the limitations endpoint for details."
}
}{
"error": {
"type": "invalid_request_error",
"code": "VALIDATION_ERROR",
"message": "<string>",
"details": {}
}
}Authorizations
Headers
Signed MelioSonar session token from the initiating device, used for risk evaluation; invalid or expired tokens return 403.
Entity the request operates on — an entity id (ent_<uuid>) or me (the partner's sole entity).
Path Parameters
Create a link to verify a Plaid account
const options = {
method: 'POST',
headers: {'Melio-Entity-Id': '<melio-entity-id>', 'api-key': '<api-key>'}
};
fetch('https://api.melio.com/v2/accounts/{accountId}/verify/link', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.melio.com/v2/accounts/{accountId}/verify/link"
headers = {
"Melio-Entity-Id": "<melio-entity-id>",
"api-key": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)curl --request POST \
--url https://api.melio.com/v2/accounts/{accountId}/verify/link \
--header 'Melio-Entity-Id: <melio-entity-id>' \
--header 'api-key: <api-key>'HttpResponse<String> response = Unirest.post("https://api.melio.com/v2/accounts/{accountId}/verify/link")
.header("Melio-Entity-Id", "<melio-entity-id>")
.header("api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.melio.com/v2/accounts/{accountId}/verify/link")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Melio-Entity-Id"] = '<melio-entity-id>'
request["api-key"] = '<api-key>'
response = http.request(request)
puts response.read_bodypackage main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.melio.com/v2/accounts/{accountId}/verify/link"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Melio-Entity-Id", "<melio-entity-id>")
req.Header.Add("api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"data": {
"url": "https://portal.melio.com/accounts/verify?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9&type=plaid",
"expiration": "2026-07-08T16:04:05Z"
}
}{
"error": {
"type": "invalid_request_error",
"code": "VALIDATION_ERROR",
"message": "<string>",
"details": {}
}
}{
"error": {
"type": "authorization_error",
"code": "BUSINESS_NOT_ELIGIBLE",
"message": "Business is not eligible to add an internal account. See the limitations endpoint for details."
}
}{
"error": {
"type": "invalid_request_error",
"code": "VALIDATION_ERROR",
"message": "<string>",
"details": {}
}
}