Bulk match or categorize
curl --request POST \
--url https://sandbox.layerfi.com/v1/businesses/{businessId}/bank-transactions/bulk-match-or-categorize \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"transactions": {
"7c77e464-2a55-4e48-8d71-4f8d2a30c205": {
"type": "match",
"suggested_match_id": "8a6fb574-915d-459a-9f5d-2e0a5cf4d3e0"
},
"2fe323fc-2f0a-41bf-8f67-768ec955dc59": {
"type": "categorize",
"categorization": {
"type": "Category",
"category": {
"type": "StableName",
"stable_name": "MEALS"
}
}
}
},
"categorization_source": "<string>"
}
'{
"data": [
{
"type": "Bank_Transaction",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"business_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source_transaction_id": "g4DlKyjXqGH3Kp5XlaWMtwLRrE4Z9AiE8B4Ko",
"source_account_id": "Aaoy8G7VXZHVeqNoL1GvcmkPdqpLRWi9NArdG",
"external_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"imported_at": "2023-11-07T05:31:56Z",
"date": "2023-11-07T05:31:56Z",
"amount": 123,
"counterparty_name": "WeWork",
"description": "WeWork monthly rent payment",
"account_name": "Plaid Checking",
"category": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"category": "RENT",
"display_name": "Rent",
"stable_name": "RENT"
},
"suggested_matches": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"details": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"date": "2023-11-07T05:31:56Z",
"description": "Transfer from SavingsAccount to CheckingAccount"
}
}
],
"match": {
"type": "Match",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"bank_transaction": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"date": "2023-11-07T05:31:56Z",
"amount": 123,
"business_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source_transaction_id": "g4DlKyjXqGH3Kp5XlaWMtwLRrE4Z9AiE8B4Ko",
"source_account_id": "Aaoy8G7VXZHVeqNoL1GvcmkPdqpLRWi9NArdG",
"external_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"imported_at": "2023-11-07T05:31:56Z",
"counterparty_name": "WeWork",
"description": "WeWork monthly rent payment",
"account_name": "Plaid Checking",
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>"
},
"details": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"date": "2023-11-07T05:31:56Z",
"description": "Transfer from SavingsAccount to CheckingAccount"
}
},
"transaction_tags": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"key": "ExampleTagKey",
"value": "ExampleTagValue",
"dimension_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"definition_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"dimension_display_name": "<string>",
"value_display_name": "<string>",
"archived_at": "2023-11-07T05:31:56Z"
}
],
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>",
"update_categorization_rules_suggestion": {
"type": "Create_Categorization_Rule_For_Counterparty",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"new_rule": {
"name": "<string>",
"category": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"suggestion_1": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"suggestion_2": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"suggestion_3": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"apply_retroactively": false,
"external_id": "<string>",
"created_by_suggestion_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"merchant_type_filter": "<string>",
"transaction_description_filter": "<string>",
"counterparty_filter": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount_min_filter": 123,
"amount_max_filter": 123
},
"suggestion_prompt": "<string>",
"transactions_that_will_be_affected": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"business_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source_transaction_id": "g4DlKyjXqGH3Kp5XlaWMtwLRrE4Z9AiE8B4Ko",
"source_account_id": "Aaoy8G7VXZHVeqNoL1GvcmkPdqpLRWi9NArdG",
"external_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"imported_at": "2023-11-07T05:31:56Z",
"date": "2023-11-07T05:31:56Z",
"amount": 123,
"counterparty_name": "WeWork",
"description": "WeWork monthly rent payment",
"account_name": "Plaid Checking",
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>"
}
],
"business_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"business_name": "<string>",
"counterparty": {},
"accepted_at": "2023-11-07T05:31:56Z",
"dismissed_at": "2023-11-07T05:31:56Z"
}
}
]
}Bank Transactions
Bulk match or categorize
Match and/or categorize multiple bank transactions in a single request.
POST
/
v1
/
businesses
/
{businessId}
/
bank-transactions
/
bulk-match-or-categorize
Bulk match or categorize
curl --request POST \
--url https://sandbox.layerfi.com/v1/businesses/{businessId}/bank-transactions/bulk-match-or-categorize \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"transactions": {
"7c77e464-2a55-4e48-8d71-4f8d2a30c205": {
"type": "match",
"suggested_match_id": "8a6fb574-915d-459a-9f5d-2e0a5cf4d3e0"
},
"2fe323fc-2f0a-41bf-8f67-768ec955dc59": {
"type": "categorize",
"categorization": {
"type": "Category",
"category": {
"type": "StableName",
"stable_name": "MEALS"
}
}
}
},
"categorization_source": "<string>"
}
'{
"data": [
{
"type": "Bank_Transaction",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"business_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source_transaction_id": "g4DlKyjXqGH3Kp5XlaWMtwLRrE4Z9AiE8B4Ko",
"source_account_id": "Aaoy8G7VXZHVeqNoL1GvcmkPdqpLRWi9NArdG",
"external_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"imported_at": "2023-11-07T05:31:56Z",
"date": "2023-11-07T05:31:56Z",
"amount": 123,
"counterparty_name": "WeWork",
"description": "WeWork monthly rent payment",
"account_name": "Plaid Checking",
"category": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"category": "RENT",
"display_name": "Rent",
"stable_name": "RENT"
},
"suggested_matches": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"details": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"date": "2023-11-07T05:31:56Z",
"description": "Transfer from SavingsAccount to CheckingAccount"
}
}
],
"match": {
"type": "Match",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"bank_transaction": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"date": "2023-11-07T05:31:56Z",
"amount": 123,
"business_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source_transaction_id": "g4DlKyjXqGH3Kp5XlaWMtwLRrE4Z9AiE8B4Ko",
"source_account_id": "Aaoy8G7VXZHVeqNoL1GvcmkPdqpLRWi9NArdG",
"external_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"imported_at": "2023-11-07T05:31:56Z",
"counterparty_name": "WeWork",
"description": "WeWork monthly rent payment",
"account_name": "Plaid Checking",
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>"
},
"details": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"date": "2023-11-07T05:31:56Z",
"description": "Transfer from SavingsAccount to CheckingAccount"
}
},
"transaction_tags": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"key": "ExampleTagKey",
"value": "ExampleTagValue",
"dimension_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"definition_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"dimension_display_name": "<string>",
"value_display_name": "<string>",
"archived_at": "2023-11-07T05:31:56Z"
}
],
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>",
"update_categorization_rules_suggestion": {
"type": "Create_Categorization_Rule_For_Counterparty",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"new_rule": {
"name": "<string>",
"category": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"suggestion_1": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"suggestion_2": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"suggestion_3": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"apply_retroactively": false,
"external_id": "<string>",
"created_by_suggestion_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"merchant_type_filter": "<string>",
"transaction_description_filter": "<string>",
"counterparty_filter": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount_min_filter": 123,
"amount_max_filter": 123
},
"suggestion_prompt": "<string>",
"transactions_that_will_be_affected": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"business_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source_transaction_id": "g4DlKyjXqGH3Kp5XlaWMtwLRrE4Z9AiE8B4Ko",
"source_account_id": "Aaoy8G7VXZHVeqNoL1GvcmkPdqpLRWi9NArdG",
"external_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"imported_at": "2023-11-07T05:31:56Z",
"date": "2023-11-07T05:31:56Z",
"amount": 123,
"counterparty_name": "WeWork",
"description": "WeWork monthly rent payment",
"account_name": "Plaid Checking",
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>"
}
],
"business_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"business_name": "<string>",
"counterparty": {},
"accepted_at": "2023-11-07T05:31:56Z",
"dismissed_at": "2023-11-07T05:31:56Z"
}
}
]
}A single request can apply match actions, categorize actions, or both.
You specify the action type per transaction in the
For more variations for categorization payloads, see Category payload.
transactions object.
Request Body
Each key intransactions is a transaction id, and each value is either a Match or a Categorize action.
Match
Usesuggested_match_id to confirm a suggested match for that transaction.
{
"transactions": {
"transaction_uuid": {
"type": "match",
"suggested_match_id": "suggested_match_uuid"
},
"next_transaction_uuid": {
"type": "match",
"suggested_match_id": "suggested_match_uuid"
},
// ...
}
}
Categorize
Usecategorization to categorize that transaction (single category or split).
{
"transactions": {
"transaction_uuid": {
"type": "categorize",
"categorization": {
"type": "Category",
"category": {
"type": "StableName",
"stable_name": "MEALS"
}
}
},
"next_transaction_uuid": {
// ...
},
// ...
}
}
Response
Returns the updated Bank Transactions for all processed transactions with the additional fields for rules suggestions.Rule Suggestions
Transactions that have been categorized (i.e. taken a category payload) may includeupdate_categorization_rules_suggestion.
Transactions processed with a match action do not return rule suggestions.
For full behavior and integration guidance, see Categorization Rule Suggestions.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Content-Type must be set to application/json.
Path Parameters
The UUID of the business.
Body
application/json
Map of transaction IDs to either a match action or a categorize action.
Show child attributes
Show child attributes
Example:
{
"7c77e464-2a55-4e48-8d71-4f8d2a30c205": {
"type": "match",
"suggested_match_id": "8a6fb574-915d-459a-9f5d-2e0a5cf4d3e0"
},
"2fe323fc-2f0a-41bf-8f67-768ec955dc59": {
"type": "categorize",
"categorization": {
"type": "Category",
"category": {
"type": "StableName",
"stable_name": "MEALS"
}
}
}
}Optional source to attribute the request to. Accepted values for this endpoint are API_DIRECT, API_FROM_COMPONENT, LAYER_BOOKKEEPING, API_CONFIRM_MATCH_DIRECT, API_CONFIRM_MATCH_FROM_COMPONENT, and LAYER_BOOKKEEPING_CONFIRM_MATCH.
Response
Matched and categorized transactions.
Show child attributes
Show child attributes
āI