curl --request GET \
--url https://laso.finance/send-paymentimport requests
url = "https://laso.finance/send-payment"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://laso.finance/send-payment', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://laso.finance/send-payment",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://laso.finance/send-payment"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://laso.finance/send-payment")
.asString();require 'uri'
require 'net/http'
url = URI("https://laso.finance/send-payment")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"auth": {
"id_token": "<string>",
"refresh_token": "<string>",
"expires_in": "<string>"
},
"callable_base_url": "<string>",
"user_id": "<string>",
"success": true,
"message": "<string>",
"platform": "venmo",
"amount": 123,
"recipient_id": "<string>",
"state": "<string>"
}{
"error": "<string>"
}Send a payment via Venmo or PayPal
Pay USDC to send money to a Venmo or PayPal recipient. The x402 USDC price is the requested amount plus a 4.9% fee (with a $1.50 minimum fee). On-chain payment credits the calling wallet’s Laso account balance via the standard deposit webhook; the callable then debits the gross amount and dispatches the payout.
KYC required. The first time a wallet sends a Venmo or PayPal payout it must complete identity verification. If the wallet is not yet verified the response returns kyc_required: true and a kyc_url — open the URL, complete the flow, and retry. If you don’t want to proceed, the credited account balance can be withdrawn with POST /withdraw.
Recipient details. Both Venmo and PayPal require the recipient’s first name and last name. For Venmo, recipient_id is the recipient’s 10-digit U.S. phone number and recipient_email is required. For PayPal, recipient_id is the recipient’s PayPal email, which also serves as recipient_email (so recipient_email is optional).
Fee: 4.9% with a $1.50 minimum (included in the USDC price).
curl --request GET \
--url https://laso.finance/send-paymentimport requests
url = "https://laso.finance/send-payment"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://laso.finance/send-payment', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://laso.finance/send-payment",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://laso.finance/send-payment"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://laso.finance/send-payment")
.asString();require 'uri'
require 'net/http'
url = URI("https://laso.finance/send-payment")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"auth": {
"id_token": "<string>",
"refresh_token": "<string>",
"expires_in": "<string>"
},
"callable_base_url": "<string>",
"user_id": "<string>",
"success": true,
"message": "<string>",
"platform": "venmo",
"amount": 123,
"recipient_id": "<string>",
"state": "<string>"
}{
"error": "<string>"
}Query Parameters
USD amount to send to the recipient (min $5, max $1,000). The x402 payment price is this amount plus a 4.9% fee (with a $1.50 minimum).
5 <= x <= 1000Payment platform.
venmo, paypal Recipient identifier. For Venmo: 10-digit U.S. phone number. For PayPal: email address.
Recipient's first name (English letters A-Z and a-z only).
Recipient's last name (English letters A-Z and a-z only).
Recipient's email address. Required for Venmo. Optional for PayPal, where it defaults to recipient_id (the PayPal email).
Response
Payment dispatched, or KYC required.
Was this page helpful?