Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/dwolla-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: Dwolla Webhooks API
description: Dwolla API Documentation
contact:
name: Dwolla Developer Relations Team
url: https://developers.dwolla.com
email: api@dwolla.com
version: '2.0'
termsOfService: https://www.dwolla.com/legal/tos/
license:
name: MIT
url: https://github.com/Dwolla/dwolla-openapi/blob/master/LICENSE
servers:
- url: https://api.dwolla.com
description: Production server
- url: https://api-sandbox.dwolla.com
description: Sandbox server
security:
- clientCredentials: []
tags:
- name: Webhooks
description: Operations related to Webhooks
paths:
/webhooks/{id}:
get:
tags:
- Webhooks
summary: Retrieve a webhook
description: Retrieve detailed information for a specific webhook by its unique identifier including delivery attempts and response data. Returns webhook details with topic, account information, delivery attempts containing request/response history, and links to subscription and retry resources. Essential for debugging webhook delivery issues, analyzing response data, and monitoring notification processing status.
operationId: getWebhook
x-speakeasy-name-override: get
x-codeSamples:
- lang: bash
source: 'GET https://api-sandbox.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8
Accept: application/vnd.dwolla.v1.hal+json
Authorization: Bearer pBA9fVDBEyYZCEsLf/wKehyh1RTpzjUj5KzIRfDi0wKTii7DqY
'
- lang: javascript
source: "// Using dwolla-v2 - https://github.com/Dwolla/dwolla-v2-node\nvar webhookUrl =\n \"https://api-sandbox.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8\";\n\ndwolla.get(webhookUrl).then((res) => res.body.topic); // => 'transfer_created'\n"
- lang: python
source: '# Using dwollav2 - https://github.com/Dwolla/dwolla-v2-python
webhook_url = ''https://api-sandbox.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8''
webhook = app_token.get(webhook_url)
webhook.body[''topic''] # => ''transfer_created''
'
- lang: php
source: '<?php
// Using dwollaswagger - https://github.com/Dwolla/dwolla-swagger-php
$webhookUrl = ''https://api-sandbox.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8'';
$webhooksApi = new DwollaSwagger\WebhooksApi($apiClient);
$webhook = $webhooksApi->id($webhookUrl);
$webhook->topic; # => "transfer_created"
?>
'
- lang: ruby
source: '# Using dwolla_v2 - https://github.com/Dwolla/dwolla-v2-ruby
webhook_url = ''https://api-sandbox.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8''
webhook = app_token.get webhook_url
webhook.topic # => "transfer_created"
'
parameters:
- name: id
in: path
description: Webhook unique identifier
required: true
schema:
type: string
- $ref: '#/components/parameters/Accept'
responses:
'200':
description: successful operation
headers: {}
content:
application/vnd.dwolla.v1.hal+json:
schema:
$ref: '#/components/schemas/Webhook'
'404':
description: Not Found
headers: {}
content:
application/vnd.dwolla.v1.hal+json:
schema:
$ref: '#/components/schemas/NotFoundError'
/webhooks/{id}/retries:
get:
tags:
- Webhooks
summary: List retries for a webhook
description: Retrieve all retry attempts for a specific webhook including timestamps and delivery details. Returns a list of retry attempts with unique identifiers, timestamps, and links to the parent webhook with total count. Essential for tracking webhook delivery failures, analyzing retry patterns, and debugging webhook notification issues to ensure reliable event processing.
operationId: listWebhookRetries
x-speakeasy-group: webhooks.retries
x-speakeasy-name-override: list
x-codeSamples:
- lang: bash
source: 'GET https://api-sandbox.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8/retries
Accept: application/vnd.dwolla.v1.hal+json
Authorization: Bearer pBA9fVDBEyYZCEsLf/wKehyh1RTpzjUj5KzIRfDi0wKTii7DqY
'
- lang: javascript
source: "// Using dwolla-v2 - https://github.com/Dwolla/dwolla-v2-node\nvar webhookUrl =\n \"https://api-sandbox.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8\";\n\ndwolla.get(`${webhookUrl}/retries`).then((res) => res.body.total); // => 1\n"
- lang: python
source: '# Using dwollav2 - https://github.com/Dwolla/dwolla-v2-python
webhook_url = ''https://api-sandbox.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8''
retries = app_token.get(''%s/retries'' % webhook_url)
retries.body[''total''] # => 1
'
- lang: php
source: '<?php
// Using dwollaswagger - https://github.com/Dwolla/dwolla-swagger-php
$webhookUrl = ''https://api-sandbox.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8'';
$webhooksApi = new DwollaSwagger\WebhooksApi($apiClient);
$retries = $webhooksApi->retriesById($webhookUrl);
$retries->total; # => 1
?>
'
- lang: ruby
source: '# Using dwolla_v2 - https://github.com/Dwolla/dwolla-v2-ruby
webhook_url = ''https://api-sandbox.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8''
retries = app_token.get "#{webhook_url}/retries"
retries.total # => 1
'
parameters:
- name: id
in: path
description: Webhook unique identifier
required: true
schema:
type: string
- $ref: '#/components/parameters/Accept'
responses:
'200':
description: successful operation
headers: {}
content:
application/vnd.dwolla.v1.hal+json:
schema:
$ref: '#/components/schemas/WebhookRetries'
'404':
description: Not Found
headers: {}
content:
application/vnd.dwolla.v1.hal+json:
schema:
$ref: '#/components/schemas/NotFoundError'
post:
tags:
- Webhooks
summary: Retry a webhook
description: Retry a webhook by its unique identifier to redeliver the notification to your endpoint. Creates a new retry attempt and returns the location of the new webhook resource. Essential for recovering from webhook delivery failures and ensuring reliable event notification processing in your application.
operationId: retryWebhook
x-speakeasy-name-override: retry
x-codeSamples:
- lang: bash
source: 'POST https://api-sandbox.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8/retries
Accept: application/vnd.dwolla.v1.hal+json
Content-Type: application/vnd.dwolla.v1.hal+json
Authorization: Bearer pBA9fVDBEyYZCEsLf/wKehyh1RTpzjUj5KzIRfDi0wKTii7DqY
'
- lang: javascript
source: "// Using dwolla-v2 - https://github.com/Dwolla/dwolla-v2-node\nvar webhookUrl =\n \"https://api-sandbox.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8\";\n\ndwolla.post(`${webhookUrl}/retries`);\n"
- lang: python
source: '# Using dwollav2 - https://github.com/Dwolla/dwolla-v2-python
webhook_url = ''https://api-sandbox.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8''
app_token.post(''%s/retries'' % webhook_url)
'
- lang: php
source: '<?php
// Using dwollaswagger - https://github.com/Dwolla/dwolla-swagger-php
$webhookUrl = ''https://api-sandbox.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8'';
$webhooksApi = new DwollaSwagger\WebhooksApi($apiClient);
$webhooksApi->retryWebhook($webhookUrl);
?>
'
- lang: ruby
source: '# Using dwolla_v2 - https://github.com/Dwolla/dwolla-v2-ruby
webhook_url = ''https://api-sandbox.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8''
app_token.post "#{webhook_url}/retries"
'
parameters:
- name: id
in: path
description: Webhook unique identifier
required: true
schema:
type: string
- $ref: '#/components/parameters/Accept'
responses:
'201':
description: created
headers:
Location:
$ref: '#/components/headers/Location'
'404':
description: Not Found
headers: {}
content:
application/vnd.dwolla.v1.hal+json:
schema:
$ref: '#/components/schemas/NotFoundError'
components:
headers:
Location:
description: The location of the created resource
schema:
type: string
schemas:
WebhookRetries:
title: WebhookRetries
type: object
properties:
_links:
type: object
properties:
self:
type: object
properties:
href:
type: string
example: https://api.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8/retries
_embedded:
type: object
properties:
retries:
type: array
items:
type: object
properties:
_links:
type: object
properties:
self:
type: object
properties:
href:
type: string
example: https://api.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8/retries/5aa27a0f-cf99-418d-a3ee-67c0ff99a494
webhook:
type: object
properties:
href:
type: string
example: https://api.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8
id:
type: string
example: 5aa27a0f-cf99-418d-a3ee-67c0ff99a494
timestamp:
type: string
format: date-time
example: '2022-11-02T17:43:26.000Z'
total:
type: integer
format: int32
example: 1
NotFoundError:
title: NotFoundError
description: Error response schema for 404 NotFound
type: object
required:
- code
- message
properties:
code:
type: string
example: NotFound
message:
type: string
example: The requested resource was not found.
Webhook:
title: Webhook
type: object
properties:
_links:
type: object
properties:
self:
type: object
properties:
href:
type: string
example: https://api.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8
subscription:
type: object
properties:
href:
type: string
example: https://api.dwolla.com/webhook-subscriptions/a0943041-7a5c-4e8f-92de-b55711ef3a83
retry:
type: object
properties:
href:
type: string
example: https://api.dwolla.com/webhooks/9ece9660-aa34-41eb-80d7-0125d53b45e8/retries
event:
type: object
properties:
href:
type: string
example: https://api.dwolla.com/events/03c7e14c-7f15-44a2-bcf7-83f2f7e95d50
id:
type: string
example: 9ece9660-aa34-41eb-80d7-0125d53b45e8
topic:
type: string
example: transfer_created
accountId:
type: string
example: ca32853c-48fa-40be-ae75-77b37504581b
eventId:
type: string
example: 03c7e14c-7f15-44a2-bcf7-83f2f7e95d50
subscriptionId:
type: string
example: a0943041-7a5c-4e8f-92de-b55711ef3a83
attempts:
type: array
items:
type: object
properties:
id:
type: string
example: d4d16621-c6b0-40cb-8dc3-0469fa9dc4e8
request:
type: object
properties:
timestamp:
type: string
format: date-time
example: '2022-10-27T17:07:34.304Z'
url:
type: string
example: https://myapp.runscope.net
headers:
type: array
items:
type: object
properties:
name:
type: string
example: X-Dwolla-Topic
value:
type: string
example: transfer_created
body:
type: string
example: id:03c7e14c-7f15-44a2-bcf7-83f2f7e95d50resourceId:81BA6F36-CD7C-E511-80DB-0AA34A9B2388topic:transfer_createdtimestamp:2022-10-27T17:07:34.207Z_links:self:href:https://api.dwolla.com/events/03c7e14c-7f15-44a2-bcf7-83f2f7e95d50account:href:https://api.dwolla.com/accounts/ca32853c-48fa-40be-ae75-77b37504581bresource:href:https://api.dwolla.com/transfers/81BA6F36-CD7C-E511-80DB-0AA34A9B2388
response:
type: object
properties:
timestamp:
type: string
format: date-time
example: '2022-10-27T17:07:34.308Z'
headers:
type: array
items:
type: object
properties:
name:
type: string
example: Date
value:
type: string
example: Tue 27 Oct 2022 17:07:34 GMT
statusCode:
type: integer
format: int32
example: 200
body:
type: string
example: body:id:03c7e14c-7f15-44a2-bcf7-83f2f7e95d50resourceId:81BA6F36-CD7C-E511-80DB-0AA34A9B2388topic:transfer_createdtimestamp:2022-10-27T17:07:34.207Z_links:self:href:https://api.dwolla.com/events/03c7e14c-7f15-44a2-bcf7-83f2f7e95d50account:href:https://api.dwolla.com/accounts/ca32853c-48fa-40be-ae75-77b37504581bresource:href:https://api.dwolla.com/transfers/81BA6F36-CD7C-E511-80DB-0AA34A9B2388files:[]form:fragment:headers:Connection:[close]Content-Length:[453]Content-Type:[application/json; charset=UTF-8]Host:[myapp.runscope.net]User-Agent:[dwolla-webhooks/1.0]X-Dwolla-Topic:[transfer_created]X-Request-Signature:[bd93780bd7e1ad77ab821094aaa0f9e3dece5ee3]host:myapp.runscope.netmethod:POSTparams:path:/region:us5runscope_host:prod078.runscope.inscheme:httpssource:capturesource_ip:52.24.10.184timestamp:1.4459656543078682e+09url:https://myapp.runscope.net/
parameters:
Accept:
name: Accept
in: header
required: true
description: The media type of the response. Must be application/vnd.dwolla.v1.hal+json
schema:
type: string
enum:
- application/vnd.dwolla.v1.hal+json
default: application/vnd.dwolla.v1.hal+json
securitySchemes:
clientCredentials:
type: oauth2
flows:
clientCredentials:
tokenUrl: /token
x-speakeasy-token-endpoint-authentication: client_secret_basic
scopes: {}