Venmo's API is a powerful tool to help you seamlessly integrate payments into your application. With the use of payment links, drop ins, OAuth, or the REST API, youc an have your app up and running with Venmo in no time.
The Venmo OAuth (2.0) API provides developers a straightforward way to integrate Venmo into their applications. Using the OAuth API will allow your application to make Venmo transactions (pay and charges) on behalf of your users, as well as see the authenticated user's balance and get a list of their friends on Venmo. If you need help, feel free to email developer@venmo.com.
When adding an OAuth app to your Venmo account, please make use of the Description field - we’ll reach out if there are any questions on our end. Note that the Venmo OAuth API cannot be used to facilitate merchant payments. Using the API in this way is a violation of our User Agreement and may result in the suspension of your Venmo account and loss of funds. If you’re looking for a checkout solution, we recommend our friends at Braintree.
The OAuth API is a RESTful web API that uses HTTP verbs like GET and POST. Wherever possible, the API follows RESTful principles to describe an endpoint’s behavior.
The base URL for the API is https://api.venmo.com/v1
Remember to include the https.
We return our responses in JSON. Any fields that don't have values are set to null instead of being omitted.
All response data is within a "data" field, and all pagination data is within a "pagination" field. Note that we only do paging on endpoints that return a list of resources, such as the GET /payments and GET /users/:user_id/friends endpoints.
{
"data": {
...
},
"pagination": {
...
}
}
For a more detailed explanation, take a look at the payments and users documentation.
We format datetimes in ISO 8601format YYYY-MM-DDTHH:MM:SSZ
.
Errors are in the following format:
{
"error": {
"message": "A friendly message describing the error",
"code": "A code that identifies this kind of error"
}
}
The message
will explain the error that occured, along with a status code in the header. The code specifies the exact type of error.
For endpoints that return a list of resources, we include a URL to retrieve the next page. Currently, the default number of resources returned is set to 20, but can go as high as 50. Use the limit parameter to change the number of resources returned. Your access token is not included in the URL, so be sure to append it before retrieving the next page. Here is an example of how paging looks in the response:
{
...,
"pagination": {
"next": "https://api.venmo.com/v1/payments?limit=20&before=2013-08-28T13:35:35"
}
}