Some developers in LinkMoney can manage their developer configuration directly through frontend processes that replicate the behavior of aggregation services. However, in direct LinkMoney integrations, and to provide developers with flexibility to manage their LinkMoney connection, LinkMoneyAPI offers a handful of developer configuration routes.
Collection | Description |
---|---|
Create, view, and edit the basic details of your developer configuration. | |
Create, view, edit, and delete webhook configurations to control the flow of data to your authorized applications. | |
Where webhook endpoints governs the overall configuration of your webhook subscription, event endpoints refer to specific webhook requests to your endpoint. These resources are key to retrieving dropped or lost data. |
Configuration Endpoints
Developers use configuration endpoints to interact with their LinkMoney options, including their security details (IP allowlists, webhook endpoints), aggregator and data formatting options, permitted developers, and anything else pertaining to the developer's genera use of LinkMoney.
View Developer Configuration Details.
Endpoint: GET
/configuration
View the properties of your developer configuration.
Parameters
This call requires no parameters.
Example Request
curl -X GET /configuration \
-H 'Authorization: Bearer {YOUR_BEARER_TOKEN}'
Response
{
"configuration": {
"id": "CFG-uuid",
"webhookIds": [ WebhookIDs ],
"dateFormat": "ISO",
"type": "plaid",
"name": "My developer configuration",
"ipAllowlist": [ ipAddresses ]
}
}
Create a New Developer Configuration.
Endpoint: POST
/configuration
Create a new developer configuration for a LinkMoney integration.
Parameters
Field | Type | Description |
---|---|---|
string | The type refers to the type of integration the developer requires. This field can be plaid , mx , yodlee , or null in the event that the developer wants to use generic LinkMoney schemas. | |
string | A string to denote how the developer wants their dates formatted. This can be ISO , UTC or unix . If a type has been specified, this field will be automatically generated with the same date format that the aggregation provider uses. | |
string | A human-readable string to denote the name of the registered configuration. | |
string[] | A list of registered IP addresses for external applications. Not required, but if the developer wants to receive webhooks they must specify at least one IP address in their allowlist. |
Example Request
curl -X POST /configuration \
-H 'Authorization: Bearer {YOUR_BEARER_TOKEN}' \
-d '{
"type": "plaid",
"name": "my developer configuration",
"ipAllowlist": []
}'
Response
{
"configuration": {
"id": "{YOUR_APPLICATION_ID}",
"webhookIds": [ WebhookIDs ],
"dateFormat": "ISO",
"type": "plaid",
"name": "My developer configuration",
"ipAllowlist": [ ipAddresses ]
}
}
Update the Developer Configuration Details.
Endpoint: PATCH
/configuration
Edit details of your developer configuration.
Warning: changing configuration details can break multiple parts of your integration, including data validation and endpoint access. Make sure that you are prepared to alter large portions of your LinkMoney integration before you alter your configuration.
Parameters
Field | Type | Description |
---|---|---|
string[] | A list of IP addresses to add to your developer configuration. Note that these will not overwrite IP addresses already in the ipAllowlist of your configuration. | |
string | Specify a new desired format for your dates from LinkMoney. | |
string | Specify a new type for your integration. Note that this will change all important data schemas for your webhooks / data, and that it may break the calls to certain endpoints. | |
string | Specify a new name for your developer configuration. | |
string[] | A list of IP addresses to remove from your developer configuration. Note that these will not overwrite IP addresses already in the ipAllowlist of your configuration. |
Example Request
curl -X PATCH /configuration \
-H 'Authorization: Bearer {YOUR_BEARER_TOKEN}' \
-d '{
"type": "yodlee",
"ipAllowlist": ["123.40.21.1"],
"dateFormat": "unix"
}'
Response
{
"configuration": {
"id": "{YOUR_APPLICATION_ID}",
"webhookIds": [ WebhookIDs ],
"dateFormat": "unix",
"type": "yodlee",
"name": "My developer configuration",
"ipAllowlist": [ "123.40.21.1" ]
}
}
Delete Developer Configuration Details.
Endpoint: DELETE
/configuration
Delete the developer configuration. Note that running this call will delete the configuration from LinkMoney entirely, but it will not delete any of the developers permissions/privileges, which are managed through the Developer Dashboard.
Parameters
No parameters are required for this call.
Example Request
curl -X DELETE /configuration \
-H 'Authorization: Bearer {YOUR_BEARER_TOKEN}'
Response
The response to the DELETE
call includes only a requestId
. Deleting your developer configuration will also permanently delete IP allowlists and cancel all webhook subscriptions for security reasons; the requestId
can be used for 10 days to retrieve and restore the developer configuration. After the 10 days elapse, the configuration will be permanently lost.
{
"requestId": "{request_id}"
}
Webhook Endpoints
Developers may want to receive updates from LinkMoney in the form of Webhooks Some developers, like those coming from Plaid, can configure and create webhooks entirely through their authentication calls (See
For information on the actual content of various LinkMoney webhooks, see Webhooks. This documentation only covers how to interact with webhook endpoints.
Subscribe to a Webhook.
POST
/configuration/webhooks
Subscribe to a new webhook event. For details on different kinds of webhook events, see .
Parameters
Field | Type | Description |
---|---|---|
string | Optional field to subscribe to a single webhook event. See the particulars of your integration path's webhook flow. | |
string | A required URL, hosted by you, to send webhook updates to LinkMoney will direct all webhook updates as POST calls to this specified endpoint. In some cases, like Plaid Webhooks | |
Example Requests
For a Specific Webhook Event
Some webhook flows require a new subscription to be created for each type of webhook. These events can each have different callback URLs for different callback handling, though there is no restriction on using the same callback URL for multiple webhooks, provided that your endpoint's logic can handle multiple kinds of payload.
curl -X POST /configuration/webhooks \
-H 'Authorization: Bearer {YOUR_BEARER_TOKEN}'
-d '{
"eventName": "DATA_UPDATES",
"callbackURL": "https://example.com/link-money/data-update-callback"
}'
For a Generic Webhook Event
Some webhook flows (like Plaid) default to sending the full variety of their webhook events to a single callback URL.
curl -X POST /configuration/webhooks \
-H 'Authorization: Bearer {YOUR_BEARER_TOKEN}'
-d '{
"callbackURL: "https://example.com/link-money/callback"
}'
Response
{
"webhook": {
"id": "{new_webhook_id}",
"eventName": "DATA_UPDATES",
"callbackURL": "https://example.com/link-money/data-update-callback",
"lastEvent": "{last_event_id}",
"lastEventTime": "2021-02-05" // note that this field will conform to the dateFormat specified in your developer configuration.
}
}
Unsubscribe from a Webhook.
DELETE
/configuration/webhooks/:webhookId
Parameters
Field | Type | Description |
---|---|---|
string | The ID of the webhook event from which you want to unsubscribe. |
Example Request
curl -X DELETE /configuration/webhooks/{MY_WEBHOOK_ID} \
-H 'Authorization: Bearer {YOUR_BEARER_TOKEN}'
Response
When you delete your webhook, you will stop receiving updates for this event. However, you can use the requestId
from the response to restore the webhook within 10 days of deletion.
{
"requestId": "{DELETION_REQUEST_ID}"
}
Edit a Webhook Subscription.
PATCH
/configuration/webhooks/:webhookId
Edit the details of a particular webhook subscription. This is done primarily to modify the callback URL and does not permit modification of the event. This is better handled by creating a new subscription.
Parameters
Field | Type | Description |
---|---|---|
string | The ID of the webhook you want to modify. |
Field | Type | Description |
---|---|---|
string | The new callback URL where you want to receive the webook. |
Example Request
curl -X PATCH /configuration/webhooks/{MY_WEBHOOK_ID} \
-H 'Authorization: Bearer {YOUR_BEARER_TOKEN}' \
-d '{
"callbackURL": "https://example.com/new-callback-url"
}'
Response
{
"webhook": {
"eventName": "DATA_UPDATES",
"id": "{YOUR_WEBHOOK_ID}",
"callbackURL": "https://example.com/new-callback-url"
}
}
View a Webhook Subscription.
GET
/configuration/webhooks/:webhookId
See all the details for a single webhook subscription.
Parameters
Field | Type | Description |
---|---|---|
string | The ID of the webhook subscription you want to see. |
No other parameters are required.
Example Request
curl -X GET /configuration/webhooks/{MY_WEBHOOK_ID} \
-H 'Authorization: Bearer {YOUR_BEARER_TOKEN}'
Response
See the webhook data model for more information about the included fields.
{
"webhook": {
"id": "{webhook_id}",
"eventName": "DATA_UPDATES",
"callbackURL": "https://example.com/link-money/data-update-callback",
"lastEvent": "{last_event_id}",
"lastEventTime": "2021-02-05" // note that this field will conform to the dateFormat specified in your developer configuration.
"status": "active",
"errors": [],
"retrievals": []
}
}
View All Webhook Subscriptions.
GET
/configuration/webhooks
Retrieve details for all of the events to which you are currently subscribed.
Parameters
Field | Type | Description |
---|---|---|
boolean | If set to true , this call will return an array with all of the events you are subscribed to. If false , the call will only return metadata for managing webhook subscription errors holistically. Defaults to true . |
Example Requests
With Webhook Data
curl -X GET /configuration/webhooks \
-H 'Authorization: Bearer {YOUR_BEARER_TOKEN}'
Metadata Only
curl -X GET /configuration/webhooks?displayAll=false \
-H 'Authorization: Bearer {YOUR_BEARER_TOKEN}'
Responses
Webhooks in the response follow the conventional webhook JSON described by the other endpoints on this page. Additionally, the view all call includes vital metadata
about your event subscriptions as a whole, including any errors in any of your webhook configurations or any pending event retrievals.
{
"webhooks": [ webhookObject, webhookObject ],
"metadata": {
"allErrors": [ webhookError ],
"allRetrievals": [ Event, Event ]
}
}