diff --git a/specs/openapi.yml b/specs/openapi.yml new file mode 100644 index 0000000..6b77dde --- /dev/null +++ b/specs/openapi.yml @@ -0,0 +1,3953 @@ +openapi: 3.0.2 +info: + title: Dwolla 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 +paths: + /: + get: + tags: + - root + summary: root + description: Entry point to the Dwolla API. + operationId: root + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/CatalogResponse' + deprecated: false + /accounts/{id}: + get: + tags: + - accounts + summary: id + description: Get account info by id. + operationId: getAccount + parameters: + - name: id + in: path + description: Account ID to get info for. + required: true + style: simple + explode: false + schema: + type: string + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/FullAccountInfo' + deprecated: false + /accounts/{id}/funding-sources: + get: + tags: + - accounts + summary: getAccountFundingSources + description: Get an account's funding sources. + operationId: getAccountFundingSources + parameters: + - name: id + in: path + description: Account id to get funding sources for. + required: true + style: simple + explode: false + schema: + type: string + - name: removed + in: query + description: Filter funding sources by this value. + style: form + explode: true + schema: + type: boolean + responses: + '200': + description: Funding sources found. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/FundingSourceListResponse' + '403': + description: Not authorized to list funding sources. + deprecated: false + /accounts/{id}/funding-sources-token: + post: + tags: + - accounts + summary: createFundingSourcesToken + description: Create an token that is capable of adding a financial institution for the given Dwolla Account. + operationId: createFundingSourcesToken + parameters: + - name: id + in: path + description: Account ID to create token for. + required: true + style: simple + explode: false + schema: + type: string + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/AccountFundingSourcesToken' + '403': + description: Forbidden. + deprecated: false + /accounts/{id}/iav-token: + post: + tags: + - accounts + summary: getAccountIavToken + description: Get iav token for account. + operationId: getAccountIavToken + parameters: + - name: id + in: path + description: ID of account. + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: IAV Token options + content: + application/json: + schema: + $ref: '#/components/schemas/IavTokenRequest' + required: false + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/IavToken' + deprecated: false + /accounts/{id}/mass-payments: + get: + tags: + - accounts + summary: getByAccount + description: List mass payments for an account. + operationId: getAccountMassPayments + parameters: + - name: id + in: path + description: Account ID + required: true + style: simple + explode: false + schema: + type: string + - name: limit + in: query + description: How many results to return. + style: form + explode: true + schema: + type: integer + format: int32 + minimum: 1 + maximum: 200 + default: 25 + example: 25 + - name: offset + in: query + description: How many results to skip. + style: form + explode: true + schema: + type: integer + format: int32 + default: 0 + example: 0 + - name: correlationId + in: query + description: Correlation ID to search by. + style: form + explode: true + schema: + type: string + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/MassPaymentListResponse' + '403': + description: Not authorized to list mass payments. + deprecated: false + /accounts/{id}/transfers: + get: + tags: + - accounts + summary: getAccountTransfers + description: List and search transfers for an account. + operationId: getAccountTransfers + parameters: + - name: id + in: path + description: Account id to get transfers for. + required: true + style: simple + explode: false + schema: + type: string + - name: limit + in: query + description: How many results to return. + style: form + explode: true + schema: + type: integer + format: int32 + minimum: 1 + maximum: 200 + default: 25 + example: 25 + - name: offset + in: query + description: How many results to skip. + style: form + explode: true + schema: + type: integer + format: int32 + default: 0 + example: 0 + - name: status + in: query + description: What status to filter by. + style: form + explode: true + schema: + type: string + enum: + - pending + - processed + - failed + - cancelled + - name: correlationId + in: query + description: A correlationId value specified on a transfer or mass payment item. + style: form + explode: true + schema: + type: string + - name: startAmount + in: query + description: Only include transfers with an amount equal to or greater than startAmount. + style: form + explode: true + schema: + type: string + - name: endAmount + in: query + description: Only include transfers with an amount equal to or less than endAmount. + style: form + explode: true + schema: + type: string + - name: startDate + in: query + description: Only include transfers created after this date. ISO-8601 format is YYYY-MM-DD. + style: form + explode: true + schema: + type: string + - name: endDate + in: query + description: Only include transfers created before this date. ISO-8601 format is YYYY-MM-DD. + style: form + explode: true + schema: + type: string + responses: + '200': + description: Transfers found. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/TransferListResponse' + '403': + description: Not authorized to list transfers. + '404': + description: Account not found. + deprecated: false + /beneficial-owners/{id}: + parameters: + - name: id + in: path + description: ID of beneficial owner. + required: true + style: simple + explode: false + schema: + type: string + get: + tags: + - beneficial-owners + summary: getById + description: Get an beneficial owner by ID + operationId: getBeneficialOwner + responses: + '200': + description: Owner + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/Owner' + '404': + description: Not Found. + deprecated: false + post: + tags: + - beneficial-owners + summary: update + description: Update a beneficial owner. + operationId: updateBeneficialOwner + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + requestBody: + description: Owner to update. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateOwnerRequest' + required: false + responses: + '200': + description: Owner updated. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/Owner' + '400': + description: Validation error. + '403': + description: Owner cannot be updated. + '404': + description: Owner not found. + deprecated: false + /beneficial-owners/{id}/documents: + parameters: + - name: id + in: path + description: ID of beneficial owner. + required: true + style: simple + explode: false + schema: + type: string + get: + tags: + - beneficial-owners + summary: getBeneficiaOwnerDocuments + description: Get documents uploaded for owner. + operationId: getBeneficiaOwnerDocuments + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/DocumentListResponse' + '404': + description: Owner not found. + deprecated: false + post: + tags: + - beneficial-owners + summary: uploadBeneficialOwnerDocument + description: Upload a verification document for a beneficial owner. + operationId: uploadBeneficialOwnerDocument + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + requestBody: + description: Upload a document for a beneficial owner. + required: true + content: + multipart/form-data: + schema: + type: object + properties: + documentType: + type: string + file: + type: string + format: binary + responses: + '201': + description: Document created. + headers: {} + '400': + description: Invalid documentType or file error. + '404': + description: Beneficial Owner not found. + deprecated: false + /business-classifications: + get: + tags: + - business-classifications + summary: list + description: Get a list business classifications. + operationId: listBusinessClassifications + parameters: [] + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/BusinessClassificationListResponse' + deprecated: false + /business-classifications/{id}: + get: + tags: + - business-classifications + summary: getBusinessClassification + description: Get a business classification with a list of industry classifications. + operationId: getBusinessClassification + parameters: + - name: id + in: path + description: Id of business classification to get. + required: true + style: simple + explode: false + schema: + type: string + responses: + '200': + description: Business classification found. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/BusinessClassification' + '404': + description: Business classification not found. + deprecated: false + /customers: + get: + tags: + - customers + summary: list + description: Get a list of customers. + operationId: listCustomers + parameters: + - name: limit + in: query + description: How many results to return. + style: form + explode: true + schema: + type: integer + format: int32 + minimum: 1 + maximum: 200 + default: 25 + example: 25 + - name: offset + in: query + description: How many results to skip. + style: form + explode: true + schema: + type: integer + format: int32 + default: 0 + example: 0 + - name: search + in: query + description: Search term. + style: form + explode: true + schema: + type: string + - name: status + in: query + description: Status filter. + style: form + explode: true + schema: + type: string + enum: + - unverified + - retry + - document + - verified + - suspended + - deactivated + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/CustomerListResponse' + deprecated: false + post: + tags: + - customers + summary: create + description: Create a new customer. + operationId: createCustomer + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + requestBody: + description: Customer to create. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateCustomer' + required: false + responses: + '201': + description: Customer created. + headers: {} + '400': + description: Duplicate customer or validation error. + '403': + description: Not authorized to create customers. + '404': + description: Customer not found. + deprecated: false + /customers/{id}: + parameters: + - name: id + in: path + description: Id of customer to get. + required: true + style: simple + explode: false + schema: + type: string + get: + tags: + - customers + summary: getCustomer + description: Get a customer by id + operationId: getCustomer + responses: + '200': + description: Customer found. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/Customer' + '403': + description: Not authorized to get a customer by id. + '404': + description: Customer not found. + deprecated: false + post: + tags: + - customers + summary: updateCustomer + description: Update customer record. Personal customer records are re-verified upon update. + operationId: updateCustomer + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + requestBody: + description: Customer to update. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateCustomer' + required: false + responses: + '200': + description: Customer updated. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/Customer' + '400': + description: Validation error. + '403': + description: Not authorized to update customer records. + '404': + description: Customer not found. + deprecated: false + /customers/{id}/beneficial-owners: + post: + tags: + - customers + summary: addBeneficialOwner + description: Add a beneficial owner + operationId: addBeneficialOwner + parameters: + - name: id + in: path + description: Customer id to add owner for for. + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: Beneficial owner to create. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateOwnerRequest' + required: false + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/Owner' + '400': + description: Validation error. + '403': + description: Forbidden from adding an owner to this customer. + deprecated: false + /customers/{id}/beneficial-ownership: + parameters: + - name: id + in: path + description: Customer id for beneficial ownership certification. + required: true + style: simple + explode: false + schema: + type: string + get: + tags: + - customers + summary: getOwnershipStatus + description: Get a customer's ownership certification status. + operationId: getOwnershipStatus + responses: + '200': + description: Ownership certification status found. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/Ownership' + '403': + description: Not authorized to get certification status. + '404': + description: Ownership certification status not found. + deprecated: false + post: + tags: + - customers + summary: changeOwnershipStatus + description: Change ownership certification status. + operationId: changeOwnershipStatus + requestBody: + description: Status of ownership + content: + application/json: + schema: + $ref: '#/components/schemas/CertifyRequest' + required: false + responses: + '200': + description: Beneficial ownership status updated. + headers: {} + '400': + description: Validation error. + '403': + description: Forbidden from updating beneficial ownership status for this customer. + deprecated: false + '/customers/{id}/documents': + parameters: + - name: id + in: path + description: ID of a customer. + required: true + style: simple + explode: false + schema: + type: string + get: + tags: + - customers + summary: getCustomerDocuments + description: Get documents uploaded for customer. + operationId: getCustomerDocuments + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/DocumentListResponse' + '404': + description: Customer not found. + deprecated: false + post: + tags: + - customers + summary: uploadDocument + description: Upload a verification document. + operationId: uploadCustomerDocument + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + - name: id + in: path + description: ID of customer. + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: Upload a document for a customer. + required: true + content: + multipart/form-data: + schema: + type: object + properties: + documentType: + type: string + file: + type: string + format: binary + responses: + '201': + description: Document created. + headers: {} + '400': + description: Invalid documentType or file error. + '404': + description: Customer not found. + deprecated: false + /customers/{id}/funding-sources: + parameters: + - name: id + in: path + description: ID for a Customer. + required: true + style: simple + explode: false + schema: + type: string + get: + tags: + - customers + summary: getCustomerFundingSources + description: "Get a customer's funding sources." + operationId: getCustomerFundingSources + parameters: + - name: removed + in: query + description: Filter funding sources by this value. + style: form + explode: true + schema: + type: boolean + responses: + '200': + description: Funding sources found. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/FundingSourceListResponse' + '403': + description: Not authorized to list funding sources. + '404': + description: Customer not found. + deprecated: false + post: + tags: + - customers + summary: createCustomerFundingSource + description: Create a new funding source. + operationId: createCustomerFundingSource + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + requestBody: + description: Funding source to create. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateFundingSourceRequest' + required: false + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/FundingSource' + '400': + description: Duplicate funding source or validation error. + '403': + description: Not authorized to create funding source. + deprecated: false + /customers/{id}/funding-sources-token: + post: + tags: + - customers + summary: createFundingSourcesTokenForCustomer + description: Create an token that is capable of adding a financial institution for the given customer. + operationId: createCustomerFundingSourcesToken + parameters: + - name: id + in: path + description: ID of customer. + required: true + style: simple + explode: false + schema: + type: string + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/CustomerFundingSourcesToken' + '404': + description: Customer not found. + deprecated: false + /customers/{id}/iav-token: + post: + tags: + - customers + summary: getCustomerIavToken + description: Get iav token for customer. + operationId: getCustomerIavToken + parameters: + - name: id + in: path + description: ID of customer. + required: true + style: simple + explode: false + schema: + type: string + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/IavToken' + '404': + description: Customer not found. + deprecated: false + /customers/{id}/labels: + parameters: + - name: id + in: path + description: Customer ID. + required: true + style: simple + explode: false + schema: + type: string + get: + tags: + - customers + summary: getLabelsForCustomer + description: Get labels for customer. + operationId: getLabelsForCustomer + responses: + '200': + description: Labels found. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/LabelListResponse' + '403': + description: Not authorized to list labels. + '404': + description: Customer not found. + deprecated: false + post: + tags: + - customers + summary: createLabel + description: Create a label. + operationId: createLabel + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + requestBody: + description: Label to create. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateCustomerLabelRequest' + required: false + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/Label' + '400': + description: Validation error. + '403': + description: Not authorized to create label. + deprecated: false + /customers/{id}/mass-payments: + get: + tags: + - customers + summary: getByCustomer + description: Get a customer's mass payments. + operationId: getCustomerMassPayments + parameters: + - name: id + in: path + description: Customer ID + required: true + style: simple + explode: false + schema: + type: string + - name: limit + in: query + description: How many results to return. + style: form + explode: true + schema: + type: integer + format: int32 + minimum: 1 + maximum: 200 + default: 25 + example: 25 + - name: offset + in: query + description: How many results to skip. + style: form + explode: true + schema: + type: integer + format: int32 + default: 0 + example: 0 + - name: correlationId + in: query + description: Correlation ID to search by. + style: form + explode: true + schema: + type: string + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/MassPaymentListResponse' + '403': + description: Not authorized to list mass payments. + deprecated: false + /customers/{id}/notifications: + get: + tags: + - customers + summary: getNotifications + description: Get a customer's notifications. + operationId: getCustomerNotifications + parameters: + - name: id + in: path + description: Customer id to get notifications for. + required: true + style: simple + explode: false + schema: + type: string + responses: + '200': + description: Notifications found. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/NotificationListResponse' + '403': + description: Not authorized to list notifications. + '404': + description: Customer not found. + deprecated: false + /customers/{id}/transfers: + get: + tags: + - customers + summary: getCustomerTransfers + description: Get a customer's transfers. + operationId: getCustomerTransfers + parameters: + - name: id + in: path + description: Customer id to get transfers for. + required: true + style: simple + explode: false + schema: + type: string + - name: limit + in: query + description: How many results to return. + style: form + explode: true + schema: + type: integer + format: int32 + default: 25 + example: 25 + - name: offset + in: query + description: How many results to skip. + style: form + explode: true + schema: + type: integer + format: int32 + default: 0 + example: 0 + - name: status + in: query + description: What status to filter by. + style: form + explode: true + schema: + type: string + enum: + - pending + - processed + - failed + - cancelled + - name: correlationId + in: query + description: A correlationId value specified on a transfer or mass payment item. + style: form + explode: true + schema: + type: string + - name: startAmount + in: query + description: Only include transfers with an amount equal to or greater than startAmount. + style: form + explode: true + schema: + type: string + - name: endAmount + in: query + description: Only include transfers with an amount equal to or less than endAmount. + style: form + explode: true + schema: + type: string + - name: startDate + in: query + description: Only include transfers created after this date. ISO-8601 format is YYYY-MM-DD. + style: form + explode: true + schema: + type: string + - name: endDate + in: query + description: Only include transfers created before this date. ISO-8601 format is YYYY-MM-DD. + style: form + explode: true + schema: + type: string + responses: + '200': + description: Transfers found. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/TransferListResponse' + '403': + description: Not authorized to list transfers. + '404': + description: Customer not found. + deprecated: false + /documents/{id}: + get: + tags: + - documents + summary: getDocument + description: Get a document by id + operationId: getDocument + parameters: + - name: id + in: path + description: Id of document to get. + required: true + style: simple + explode: false + schema: + type: string + responses: + '200': + description: Document found. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/Document' + '403': + description: Not authorized to get a document by id + '404': + description: Document not found. + deprecated: false + /events: + get: + tags: + - events + summary: events + description: List events. + operationId: listEvents + parameters: + - name: limit + in: query + description: How many results to return. + style: form + explode: true + schema: + type: integer + format: int32 + default: 25 + example: 25 + - name: offset + in: query + description: How many results to skip. + style: form + explode: true + schema: + type: integer + format: int32 + default: 0 + example: 0 + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/EventListResponse' + deprecated: false + /events/{id}: + get: + tags: + - events + summary: id + description: Get an event by id. + operationId: getEvent + parameters: + - name: id + in: path + description: ID of application event to get. + required: true + style: simple + explode: false + schema: + type: string + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/ApplicationEvent' + '404': + description: Application event not found. + deprecated: false + /funding-sources: + post: + tags: + - funding-sources + summary: createFundingSource + description: Create a new funding source. + operationId: createAccountFundingSource + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + requestBody: + description: Funding source to create. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateFundingSourceRequest' + required: false + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/FundingSource' + '400': + description: Duplicate funding source or validation error. + '403': + description: Not authorized to create funding source. + deprecated: false + /funding-sources/{id}: + parameters: + - name: id + in: path + description: Funding source ID. + required: true + style: simple + explode: false + schema: + type: string + get: + tags: + - funding-sources + summary: id + description: Get a funding source by id. + operationId: getFundingSource + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/FundingSource' + '404': + description: Funding source not found. + deprecated: false + post: + tags: + - funding-sources + summary: update + description: Update a funding source. + operationId: updateFundingSource + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + requestBody: + description: request body to update a funding source + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateBankRequest' + required: false + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + type: object + description: successful operation + '404': + description: Funding source not found. + deprecated: false + /funding-sources/{id}/balance: + get: + tags: + - funding-sources + summary: getBalance + description: Get the balance of a funding source. + operationId: getBalance + parameters: + - name: id + in: path + description: Funding source ID to get the balance for. + required: true + style: simple + explode: false + schema: + type: string + responses: + '200': + description: Balance for funding source. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/FundingSourceBalance' + '403': + description: Not authorized to request balance for this funding source. + '404': + description: Not Found. + deprecated: false + /funding-sources/{id}/micro-deposits: + parameters: + - name: id + in: path + description: Funding source ID. + required: true + style: simple + explode: false + schema: + type: string + get: + tags: + - funding-sources + summary: verifyMicroDepositsExist + description: Verify pending verifications exist. + operationId: getMicroDeposits + responses: + '200': + description: Pending micro-deposits exist. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/MicroDepositsInitiated' + '404': + description: Not Found. + deprecated: false + post: + tags: + - funding-sources + summary: microDeposits + description: Initiate or verify micro deposits for bank verification. + operationId: initiateMicroDeposits + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + requestBody: + description: Optional micro deposit amounts for verification + content: + application/json: + schema: + $ref: '#/components/schemas/VerifyMicroDepositsRequest' + required: false + responses: + '200': + description: Micro deposits verified. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/MicroDeposits' + '400': + description: Funding source not found. + '404': + description: Funding source not found. + deprecated: false + /kba/{id}: + parameters: + - name: id + in: path + description: Id of KBA session. + required: true + schema: + type: string + get: + tags: + - kba + summary: Get a KBA session by id + description: Retrieve KBA Questions + operationId: getKbaSession + responses: + '200': + description: Session found. + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/Session' + '403': + description: Not authorized to get a KBA session by id + '404': + description: KBA session not found. + post: + tags: + - kba + summary: Attempt to answer KBA questions + description: Answer KBA question set + operationId: answerKbaQuestions + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AnswerKbaQuestionsRequest' + description: KBA answers + responses: + '200': + description: Attempt processed. + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/AnswerKbaQuestionsResponse' + '403': + description: Not authorized to get answer KBA questions + '404': + description: KBA session not found. + /labels/{id}: + parameters: + - name: id + in: path + description: ID of a Label. + required: true + style: simple + explode: false + schema: + type: string + get: + tags: + - labels + summary: byId + description: Get a label by id. + operationId: getLabel + responses: + '200': + description: Ok.Label found. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/Label' + '403': + description: Not authorized to retrieve a label. + '404': + description: Label not found. + deprecated: false + delete: + tags: + - labels + summary: removeLabel + description: Remove a label. + operationId: removeLabel + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/Label' + '400': + description: Validation error. + '403': + description: Not authorized to remove label. + deprecated: false + /labels/{id}/ledger-entries: + parameters: + - name: id + in: path + description: ID of label to for label ledger entries. + required: true + style: simple + explode: false + schema: + type: string + get: + tags: + - labels + summary: getLedgerEntriesForLabel + description: Get ledger entries by label id. + operationId: getLedgerEntriesForLabel + responses: + '200': + description: Ledger entries found. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/LedgerEntryListResponse' + '403': + description: Not authorized to retrieve a ledger entry. + '404': + description: Ledger entries not found. + deprecated: false + post: + tags: + - labels + summary: addLedgerEntry + description: Add ledger entry. + operationId: addLedgerEntry + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + requestBody: + description: Ledger entry to add. + content: + application/json: + schema: + $ref: '#/components/schemas/AddLabelLedgerEntryRequest' + required: false + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/LedgerEntry' + '400': + description: Validation error. + '403': + description: Not authorized to create ledger entry. + deprecated: false + /label-reallocations: + post: + tags: + - label-reallocations + summary: reallocateLabel + description: Reallocate two labels. + operationId: reallocateLabel + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + requestBody: + description: Labels to reallocate. + content: + application/json: + schema: + $ref: '#/components/schemas/LabelReallocationRequest' + required: false + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/LabelReallocation' + '400': + description: Validation error. + '403': + description: Not authorized to reallocate labels. + deprecated: false + /label-reallocations/{id}: + get: + tags: + - label-reallocations + summary: getLabelReallocation + description: Get label reallocation. + operationId: getLabelReallocation + parameters: + - name: id + in: path + description: Label reallocation ID + required: true + style: simple + explode: false + schema: + type: string + responses: + '200': + description: Label reallocation found. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/LabelReallocation' + '403': + description: Not authorized to get label reallocation. + '404': + description: Label reallocation not found. + deprecated: false + /ledger-entries/{id}: + get: + tags: + - ledger-entries + summary: getLabelLedgerEntry + description: Get a ledger entry by id. + operationId: ById3 + parameters: + - name: id + in: path + description: ID of ledger entry to get. + required: true + style: simple + explode: false + schema: + type: string + responses: + '200': + description: Ledger entry found. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/LedgerEntry' + '403': + description: Not authorized to retrieve a ledger entry. + '404': + description: Ledger entry not found. + deprecated: false + /mass-payment-items/{id}: + get: + tags: + - mass-payment-items + summary: byId + description: Get a mass payment item by id. + operationId: getMassPaymentItem + parameters: + - name: id + in: path + description: ID of mass payment item to get. + required: true + style: simple + explode: false + schema: + type: string + responses: + '200': + description: Mass payment items found. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/MassPaymentItem' + '403': + description: Not authorized to retrieve a mass payment item. + '404': + description: Mass payment item not found. + deprecated: false + /mass-payments: + post: + tags: + - mass-payments + summary: create + description: Create a new mass payment. + operationId: createMassPayment + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + requestBody: + description: Mass payment request. + content: + application/json: + schema: + $ref: '#/components/schemas/MassPaymentRequestBody' + required: false + responses: + '201': + description: Mass payment created. + headers: {} + '400': + description: Mass payment failed. + '403': + description: Access token does not have Send scope. + deprecated: false + /mass-payments/{id}: + parameters: + - name: id + in: path + description: ID of mass payment. + required: true + style: simple + explode: false + schema: + type: string + get: + tags: + - mass-payments + summary: byId + description: Get a mass payment by id. + operationId: getMassPayment + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/MassPayment' + '404': + description: Mass payment not found. + deprecated: false + post: + tags: + - mass-payments + summary: update + description: Update a mass-payment. + operationId: updateMassPayment + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + requestBody: + description: Mass-payment to update. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateJobRequestBody' + required: false + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/MassPayment' + '400': + description: Validation error. + '404': + description: Mass-payment not found. + deprecated: false + /mass-payments/{id}/items: + get: + tags: + - mass-payments + summary: getMassPaymentItems + description: "Get a mass payment's items." + operationId: GetMassPaymentItems + parameters: + - name: id + in: path + description: Mass payment id to get items for. + required: true + style: simple + explode: false + schema: + type: string + - name: limit + in: query + description: How many results to return. + style: form + explode: true + schema: + type: integer + format: int32 + minimum: 1 + maximum: 25 + default: 25 + example: 25 + - name: offset + in: query + description: How many results to skip. + style: form + explode: true + schema: + type: integer + format: int32 + default: 0 + example: 0 + - name: status + in: query + description: What status to filter by. + style: form + explode: true + schema: + type: string + enum: + - failed + - pending + - success + - name: correlationId + in: query + description: Correlation ID to search by. + style: form + explode: true + schema: + type: string + responses: + '200': + description: Mass payment items found. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/MassPaymentItemListResponse' + '403': + description: Not authorized to list mass payment items. + '404': + description: Mass payment not found. + deprecated: false + /notifications/{id}: + get: + tags: + - notifications + summary: byId + description: Get a notification by id. + operationId: getNotification + parameters: + - name: id + in: path + description: ID of notification to get. + required: true + style: simple + explode: false + schema: + type: string + responses: + '200': + description: Notification found. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/Notification' + '403': + description: Not authorized to retrieve a notification. + '404': + description: Notification not found. + deprecated: false + /on-demand-authorizations: + post: + tags: + - on-demand-authorizations + summary: createAuthorization + description: Create a new on-demand authorization. + operationId: CreateAuthorization + parameters: [] + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + type: object + description: successful operation + '403': + description: Not authorized to create on-demand authorization. + '404': + description: Account cannot have on-demand authorizations. + deprecated: false + /sandbox-simulations: + post: + tags: + - sandbox + summary: simulations + description: Simulate ach processing + operationId: sandboxSimulations + parameters: [] + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/ProcessResult' + deprecated: false + /token: + post: + tags: + - token + summary: oauth + description: OAuth get token response + operationId: oAuth + parameters: [] + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/OAuthResponse' + deprecated: false + /transfers: + post: + tags: + - transfers + summary: create + description: Create a new transfer. + operationId: createTransfer + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + requestBody: + description: Transfer request. + content: + application/json: + schema: + $ref: '#/components/schemas/TransferRequestBody' + required: false + responses: + '201': + description: Transfer created. + headers: {} + '400': + description: Transfer failed. + '403': + description: Access token does not have Send scope. + deprecated: false + /transfers/{id}: + parameters: + - name: id + in: path + description: ID of transfer. + required: true + style: simple + explode: false + schema: + type: string + get: + tags: + - transfers + summary: byId + description: Get a transfer by id. + operationId: getTransfer + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/Transfer' + '404': + description: Transfer not found. + deprecated: false + post: + tags: + - transfers + summary: update + description: Update a transfer. + operationId: updateTransfer + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + requestBody: + description: Transfer to update. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateTransfer' + required: false + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/Transfer' + '400': + description: Validation error. + '404': + description: Transfer not found. + deprecated: false + /transfers/{id}/failure: + get: + tags: + - transfers + summary: failureById + description: Get a bank transfer failure by transfer id. + operationId: getTransferFailure + parameters: + - name: id + in: path + description: ID of failed bank transfer to get. + required: true + style: simple + explode: false + schema: + type: string + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/TransferFailure' + '404': + description: Bank transfer failure not found. + deprecated: false + /transfers/{id}/fees: + get: + tags: + - transfers + summary: getFeesBySource + description: "Get a transfer's fees." + operationId: GetFeesBySource + parameters: + - name: id + in: path + description: Transfer id to get fees for. + required: true + style: simple + explode: false + schema: + type: string + responses: + '200': + description: Fees found. + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/FeesBySourceResponse' + '403': + description: Not authorized to list transfers. + deprecated: false + /webhook-subscriptions: + get: + tags: + - webhook-subscriptions + summary: list + description: Get the list of webhooks. + operationId: listWebhoookSubscriptions + parameters: [] + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/WebhookListResponse' + deprecated: false + post: + tags: + - webhook-subscriptions + summary: create + description: Create a new webhook subscription. + operationId: createWebhookSubscription + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + requestBody: + description: Webhook subscription to create. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateWebhook' + required: false + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/WebhookSubscription' + deprecated: false + /webhook-subscriptions/{id}: + parameters: + - name: id + in: path + description: ID of webhook subscription. + required: true + style: simple + explode: false + schema: + type: string + get: + tags: + - webhook-subscriptions + summary: id + description: Get a webhook subscription by id. + operationId: getWebhookSubscription + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/WebhookSubscription' + '404': + description: Webhook subscription not found. + deprecated: false + post: + tags: + - webhook-subscriptions + summary: updateSubscription + description: Update a subscription by id. + operationId: UpdateWebhookSubscription + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + requestBody: + description: Details to update. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscription' + required: false + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/WebhookSubscription' + '404': + description: Webhook subscription not found. + deprecated: false + delete: + tags: + - webhook-subscriptions + summary: deleteById + description: Delete a webhook subscription by id. + operationId: DeleteById + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/WebhookSubscription' + '404': + description: Webhook subscription not found. + deprecated: false + /webhook-subscriptions/{id}/webhooks: + get: + tags: + - webhook-subscriptions + summary: getWebhooksForWebhoookSubscription + description: Get webhooks by subscription id. + operationId: HooksById + parameters: + - name: id + in: path + description: ID of webhook to get. + required: true + style: simple + explode: false + schema: + type: string + - name: limit + in: query + description: How many results to return. + style: form + explode: true + schema: + type: integer + format: int32 + minimum: 1 + maximum: 200 + default: 25 + example: 25 + - name: offset + in: query + description: How many results to skip. + style: form + explode: true + schema: + type: integer + format: int32 + default: 0 + example: 0 + - name: startDate + in: query + description: Only include transfers created after this date. ISO-8601 format is YYYY-MM-DD. + style: form + explode: true + schema: + type: string + - name: endDate + in: query + description: Only include transfers created before this date. ISO-8601 format is YYYY-MM-DD. + style: form + explode: true + schema: + type: string + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/WebhookEventListResponse' + deprecated: false + /webhooks/{id}: + get: + tags: + - webhooks + summary: id + description: Get a webhook by id. + operationId: getWebhook + parameters: + - name: id + in: path + description: ID of webhook to get. + required: true + style: simple + explode: false + schema: + type: string + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/Webhook' + '404': + description: Webhook not found. + deprecated: false + /webhooks/{id}/retries: + parameters: + - name: id + in: path + description: ID of webhook. + required: true + style: simple + explode: false + schema: + type: string + get: + tags: + - webhooks + summary: retriesById + description: Get retries requested by webhook id. + operationId: RetriesById + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/WebhookRetryRequestListResponse' + '404': + description: Webhook not found. + deprecated: false + post: + tags: + - webhooks + summary: retryWebhook + description: Retry a webhook by id. + operationId: RetryWebhook + parameters: + - name: Idempotency-Key + in: header + description: Unique key used to prevent duplication over a short period of time. + required: false + style: simple + explode: false + schema: + type: string + responses: + '200': + description: successful operation + headers: {} + content: + application/vnd.dwolla.v1.hal+json: + schema: + $ref: '#/components/schemas/WebhookRetry' + '404': + description: Webhook not found. + deprecated: false +components: + schemas: + Owner: + title: Owner + required: + - _links + - id + - firstName + - lastName + - address + - verificationStatus + - created + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + id: + type: object + firstName: + type: string + lastName: + type: string + address: + $ref: '#/components/schemas/Address' + verificationStatus: + type: string + created: + type: string + _embedded: + type: object + additionalProperties: + type: number + Address: + title: Address + required: + - address1 + - city + - stateProvinceRegion + - country + type: object + properties: + address1: + type: string + address2: + type: string + address3: + type: string + city: + type: string + stateProvinceRegion: + type: string + country: + type: string + postalCode: + type: string + Customer: + title: Customer + required: + - _links + - id + - firstName + - lastName + - type + - status + - created + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + id: + type: string + firstName: + type: string + lastName: + type: string + email: + type: string + type: + type: string + status: + type: string + created: + type: string + address1: + type: string + address2: + type: string + city: + type: string + state: + type: string + postalCode: + type: string + phone: + type: string + businessName: + type: string + doingBusinessAs: + type: string + website: + type: string + correlationId: + type: string + controller: + type: object + Document: + title: Document + required: + - _links + - id + - status + - type + - created + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + id: + type: string + status: + type: string + type: + type: string + created: + type: string + failureReason: + type: string + _embedded: + type: object + CustomerFundingSourcesToken: + title: CustomerFundingSourcesToken + required: + - _links + - token + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + token: + type: string + WebhookListResponse: + title: WebhookListResponse + required: + - _links + - _embedded + - total + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + total: + type: integer + format: int32 + ApplicationEvent: + title: ApplicationEvent + required: + - _links + - id + - created + - topic + - resourceId + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + id: + type: string + created: + type: string + topic: + type: string + resourceId: + type: string + LedgerEntryListResponse: + title: LedgerEntryListResponse + required: + - _links + - _embedded + - total + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + total: + type: integer + format: int32 + CreateCustomerLabelRequest: + title: CreateCustomerLabelRequest + required: + - amount + type: object + properties: + amount: + $ref: '#/components/schemas/Amount' + MassPaymentListResponse: + title: MassPaymentListResponse + required: + - _links + - _embedded + - total + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + total: + type: integer + format: int32 + VerifyMicroDepositsRequest: + title: VerifyMicroDepositsRequest + required: + - amount1 + - amount2 + type: object + properties: + amount1: + $ref: '#/components/schemas/Amount' + amount2: + $ref: '#/components/schemas/Amount' + BusinessClassification: + title: BusinessClassification + required: + - _links + - id + - name + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + id: + type: string + name: + type: string + Transfer: + title: Transfer + required: + - _links + - id + - status + - amount + - created + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + id: + type: string + status: + type: string + amount: + $ref: '#/components/schemas/Money' + created: + type: string + metadata: + type: object + clearing: + type: object + correlationId: + type: string + individualAchId: + type: string + achDetails: + type: object + UpdateJobRequestBody: + title: UpdateJobRequestBody + required: + - status + type: object + properties: + status: + type: string + FundingSource: + title: FundingSource + required: + - _links + - id + - status + - type + - name + - created + - removed + - channels + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + id: + type: string + status: + type: string + type: + type: string + bankAccountType: + type: string + name: + type: string + created: + type: string + balance: + type: object + removed: + type: boolean + example: false + channels: + type: array + items: + type: string + description: '' + bankName: + type: string + iavAccountHolders: + type: object + fingerprint: + type: string + FundingSourceListResponse: + title: FundingSourceListResponse + required: + - _links + - _embedded + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + CustomerListResponse: + title: CustomerListResponse + required: + - _links + - _embedded + - total + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + total: + type: integer + format: int32 + UpdateBankRequest: + title: UpdateBankRequest + required: + - name + type: object + properties: + _links: + type: object + name: + type: string + routingNumber: + type: string + accountNumber: + type: string + bankAccountType: + type: string + OAuthResponse: + title: OAuthResponse + required: + - _links + - access_token + - expires_in + - refresh_token + - refresh_expires_in + - token_type + - scope + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + access_token: + type: string + expires_in: + type: number + refresh_token: + type: string + refresh_expires_in: + type: number + token_type: + type: string + scope: + type: string + Notification: + title: Notification + required: + - _links + - id + - type + - template + - status + - created + - fromName + - fromEmail + - toEmail + type: object + properties: + _links: + type: object + _embedded: + type: object + id: + type: string + type: + type: string + template: + type: string + status: + type: string + statusReason: + type: string + created: + type: string + sent: + type: string + fromName: + type: string + fromEmail: + type: string + toName: + type: string + toEmail: + type: string + subject: + type: string + replyToEmail: + type: string + HalLink: + title: HalLink + required: + - href + type: object + properties: + href: + type: string + type: + type: string + resource-type: + type: string + Passport: + title: Passport + required: + - number + - country + type: object + properties: + number: + type: string + country: + type: string + TransferRequestBody: + title: TransferRequestBody + required: + - _links + - amount + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + amount: + type: object + metadata: + type: object + fees: + type: object + clearing: + type: object + imad: + type: string + correlationId: + type: string + wireInstructions: + type: object + achDetails: + type: object + WebhookHttpRequest: + title: WebhookHttpRequest + required: + - timestamp + - url + - headers + - body + type: object + properties: + timestamp: + type: string + url: + type: string + headers: + type: array + items: + $ref: '#/components/schemas/WebhookHeader' + description: '' + body: + type: string + Amount: + title: Amount + required: + - value + - currency + type: object + properties: + value: + type: string + currency: + type: string + LabelListResponse: + title: LabelListResponse + required: + - _links + - _embedded + - total + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + total: + type: integer + format: int32 + UpdateOwnerRequest: + title: UpdateOwnerRequest + type: object + properties: + firstName: + type: string + lastName: + type: string + ssn: + type: string + dateOfBirth: + type: string + format: date + address: + $ref: '#/components/schemas/Address' + passport: + $ref: '#/components/schemas/Passport' + MassPaymentItemRequestBody: + title: MassPaymentItemRequestBody + required: + - _links + - amount + type: object + properties: + _links: + type: object + amount: + $ref: '#/components/schemas/Amount' + metadata: + type: object + correlationId: + type: string + achDetails: + type: object + MicroDeposits: + title: MicroDeposits + required: + - _links + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + Webhook: + title: Webhook + required: + - _links + - id + - topic + - accountId + - eventId + - subscriptionId + - attempts + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + id: + type: string + topic: + type: string + accountId: + type: object + eventId: + type: object + subscriptionId: + type: object + attempts: + type: array + items: + $ref: '#/components/schemas/WebhookAttempt' + description: '' + CreateCustomer: + title: CreateCustomer + required: + - firstName + - lastName + type: object + properties: + firstName: + type: string + lastName: + type: string + email: + type: string + ipAddress: + type: string + type: + type: string + address1: + type: string + address2: + type: string + city: + type: string + state: + type: string + postalCode: + type: string + dateOfBirth: + type: string + format: date + ssn: + type: string + phone: + type: string + businessName: + type: string + businessType: + type: string + businessClassification: + type: string + ein: + type: string + doingBusinessAs: + type: string + website: + type: string + correlationId: + type: string + DocumentListResponse: + title: DocumentListResponse + required: + - _links + - _embedded + - total + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + total: + type: integer + format: int32 + MassPayment: + title: MassPayment + required: + - _links + - id + - status + - created + type: object + properties: + _links: + type: object + _embedded: + type: object + id: + type: string + status: + type: string + created: + type: string + metadata: + type: object + total: + type: object + totalFees: + type: object + correlationId: + type: string + Label: + title: Label + required: + - _links + - id + - created + - amount + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + id: + type: object + created: + type: string + amount: + $ref: '#/components/schemas/Amount' + TransferFailure: + title: TransferFailure + required: + - _links + - code + - description + - created + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + code: + type: string + description: + type: string + explanation: + type: string + created: + type: string + UpdateTransfer: + title: UpdateTransfer + required: + - status + type: object + properties: + status: + type: string + TransferListResponse: + title: TransferListResponse + required: + - _links + - _embedded + - total + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + total: + type: integer + format: int32 + UpdateSubscription: + title: UpdateSubscription + required: + - paused + type: object + properties: + paused: + type: boolean + example: false + AccountFundingSourcesToken: + title: AccountFundingSourcesToken + required: + - _links + - token + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + token: + type: string + UpdateCustomer: + title: UpdateCustomer + type: object + properties: + firstName: + type: string + lastName: + type: string + email: + type: string + ipAddress: + type: string + type: + type: string + status: + type: string + address1: + type: string + address2: + type: string + city: + type: string + state: + type: string + postalCode: + type: string + dateOfBirth: + type: string + format: date + ssn: + type: string + pattern: "^\\d{3}-\\d{2}-\\d{4}$" + phone: + type: string + businessName: + type: string + businessType: + type: string + businessClassification: + type: string + ein: + type: string + doingBusinessAs: + type: string + website: + type: string + controller: + type: object + correlationId: + type: string + CreateOwnerRequest: + title: CreateOwnerRequest + required: + - firstName + - lastName + - dateOfBirth + - address + type: object + properties: + firstName: + type: string + lastName: + type: string + ssn: + type: string + dateOfBirth: + type: string + address: + $ref: '#/components/schemas/Address' + passport: + $ref: '#/components/schemas/Passport' + ProcessResult: + title: ProcessResult + required: + - _links + - total + type: object + properties: + _links: + type: object + _embedded: + type: object + total: + type: integer + format: int32 + BusinessClassificationListResponse: + title: BusinessClassificationListResponse + required: + - _links + - _embedded + - total + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + total: + type: integer + format: int32 + NotificationListResponse: + title: NotificationListResponse + required: + - _links + - _embedded + - total + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + total: + type: integer + format: int32 + AddLabelLedgerEntryRequest: + title: AddLabelLedgerEntryRequest + required: + - amount + type: object + properties: + amount: + $ref: '#/components/schemas/Amount' + MassPaymentItem: + title: MassPaymentItem + required: + - _links + - id + - status + - amount + type: object + properties: + _links: + type: object + _embedded: + type: object + id: + type: string + status: + type: string + amount: + $ref: '#/components/schemas/Amount' + metadata: + type: object + correlationId: + type: string + CreateWebhook: + title: CreateWebhook + required: + - url + - secret + type: object + properties: + url: + type: string + secret: + type: string + Ownership: + title: Ownership + required: + - _links + - status + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + status: + type: string + _embedded: + type: object + additionalProperties: + type: number + EventListResponse: + title: EventListResponse + required: + - _links + - _embedded + - total + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + total: + type: integer + format: int32 + CatalogResponse: + title: CatalogResponse + required: + - _links + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + LabelReallocationRequest: + title: LabelReallocationRequest + required: + - fromLabelId + - toLabelId + - partnerId + - amount + type: object + properties: + fromLabelId: + type: string + toLabelId: + type: string + partnerId: + type: string + amount: + $ref: '#/components/schemas/Amount' + Money: + title: Money + required: + - value + - currency + type: object + properties: + value: + type: string + currency: + type: string + WebhookRetry: + title: WebhookRetry + required: + - _links + - id + - timestamp + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + id: + type: string + timestamp: + type: string + FullAccountInfo: + title: FullAccountInfo + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + properties: + '': + type: string + id: + type: string + name: + type: string + timezoneOffset: + type: integer + format: int32 + type: + type: string + _embedded: + type: object + required: + - _links + - id + - name + - timezoneOffset + - type + - _embedded + WebhookRetryRequestListResponse: + title: WebhookRetryRequestListResponse + required: + - _links + - _embedded + - total + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + total: + type: integer + format: int32 + IavTokenRequest: + title: IavTokenRequest + required: + - tokenType + type: object + properties: + tokenType: + type: string + LabelReallocation: + title: LabelReallocation + required: + - _links + - created + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + created: + type: string + WebhookAttempt: + title: WebhookAttempt + required: + - id + - request + type: object + properties: + id: + type: string + request: + $ref: '#/components/schemas/WebhookHttpRequest' + response: + type: object + MicroDepositsInitiated: + title: MicroDepositsInitiated + required: + - _links + - created + - status + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + created: + type: string + status: + type: string + failure: + type: object + CertifyRequest: + title: CertifyRequest + required: + - status + type: object + properties: + status: + type: string + WebhookSubscription: + title: WebhookSubscription + required: + - _links + - id + - url + - paused + - created + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + id: + type: string + url: + type: string + paused: + type: boolean + example: false + created: + type: string + WebhookHeader: + title: WebhookHeader + required: + - name + - value + type: object + properties: + name: + type: string + value: + type: string + MassPaymentRequestBody: + title: MassPaymentRequestBody + required: + - _links + - items + type: object + properties: + _links: + type: object + items: + type: array + items: + $ref: '#/components/schemas/MassPaymentItemRequestBody' + description: '' + metadata: + type: object + status: + type: string + correlationId: + type: string + achDetails: + type: object + FundingSourceBalance: + title: FundingSourceBalance + required: + - _links + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + balance: + type: object + lastUpdated: + type: string + status: + type: string + MassPaymentItemListResponse: + title: MassPaymentItemListResponse + required: + - _links + - _embedded + - total + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + total: + type: integer + format: int32 + WebhookEventListResponse: + title: WebhookEventListResponse + required: + - _links + - _embedded + - total + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + total: + type: integer + format: int32 + LedgerEntry: + title: LedgerEntry + required: + - _links + - id + - amount + - created + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + id: + type: object + amount: + $ref: '#/components/schemas/Amount' + created: + type: string + IavToken: + title: IavToken + required: + - _links + - token + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + token: + type: string + CreateFundingSourceRequest: + title: CreateFundingSourceRequest + required: + - routingNumber + - accountNumber + type: object + properties: + _links: + type: object + routingNumber: + type: string + accountNumber: + type: string + type: + type: string + bankAccountType: + type: string + name: + type: string + verified: + type: boolean + example: false + channels: + type: array + items: + type: string + description: '' + FeesBySourceResponse: + title: FeesBySourceResponse + required: + - _links + - _embedded + - transactions + - total + type: object + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + _embedded: + type: object + transactions: + type: array + items: + $ref: '#/components/schemas/Transfer' + description: '' + total: + type: integer + format: int32 + Session: + type: object + required: + - _embedded + - _links + - id + - questions + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + id: + type: string + questions: + type: array + items: + $ref: '#/components/schemas/Question' + _embedded: + type: object + additionalProperties: + type: number + Question: + type: object + required: + - answers + - id + - text + properties: + id: + type: string + text: + type: string + answers: + type: array + items: + $ref: '#/components/schemas/Answer' + Answer: + type: object + required: + - id + - text + properties: + id: + type: string + text: + type: string + AnswerKbaQuestionsRequest: + type: object + required: + - answers + properties: + answers: + type: array + items: + $ref: '#/components/schemas/AnsweredKbaQuestion' + AnsweredKbaQuestion: + type: object + required: + - answerId + - questionId + properties: + questionId: + type: string + answerId: + type: string + AnswerKbaQuestionsResponse: + type: object + required: + - _embedded + - _links + - verificationStatus + properties: + _links: + type: object + additionalProperties: + $ref: '#/components/schemas/HalLink' + verificationStatus: + type: string + _embedded: + type: object + additionalProperties: + type: number + securitySchemes: + oAuth2ClientCredentials: + type: oauth2 + description: See https://docs.dwolla.com/#application-authorization + flows: + clientCredentials: + tokenUrl: https://api.dwolla.com/token + scopes: {} + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: https://accounts-sandbox.dwolla.com/auth + tokenUrl: https://api.dwolla.com/token + scopes: + funding: '' + transactions: '' + send: '' + accountinfofull: '' + managecustomers: '' + detailedaccountinfo: '' + openid: '' +security: + - oAuth2ClientCredentials: [] + - oauth2: + - funding + - send + - transactions + - accountinfofull + - managecustomers + - detailedaccountinfo + - openid +tags: + - name: root + description: Initial catalog of endpoints for given token. + - name: accounts + description: View account information. + - name: beneficial-owners + description: Beneficial owners + - name: business-classifications + description: View business classifications. + - name: customers + description: Manage white label customer records. + - name: documents + description: Manage documents. + - name: events + description: View an application's events. + - name: funding-sources + description: Manage funding sources. + - name: kba + description: Verify customers using Knowledge-Based Authentication. + - name: labels + description: View labels. + - name: label-reallocations + description: Reallocate two labels. + - name: ledger-entries + description: View ledger entries. + - name: mass-payments + description: View & manage mass payments. + - name: mass-payment-items + description: View mass payment items. + - name: notifications + description: View notifications items. + - name: on-demand-authorizations + description: Manage on-demand authorizations. + - name: sandbox + description: Simulate transfer status outcomes. + - name: token + description: Retreive an access token. + - name: transfers + description: View & manage transfers. + - name: webhooks + description: Webhooks created from events. + - name: webhook-subscriptions + description: Manage an application's webhook subscriptions. \ No newline at end of file