Developer Configuration
🖥️

Developer Configuration

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.

Endpoint Collections

CollectionDescription
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

For the POST body

FieldTypeDescription
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

For the PATCH Body

FieldTypeDescription
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

). Others, however, must make API calls to view, configure, delete, and edit their subscribed events.

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

For the POST Body.

FieldTypeDescription
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
, this callbackURL is set automatically during configuration.

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

In the URL Parameters

FieldTypeDescription
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

In the URL Parameters

FieldTypeDescription
string
The ID of the webhook you want to modify.

In the PATCH body

FieldTypeDescription
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

In the Request Parameters

FieldTypeDescription
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

In the Query String

FieldTypeDescription
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 ] 
	}
}
🕚
Event Endpoints