Embed DailyPay and On Demand Pay features into your application.
- Request a transfer
DailyPay Public Rest API (3.0.0-beta01)
MIT
https://developer.dailypay.com/_mock/developer-resources/documentation/
https://api.{environment}.com/
API Status
Please subscribe to the DailyPay Status Page for the current status of the DailyPay Public REST API.
Environments
In general, DailyPay APIs have two environments per API and follow the naming structure of api.dailypay.com
for the Production environment and api.dailypayuat.com
for the UAT environment.
API Name | Production URL | UAT URL |
---|---|---|
DailyPay Public REST API | https://api.dailypay.com | https://api.dailypayuat.com |
Data Exchange API | https://api.dailypay.com | https://api.dailypayuat.com |
Payments API | https://payments-api.dailypay.com | https://payments-api.dailypayuat.com |
Environment | Purpose | Access | Data |
---|---|---|---|
Production | Live environment for processing production API Traffic | Restricted access for authorized clients and users only | Real production data exchanges including money movement |
UAT | Staging environment for developers to test new features, updates, and changes | Less restricted access for both developers and testers | Test data and exchanges without money movement |
Function | UAT | Production |
---|---|---|
Testing user data without PII | ✓ | |
Ability to mock transfer of funds | ✓ | |
Ability to integrate with custom code | ✓ | ✓ |
Access to real-world transactions like ACH Deposits | ✓ | |
Live customer data | ✓ | |
Live transactions moving real funds | ✓ |
Filtering
Efficiently retrieve DailyPay REST API resources with filtering queries by specifying query parameters in the request URL. This guide outlines how to build your queries.
The request URL for a filtered query is structured as follows:
https://api.dailypay.com/{endpoint}?filter[{field}]={value}
Each filter is a standard URL query parameter key-value pair. Filter parameters follow the jsonapi specification of a query parameter family, where the parameter key is the base name filter
followed by a square-bracketed ([]
) field name.
- The
{endpoint}
is the resource you want to filter, such as organizations, transfers, or paychecks. - A
{field}
is the attribute of a resource you want to filter by, such as a person's employee ID or a transfer's status. - A
{value}
is any value that could be a valid payload for the attribute, such as "DailyPay" for an organization name, or "PROCESSING" for a transfer status.
The symbols used in DailyPay's filter strings MUST be urlencoded.
For example, a curl would look like:
curl \
--get 'https://api.dailypayuat.com/rest/jobs' \
--header "Authorization: Bearer ${ACCESS_TOKEN}" \
--data-urlencode "filter[external_identifiers.primary_identifier]=040919553433" \
--include
When using one of our published SDKs, you do not have to transform or urlencode filter keys.
Filter for a paycheck with the status "IN_TRANSIT".
GET https://api.dailypay.com/paychecks?filter[status]=IN_TRANSIT
Use multiple query parameters across different fields filter[{field}]={value}
at the same time to fine tune the response. Each result will match all filters.
GET https://api.dailypay.com/paychecks?filter[job.id]=12345&filter[status]=PROCESSING
Versioning
Each API at DailyPay adheres to semver standards for versioning, represented as
MAJOR.MINOR.PATCH
:- The
MAJOR
version is incremented for breaking changes. - The
MINOR
version is incremented for backwards compatible changes. - The
PATCH
version is incremented for backwards compatible bug fixes.
- The
DailyPay will issue a new major API version when a breaking change occurs.
To avoid breaking your code, developers are responsible for updating their API calls to interact with new versions of the DailyPay APIs.
Communication about API changes will be in the changelogs for the APIs or available from your DailyPay representatives.
- New resources
- New optional query parameters
- New optional body properties on PATCH, POST, PUT
- New properties on existing API responses
- Property order changes on existing API responses
- Changes to the content, length, or format of error messages and other human-readable strings
Your API version controls the API behavior, properties in responses, available parameters in requests, and so on.
If you want to use API version v3
of the DailyPay Public REST API, specify the URL https://api.dailypay.com/rest
or https://api.dailypayuat.com/rest
.
Accounts
The accounts endpoint provides comprehensive information about money accounts. You can retrieve account details, including the account's unique ID, a link to the account holder, type, subtype, verification status, balance details, transfer capabilities, and user-specific information such as names, routing numbers, and partial account numbers.
Functionality: Access detailed user account information, verify account balances, view transfer capabilities, and access user-specific details associated with each account.
Jobs
The jobs endpoint provides access to comprehensive information about a person's employment. It enables you to retrieve details about individual jobs, including information about the organization they work for, status, wage rate, job title, location, paycheck settings, and related links to associated accounts.
Organizations
The organizations endpoint provides details about a business entity, such as an employer, or a group of people, such as a division.
The response includes the organization name and ID which can be used to make subsequent endpoint calls related to the organization and its employees.
Paychecks
The paychecks endpoint provides detailed information about paychecks. You can retrieve individual paycheck details, including the person and job associated with the paycheck, its status, pay period, expected deposit date, total debited amount, withholdings, earnings, and currency.
Functionality: Retrieve specific paycheck details, including payee and job information, and monitor the status and financial details of each paycheck.
Transfers
The transfers endpoint allows you to initiate and track money movement. You can access transfer details, including the transfer's unique ID, amount, currency, status, schedule, submission and resolution times, fees, and related links to the involved parties.
Functionality Retrieve transfer information, monitor transfer statuses, view transfer schedules, and access relevant links for the source, destination, and origin of the transfer.
Important - Account origin: a user initiated movement of money from one account to another - Paycheck origin: an automatic (system-generated) movement of money as part of payroll
Request
Returns a list of transfer objects. See Filtering Transfers for a description of filterable fields.
Add related resources to the response.
The value of the include parameter must be a comma-separated (U+002C COMMA, “,”) list of relationship paths.
- Mock server
https://developer.dailypay.com/_mock/developer-resources/documentation/rest/transfers
- DailyPay REST API server
https://api.dailypay.com/rest/transfers
- JavaScript
- Go
- C#
- Java
- Python
- Ruby
- cURL
import { SDK } from "@dailypay/dailypay";
const sdk = new SDK({
version: 3,
security: {
oauthClientCredentialsToken: {
clientID: "<YOUR_CLIENT_ID_HERE>",
clientSecret: "<YOUR_CLIENT_SECRET_HERE>",
tokenURL: "<YOUR_TOKEN_URL_HERE>",
},
},
});
async function run() {
const result = await sdk.transfers.list();
console.log(result);
}
run();
A list of transfer objects.
An object representing a transfer of money from one account to another. Created when a person takes an advance against a future paycheck, or on a daily basis when we update estimated earnings based on current employment.
Include this field to preview a transfer without sending it, to see, for example, the fee that would be charged. This will return the same response as a typical transfer request. When the preview field is true in the response to creating a transfer, that indicates no transfer was created.
The amount of funds requested to move from the origin account to the destination account. Any fees will be subtracted from this amount prior to landing in the destination account.
A monetary quantity expressed in units of the lowest denomination in the associated currency. For example, { amount: 7250, currency: 'USD' }
resolves to $72.50.
A three-letter ISO 4217 currency code. For example, USD
for US Dollars, EUR
for Euros, or JPY
for Japanese Yen.
The status of the transfer.
Enum Value | Description |
---|---|
PENDING | The transfer is in process, or funds have been scheduled but a final status is not yet known. |
SETTLED | Funds have been successfully transferred. |
FAILED | The transfer has failed. |
Set the schedule for the transfer. If not set, the transfer will be processed immediately. A preview transfer will never send.
An ISO 8601 timestamp denoting the receipt for the request.
An ISO 8601 date denoting a successful or unsuccessful resolution for the request.
A monetary quantity expressed in units of the lowest denomination in the associated currency. For example, { amount: 7250, currency: 'USD' }
resolves to $72.50. If a transfer incurs a fee, the fee will be deducted from the amount of the transfer.
The relationships between the transfer and other resources, including the destination account, the origination account, and the person who initiated the transfer.
Origin may be a reference to either a Paycheck or an Account.
User-created transfers always originate from an Account with account_type
EARNINGS_BALANCE
.
A transfer that originates from a Paycheck is a
system-created record that describes a credit of earnings to an account with account_type
EARNINGS_BALANCE
.
Origin may be a reference to either a Paycheck or an Account.
User-created transfers always originate from an Account with account_type
EARNINGS_BALANCE
.
A transfer that originates from a Paycheck is a
system-created record that describes a credit of earnings to an account with account_type
EARNINGS_BALANCE
.
The account to which funds are transferred.
User-created transfers should have a destination Account with account_type
DEPOSITORY
or CARD
.
On user-created transfers, details the paychecks that are likely to be used to reimburse this transfer.
The paychecks impacted, and final amount allocated from each paycheck is subject to change. See final_funding_sources
for the final allocations.
On user-created transfers, details the paychecks that were used to reimburse this transfer and the amount allocated from each paycheck.
If this relationship has members, its members and their values are immutable.
{ "data": [ { "type": "transfers", "id": "aba332a2-24a2-46de-8257-5040e71ab210", "attributes": { … }, "links": { … }, "relationships": { … } } ], "included": [ { "id": "b5393c00b7c113fc2e5ae3e80c785bb2", "type": "funding_sources", "attributes": { … }, "relationships": { … } } ] }
The version of the DailyPay API to use for this request. If not provided, the latest version of the API will be used.
The media type of the requested payload. This should be set to application/vnd.api+json
to signify your client can receive responses in the JSON:API format. For more details, see https://jsonapi.org.
The unique identifier of the transfer. Any UUID version is valid, lower-cased.
An object representing a transfer of money from one account to another. Created when a person takes an advance against a future paycheck, or on a daily basis when we update estimated earnings based on current employment.
Include this field to preview a transfer without sending it, to see, for example, the fee that would be charged. This will return the same response as a typical transfer request. When the preview field is true in the response to creating a transfer, that indicates no transfer was created.
The amount of funds requested to move from the origin account to the destination account. Any fees will be subtracted from this amount prior to landing in the destination account.
A monetary quantity expressed in units of the lowest denomination in the associated currency. For example, { amount: 7250, currency: 'USD' }
resolves to $72.50.
A three-letter ISO 4217 currency code. For example, USD
for US Dollars, EUR
for Euros, or JPY
for Japanese Yen.
The relationships between the transfer and other resources, including the destination account, the origination account, and the person who initiated the transfer.
User-created transfers must originate from an Account with account_type
EARNINGS_BALANCE
.
The account to which funds are transferred.
User-created transfers should have a destination Account with account_type
DEPOSITORY
or CARD
.
- Mock server
https://developer.dailypay.com/_mock/developer-resources/documentation/rest/transfers
- DailyPay REST API server
https://api.dailypay.com/rest/transfers
- JavaScript
- Go
- C#
- Java
- Python
- Ruby
- cURL
import { SDK } from "@dailypay/dailypay";
const sdk = new SDK({
version: 3,
security: {
oauthClientCredentialsToken: {
clientID: "<YOUR_CLIENT_ID_HERE>",
clientSecret: "<YOUR_CLIENT_SECRET_HERE>",
tokenURL: "<YOUR_TOKEN_URL_HERE>",
},
},
});
async function run() {
const result = await sdk.transfers.create({
idempotencyKey: "ea9f2225-403b-4e2c-93b0-0eda090ffa65",
transferCreateData: {
data: {
type: "transfers",
id: "aba332a2-24a2-46de-8257-5040e71ab210",
attributes: {
preview: true,
amount: 2500,
currency: "USD",
schedule: "WITHIN_THIRTY_MINUTES",
},
relationships: {
origin: {
data: {
type: "accounts",
id: "2bc7d781-3247-46f6-b60f-4090d214936a",
},
},
destination: {
data: {
type: "accounts",
id: "2bc7d781-3247-46f6-b60f-4090d214936a",
},
},
person: {
data: {
type: "people",
id: "3fa8f641-5717-4562-b3fc-2c963f66afa6",
},
},
},
},
},
});
console.log(result);
}
run();
Returns the newly created transfer object.
An object representing a transfer of money from one account to another. Created when a person takes an advance against a future paycheck, or on a daily basis when we update estimated earnings based on current employment.
Include this field to preview a transfer without sending it, to see, for example, the fee that would be charged. This will return the same response as a typical transfer request. When the preview field is true in the response to creating a transfer, that indicates no transfer was created.
The amount of funds requested to move from the origin account to the destination account. Any fees will be subtracted from this amount prior to landing in the destination account.
A monetary quantity expressed in units of the lowest denomination in the associated currency. For example, { amount: 7250, currency: 'USD' }
resolves to $72.50.
A three-letter ISO 4217 currency code. For example, USD
for US Dollars, EUR
for Euros, or JPY
for Japanese Yen.
The status of the transfer.
Enum Value | Description |
---|---|
PENDING | The transfer is in process, or funds have been scheduled but a final status is not yet known. |
SETTLED | Funds have been successfully transferred. |
FAILED | The transfer has failed. |
Set the schedule for the transfer. If not set, the transfer will be processed immediately. A preview transfer will never send.
An ISO 8601 timestamp denoting the receipt for the request.
An ISO 8601 date denoting a successful or unsuccessful resolution for the request.
A monetary quantity expressed in units of the lowest denomination in the associated currency. For example, { amount: 7250, currency: 'USD' }
resolves to $72.50. If a transfer incurs a fee, the fee will be deducted from the amount of the transfer.
The relationships between the transfer and other resources, including the destination account, the origination account, and the person who initiated the transfer.
Origin may be a reference to either a Paycheck or an Account.
User-created transfers always originate from an Account with account_type
EARNINGS_BALANCE
.
A transfer that originates from a Paycheck is a
system-created record that describes a credit of earnings to an account with account_type
EARNINGS_BALANCE
.
Origin may be a reference to either a Paycheck or an Account.
User-created transfers always originate from an Account with account_type
EARNINGS_BALANCE
.
A transfer that originates from a Paycheck is a
system-created record that describes a credit of earnings to an account with account_type
EARNINGS_BALANCE
.
The account to which funds are transferred.
User-created transfers should have a destination Account with account_type
DEPOSITORY
or CARD
.
On user-created transfers, details the paychecks that are likely to be used to reimburse this transfer.
The paychecks impacted, and final amount allocated from each paycheck is subject to change. See final_funding_sources
for the final allocations.
On user-created transfers, details the paychecks that were used to reimburse this transfer and the amount allocated from each paycheck.
If this relationship has members, its members and their values are immutable.
{ "data": { "type": "transfers", "id": "aba332a2-24a2-46de-8257-5040e71ab210", "attributes": { "preview": true, "amount": 2500, "currency": "USD", "status": "PENDING", "schedule": "WITHIN_THIRTY_MINUTES", "submitted_at": "2021-04-21T21:30:58.051Z", "resolved_at": "2021-04-21T21:30:58.051Z", "fee": 0 }, "links": { "self": "https://api.dailypay.com/rest/transfers/aba332a2-24a2-46de-8257-5040e71ab210" }, "relationships": { "origin": { … }, "destination": { … }, "person": { … }, "estimated_funding_sources": { … }, "final_funding_sources": { … } } }, "included": [ { "id": "b5393c00b7c113fc2e5ae3e80c785bb2", "type": "funding_sources", "attributes": { … }, "relationships": { … } } ] }