curl --request POST \
--url https://sandbox.layerfi.com/v1/businesses/{businessId}/invoices/payments/bulk \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"paid_at": "2023-11-07T05:31:56Z",
"amount": 123,
"invoice_payments": [
{
"invoice_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invoice_external_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"tags": [
{
"key": "department",
"value": "sales",
"dimension_display_name": "Department",
"value_display_name": "Sales Department"
}
],
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>"
}
],
"external_id": "<string>",
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customer_external_id": "<string>",
"fee": 123,
"additional_fees": [
{
"account": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"fee_amount": 123,
"type": "STANDARD",
"description": "<string>",
"is_passed_to_customer": true
}
],
"processor": "<string>",
"payment_clearing_account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"redemption_account": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"dedicated_refunds": [
{
"external_id": "31415926535",
"account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"line_items": [
{
"amount": 123,
"external_id": "<string>",
"account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"prepayment_account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"tags": [
{
"key": "department",
"value": "sales",
"dimension_display_name": "Department",
"value_display_name": "Sales Department"
}
],
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>"
}
],
"completed_at": "2023-11-07T05:31:56Z",
"refund_processing_fee": 123,
"processor": "<string>",
"refunded_payment_fees": [
{
"account": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"fee_amount": 123,
"description": "<string>"
}
],
"tags": [
{
"key": "department",
"value": "sales",
"dimension_display_name": "Department",
"value_display_name": "Sales Department"
}
],
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>",
"payment_clearing_account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
],
"tags": [
{
"key": "department",
"value": "sales",
"dimension_display_name": "Department",
"value_display_name": "Sales Department"
}
],
"memo": "<string>",
"metadata": {},
"reference_number": "<string>"
}
]
'import requests
url = "https://sandbox.layerfi.com/v1/businesses/{businessId}/invoices/payments/bulk"
payload = [
{
"paid_at": "2023-11-07T05:31:56Z",
"amount": 123,
"invoice_payments": [
{
"invoice_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invoice_external_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"tags": [
{
"key": "department",
"value": "sales",
"dimension_display_name": "Department",
"value_display_name": "Sales Department"
}
],
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>"
}
],
"external_id": "<string>",
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customer_external_id": "<string>",
"fee": 123,
"additional_fees": [
{
"account": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"fee_amount": 123,
"type": "STANDARD",
"description": "<string>",
"is_passed_to_customer": True
}
],
"processor": "<string>",
"payment_clearing_account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"redemption_account": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"dedicated_refunds": [
{
"external_id": "31415926535",
"account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"line_items": [
{
"amount": 123,
"external_id": "<string>",
"account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"prepayment_account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"tags": [
{
"key": "department",
"value": "sales",
"dimension_display_name": "Department",
"value_display_name": "Sales Department"
}
],
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>"
}
],
"completed_at": "2023-11-07T05:31:56Z",
"refund_processing_fee": 123,
"processor": "<string>",
"refunded_payment_fees": [
{
"account": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"fee_amount": 123,
"description": "<string>"
}
],
"tags": [
{
"key": "department",
"value": "sales",
"dimension_display_name": "Department",
"value_display_name": "Sales Department"
}
],
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>",
"payment_clearing_account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
],
"tags": [
{
"key": "department",
"value": "sales",
"dimension_display_name": "Department",
"value_display_name": "Sales Department"
}
],
"memo": "<string>",
"metadata": {},
"reference_number": "<string>"
}
]
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
paid_at: '2023-11-07T05:31:56Z',
amount: 123,
invoice_payments: [
{
invoice_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
invoice_external_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
amount: 123,
tags: [
{
key: 'department',
value: 'sales',
dimension_display_name: 'Department',
value_display_name: 'Sales Department'
}
],
memo: '<string>',
metadata: {
custom_field: 'value',
'any valid json': 'below 1kb',
nested: {'meaning of life': 42, array: []}
},
reference_number: '<string>'
}
],
external_id: '<string>',
customer_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
customer_external_id: '<string>',
fee: 123,
additional_fees: [
{
account: {type: 'AccountId', id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
fee_amount: 123,
type: 'STANDARD',
description: '<string>',
is_passed_to_customer: true
}
],
processor: '<string>',
payment_clearing_account_identifier: {type: 'AccountId', id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
redemption_account: {type: 'AccountId', id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
dedicated_refunds: [
{
external_id: '31415926535',
account_identifier: {type: 'AccountId', id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
line_items: [
{
amount: 123,
external_id: '<string>',
account_identifier: {type: 'AccountId', id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
prepayment_account_identifier: {type: 'AccountId', id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
tags: [
{
key: 'department',
value: 'sales',
dimension_display_name: 'Department',
value_display_name: 'Sales Department'
}
],
memo: '<string>',
metadata: {
custom_field: 'value',
'any valid json': 'below 1kb',
nested: {'meaning of life': 42, array: []}
},
reference_number: '<string>'
}
],
completed_at: '2023-11-07T05:31:56Z',
refund_processing_fee: 123,
processor: '<string>',
refunded_payment_fees: [
{
account: {type: 'AccountId', id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
fee_amount: 123,
description: '<string>'
}
],
tags: [
{
key: 'department',
value: 'sales',
dimension_display_name: 'Department',
value_display_name: 'Sales Department'
}
],
memo: '<string>',
metadata: {
custom_field: 'value',
'any valid json': 'below 1kb',
nested: {'meaning of life': 42, array: []}
},
reference_number: '<string>',
payment_clearing_account_identifier: {type: 'AccountId', id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'}
}
],
tags: [
{
key: 'department',
value: 'sales',
dimension_display_name: 'Department',
value_display_name: 'Sales Department'
}
],
memo: '<string>',
metadata: {},
reference_number: '<string>'
}
])
};
fetch('https://sandbox.layerfi.com/v1/businesses/{businessId}/invoices/payments/bulk', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.layerfi.com/v1/businesses/{businessId}/invoices/payments/bulk",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'paid_at' => '2023-11-07T05:31:56Z',
'amount' => 123,
'invoice_payments' => [
[
'invoice_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'invoice_external_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'amount' => 123,
'tags' => [
[
'key' => 'department',
'value' => 'sales',
'dimension_display_name' => 'Department',
'value_display_name' => 'Sales Department'
]
],
'memo' => '<string>',
'metadata' => [
'custom_field' => 'value',
'any valid json' => 'below 1kb',
'nested' => [
'meaning of life' => 42,
'array' => [
]
]
],
'reference_number' => '<string>'
]
],
'external_id' => '<string>',
'customer_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'customer_external_id' => '<string>',
'fee' => 123,
'additional_fees' => [
[
'account' => [
'type' => 'AccountId',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'fee_amount' => 123,
'type' => 'STANDARD',
'description' => '<string>',
'is_passed_to_customer' => true
]
],
'processor' => '<string>',
'payment_clearing_account_identifier' => [
'type' => 'AccountId',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'redemption_account' => [
'type' => 'AccountId',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'dedicated_refunds' => [
[
'external_id' => '31415926535',
'account_identifier' => [
'type' => 'AccountId',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'line_items' => [
[
'amount' => 123,
'external_id' => '<string>',
'account_identifier' => [
'type' => 'AccountId',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'prepayment_account_identifier' => [
'type' => 'AccountId',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'tags' => [
[
'key' => 'department',
'value' => 'sales',
'dimension_display_name' => 'Department',
'value_display_name' => 'Sales Department'
]
],
'memo' => '<string>',
'metadata' => [
'custom_field' => 'value',
'any valid json' => 'below 1kb',
'nested' => [
'meaning of life' => 42,
'array' => [
]
]
],
'reference_number' => '<string>'
]
],
'completed_at' => '2023-11-07T05:31:56Z',
'refund_processing_fee' => 123,
'processor' => '<string>',
'refunded_payment_fees' => [
[
'account' => [
'type' => 'AccountId',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'fee_amount' => 123,
'description' => '<string>'
]
],
'tags' => [
[
'key' => 'department',
'value' => 'sales',
'dimension_display_name' => 'Department',
'value_display_name' => 'Sales Department'
]
],
'memo' => '<string>',
'metadata' => [
'custom_field' => 'value',
'any valid json' => 'below 1kb',
'nested' => [
'meaning of life' => 42,
'array' => [
]
]
],
'reference_number' => '<string>',
'payment_clearing_account_identifier' => [
'type' => 'AccountId',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]
],
'tags' => [
[
'key' => 'department',
'value' => 'sales',
'dimension_display_name' => 'Department',
'value_display_name' => 'Sales Department'
]
],
'memo' => '<string>',
'metadata' => [
],
'reference_number' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.layerfi.com/v1/businesses/{businessId}/invoices/payments/bulk"
payload := strings.NewReader("[\n {\n \"paid_at\": \"2023-11-07T05:31:56Z\",\n \"amount\": 123,\n \"invoice_payments\": [\n {\n \"invoice_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"invoice_external_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"amount\": 123,\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {\n \"custom_field\": \"value\",\n \"any valid json\": \"below 1kb\",\n \"nested\": {\n \"meaning of life\": 42,\n \"array\": []\n }\n },\n \"reference_number\": \"<string>\"\n }\n ],\n \"external_id\": \"<string>\",\n \"customer_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"customer_external_id\": \"<string>\",\n \"fee\": 123,\n \"additional_fees\": [\n {\n \"account\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"fee_amount\": 123,\n \"type\": \"STANDARD\",\n \"description\": \"<string>\",\n \"is_passed_to_customer\": true\n }\n ],\n \"processor\": \"<string>\",\n \"payment_clearing_account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"redemption_account\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"dedicated_refunds\": [\n {\n \"external_id\": \"31415926535\",\n \"account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"line_items\": [\n {\n \"amount\": 123,\n \"external_id\": \"<string>\",\n \"account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"prepayment_account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {\n \"custom_field\": \"value\",\n \"any valid json\": \"below 1kb\",\n \"nested\": {\n \"meaning of life\": 42,\n \"array\": []\n }\n },\n \"reference_number\": \"<string>\"\n }\n ],\n \"completed_at\": \"2023-11-07T05:31:56Z\",\n \"refund_processing_fee\": 123,\n \"processor\": \"<string>\",\n \"refunded_payment_fees\": [\n {\n \"account\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"fee_amount\": 123,\n \"description\": \"<string>\"\n }\n ],\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {\n \"custom_field\": \"value\",\n \"any valid json\": \"below 1kb\",\n \"nested\": {\n \"meaning of life\": 42,\n \"array\": []\n }\n },\n \"reference_number\": \"<string>\",\n \"payment_clearing_account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n }\n ],\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {},\n \"reference_number\": \"<string>\"\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.layerfi.com/v1/businesses/{businessId}/invoices/payments/bulk")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("[\n {\n \"paid_at\": \"2023-11-07T05:31:56Z\",\n \"amount\": 123,\n \"invoice_payments\": [\n {\n \"invoice_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"invoice_external_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"amount\": 123,\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {\n \"custom_field\": \"value\",\n \"any valid json\": \"below 1kb\",\n \"nested\": {\n \"meaning of life\": 42,\n \"array\": []\n }\n },\n \"reference_number\": \"<string>\"\n }\n ],\n \"external_id\": \"<string>\",\n \"customer_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"customer_external_id\": \"<string>\",\n \"fee\": 123,\n \"additional_fees\": [\n {\n \"account\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"fee_amount\": 123,\n \"type\": \"STANDARD\",\n \"description\": \"<string>\",\n \"is_passed_to_customer\": true\n }\n ],\n \"processor\": \"<string>\",\n \"payment_clearing_account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"redemption_account\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"dedicated_refunds\": [\n {\n \"external_id\": \"31415926535\",\n \"account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"line_items\": [\n {\n \"amount\": 123,\n \"external_id\": \"<string>\",\n \"account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"prepayment_account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {\n \"custom_field\": \"value\",\n \"any valid json\": \"below 1kb\",\n \"nested\": {\n \"meaning of life\": 42,\n \"array\": []\n }\n },\n \"reference_number\": \"<string>\"\n }\n ],\n \"completed_at\": \"2023-11-07T05:31:56Z\",\n \"refund_processing_fee\": 123,\n \"processor\": \"<string>\",\n \"refunded_payment_fees\": [\n {\n \"account\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"fee_amount\": 123,\n \"description\": \"<string>\"\n }\n ],\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {\n \"custom_field\": \"value\",\n \"any valid json\": \"below 1kb\",\n \"nested\": {\n \"meaning of life\": 42,\n \"array\": []\n }\n },\n \"reference_number\": \"<string>\",\n \"payment_clearing_account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n }\n ],\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {},\n \"reference_number\": \"<string>\"\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.layerfi.com/v1/businesses/{businessId}/invoices/payments/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"paid_at\": \"2023-11-07T05:31:56Z\",\n \"amount\": 123,\n \"invoice_payments\": [\n {\n \"invoice_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"invoice_external_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"amount\": 123,\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {\n \"custom_field\": \"value\",\n \"any valid json\": \"below 1kb\",\n \"nested\": {\n \"meaning of life\": 42,\n \"array\": []\n }\n },\n \"reference_number\": \"<string>\"\n }\n ],\n \"external_id\": \"<string>\",\n \"customer_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"customer_external_id\": \"<string>\",\n \"fee\": 123,\n \"additional_fees\": [\n {\n \"account\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"fee_amount\": 123,\n \"type\": \"STANDARD\",\n \"description\": \"<string>\",\n \"is_passed_to_customer\": true\n }\n ],\n \"processor\": \"<string>\",\n \"payment_clearing_account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"redemption_account\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"dedicated_refunds\": [\n {\n \"external_id\": \"31415926535\",\n \"account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"line_items\": [\n {\n \"amount\": 123,\n \"external_id\": \"<string>\",\n \"account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"prepayment_account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {\n \"custom_field\": \"value\",\n \"any valid json\": \"below 1kb\",\n \"nested\": {\n \"meaning of life\": 42,\n \"array\": []\n }\n },\n \"reference_number\": \"<string>\"\n }\n ],\n \"completed_at\": \"2023-11-07T05:31:56Z\",\n \"refund_processing_fee\": 123,\n \"processor\": \"<string>\",\n \"refunded_payment_fees\": [\n {\n \"account\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"fee_amount\": 123,\n \"description\": \"<string>\"\n }\n ],\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {\n \"custom_field\": \"value\",\n \"any valid json\": \"below 1kb\",\n \"nested\": {\n \"meaning of life\": 42,\n \"array\": []\n }\n },\n \"reference_number\": \"<string>\",\n \"payment_clearing_account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n }\n ],\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {},\n \"reference_number\": \"<string>\"\n }\n]"
response = http.request(request)
puts response.read_body{
"data": [
{
"type": "Invoice_Payment",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"external_id": "payment-1",
"customer": {
"type": "CustomerData",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"external_id": "31415926535",
"individual_name": "<string>",
"company_name": "<string>",
"email": "<string>",
"mobile_phone": "<string>",
"office_phone": "<string>",
"address_string": "<string>",
"memo": "<string>",
"status": "ACTIVE",
"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"
}
]
},
"at": "2023-11-07T05:31:56Z",
"fee": 123,
"prepayment_account": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"payment_clearing_account": {
"type": "Single_Chart_Account",
"id": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"name": "Current Assets",
"account_number": "4000",
"stable_name": {
"type": "StableName",
"stable_name": "CURRENT_ASSETS"
},
"account_type": {
"display_name": "Asset"
},
"account_subtype": {
"display_name": "Current Assets"
}
},
"additional_fees": [
{
"fee_amount": 123,
"description": "<string>",
"account": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"is_passed_to_customer": true
}
],
"amount": 123,
"processor": "STRIPE",
"imported_at": "2023-11-07T05:31:56Z",
"allocations": [
{
"invoice_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"payment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"amount_net_of_refunds": 123,
"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>"
}
],
"refund_allocations": [],
"payouts": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"external_id": "payout-1234",
"business_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"paid_out_amount": 123,
"fee": 123,
"processor": "STRIPE",
"payment_clearing_account": {
"type": "Single_Chart_Account",
"id": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"name": "Current Assets",
"account_number": "4000",
"stable_name": {
"type": "StableName",
"stable_name": "CURRENT_ASSETS"
},
"account_type": {
"display_name": "Asset"
},
"account_subtype": {
"display_name": "Current Assets"
}
},
"imported_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"match": {
"id": "6b0a3734-f4ef-4fb0-9fc1-3f59b0c1cf99",
"match_type": "PAYOUT",
"bank_transaction": {
"type": "Bank_Transaction_Data",
"id": "a703c8d6-cfe8-453d-a275-b92eacc6fc6e",
"business_id": "738ec216-e8e5-48f2-b7f2-cdc89c96b3d4",
"source": "STRIPE",
"source_transaction_id": "trxn_1sdOeLQiFAKE2LQBkcvrJw95f",
"source_account_id": "738ec216-e154-48f2-1111-cdc89c96b3d4",
"imported_at": "2024-03-19T22:09:53.290591Z",
"date": "2024-03-06T06:06:40Z",
"direction": "CREDIT",
"amount": 87459,
"counterparty_name": null,
"description": "Payout (po_1OqnTHISISFAKEiTVBkCiyAERwm).",
"account_name": "Layer Banking",
"categorization_status": "MATCHED"
},
"details": {
"type": "Payout_Match",
"id": "d224508b-b05e-41da-89de-0fbd8a573507",
"amount": 87459,
"date": "2024-03-06T00:00:00Z",
"description": "Payout from STRIPE.",
"adjustment": null
}
},
"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>"
}
],
"transaction_tags": [],
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>"
}
]
}{
"description": "<string>",
"meta": {}
}{
"description": "<string>",
"meta": {}
}Bulk create invoice payments
Creates multiple invoice payments in a single request. Each payment in the array uses the same parameters as the single payment endpoint. If a payment includes an external_id that matches an existing payment, the existing payment will be updated instead of creating a new one (upsert behavior).
curl --request POST \
--url https://sandbox.layerfi.com/v1/businesses/{businessId}/invoices/payments/bulk \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"paid_at": "2023-11-07T05:31:56Z",
"amount": 123,
"invoice_payments": [
{
"invoice_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invoice_external_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"tags": [
{
"key": "department",
"value": "sales",
"dimension_display_name": "Department",
"value_display_name": "Sales Department"
}
],
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>"
}
],
"external_id": "<string>",
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customer_external_id": "<string>",
"fee": 123,
"additional_fees": [
{
"account": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"fee_amount": 123,
"type": "STANDARD",
"description": "<string>",
"is_passed_to_customer": true
}
],
"processor": "<string>",
"payment_clearing_account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"redemption_account": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"dedicated_refunds": [
{
"external_id": "31415926535",
"account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"line_items": [
{
"amount": 123,
"external_id": "<string>",
"account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"prepayment_account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"tags": [
{
"key": "department",
"value": "sales",
"dimension_display_name": "Department",
"value_display_name": "Sales Department"
}
],
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>"
}
],
"completed_at": "2023-11-07T05:31:56Z",
"refund_processing_fee": 123,
"processor": "<string>",
"refunded_payment_fees": [
{
"account": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"fee_amount": 123,
"description": "<string>"
}
],
"tags": [
{
"key": "department",
"value": "sales",
"dimension_display_name": "Department",
"value_display_name": "Sales Department"
}
],
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>",
"payment_clearing_account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
],
"tags": [
{
"key": "department",
"value": "sales",
"dimension_display_name": "Department",
"value_display_name": "Sales Department"
}
],
"memo": "<string>",
"metadata": {},
"reference_number": "<string>"
}
]
'import requests
url = "https://sandbox.layerfi.com/v1/businesses/{businessId}/invoices/payments/bulk"
payload = [
{
"paid_at": "2023-11-07T05:31:56Z",
"amount": 123,
"invoice_payments": [
{
"invoice_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invoice_external_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"tags": [
{
"key": "department",
"value": "sales",
"dimension_display_name": "Department",
"value_display_name": "Sales Department"
}
],
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>"
}
],
"external_id": "<string>",
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customer_external_id": "<string>",
"fee": 123,
"additional_fees": [
{
"account": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"fee_amount": 123,
"type": "STANDARD",
"description": "<string>",
"is_passed_to_customer": True
}
],
"processor": "<string>",
"payment_clearing_account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"redemption_account": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"dedicated_refunds": [
{
"external_id": "31415926535",
"account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"line_items": [
{
"amount": 123,
"external_id": "<string>",
"account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"prepayment_account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"tags": [
{
"key": "department",
"value": "sales",
"dimension_display_name": "Department",
"value_display_name": "Sales Department"
}
],
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>"
}
],
"completed_at": "2023-11-07T05:31:56Z",
"refund_processing_fee": 123,
"processor": "<string>",
"refunded_payment_fees": [
{
"account": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"fee_amount": 123,
"description": "<string>"
}
],
"tags": [
{
"key": "department",
"value": "sales",
"dimension_display_name": "Department",
"value_display_name": "Sales Department"
}
],
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>",
"payment_clearing_account_identifier": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
],
"tags": [
{
"key": "department",
"value": "sales",
"dimension_display_name": "Department",
"value_display_name": "Sales Department"
}
],
"memo": "<string>",
"metadata": {},
"reference_number": "<string>"
}
]
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
paid_at: '2023-11-07T05:31:56Z',
amount: 123,
invoice_payments: [
{
invoice_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
invoice_external_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
amount: 123,
tags: [
{
key: 'department',
value: 'sales',
dimension_display_name: 'Department',
value_display_name: 'Sales Department'
}
],
memo: '<string>',
metadata: {
custom_field: 'value',
'any valid json': 'below 1kb',
nested: {'meaning of life': 42, array: []}
},
reference_number: '<string>'
}
],
external_id: '<string>',
customer_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
customer_external_id: '<string>',
fee: 123,
additional_fees: [
{
account: {type: 'AccountId', id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
fee_amount: 123,
type: 'STANDARD',
description: '<string>',
is_passed_to_customer: true
}
],
processor: '<string>',
payment_clearing_account_identifier: {type: 'AccountId', id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
redemption_account: {type: 'AccountId', id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
dedicated_refunds: [
{
external_id: '31415926535',
account_identifier: {type: 'AccountId', id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
line_items: [
{
amount: 123,
external_id: '<string>',
account_identifier: {type: 'AccountId', id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
prepayment_account_identifier: {type: 'AccountId', id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
tags: [
{
key: 'department',
value: 'sales',
dimension_display_name: 'Department',
value_display_name: 'Sales Department'
}
],
memo: '<string>',
metadata: {
custom_field: 'value',
'any valid json': 'below 1kb',
nested: {'meaning of life': 42, array: []}
},
reference_number: '<string>'
}
],
completed_at: '2023-11-07T05:31:56Z',
refund_processing_fee: 123,
processor: '<string>',
refunded_payment_fees: [
{
account: {type: 'AccountId', id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
fee_amount: 123,
description: '<string>'
}
],
tags: [
{
key: 'department',
value: 'sales',
dimension_display_name: 'Department',
value_display_name: 'Sales Department'
}
],
memo: '<string>',
metadata: {
custom_field: 'value',
'any valid json': 'below 1kb',
nested: {'meaning of life': 42, array: []}
},
reference_number: '<string>',
payment_clearing_account_identifier: {type: 'AccountId', id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'}
}
],
tags: [
{
key: 'department',
value: 'sales',
dimension_display_name: 'Department',
value_display_name: 'Sales Department'
}
],
memo: '<string>',
metadata: {},
reference_number: '<string>'
}
])
};
fetch('https://sandbox.layerfi.com/v1/businesses/{businessId}/invoices/payments/bulk', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.layerfi.com/v1/businesses/{businessId}/invoices/payments/bulk",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'paid_at' => '2023-11-07T05:31:56Z',
'amount' => 123,
'invoice_payments' => [
[
'invoice_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'invoice_external_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'amount' => 123,
'tags' => [
[
'key' => 'department',
'value' => 'sales',
'dimension_display_name' => 'Department',
'value_display_name' => 'Sales Department'
]
],
'memo' => '<string>',
'metadata' => [
'custom_field' => 'value',
'any valid json' => 'below 1kb',
'nested' => [
'meaning of life' => 42,
'array' => [
]
]
],
'reference_number' => '<string>'
]
],
'external_id' => '<string>',
'customer_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'customer_external_id' => '<string>',
'fee' => 123,
'additional_fees' => [
[
'account' => [
'type' => 'AccountId',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'fee_amount' => 123,
'type' => 'STANDARD',
'description' => '<string>',
'is_passed_to_customer' => true
]
],
'processor' => '<string>',
'payment_clearing_account_identifier' => [
'type' => 'AccountId',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'redemption_account' => [
'type' => 'AccountId',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'dedicated_refunds' => [
[
'external_id' => '31415926535',
'account_identifier' => [
'type' => 'AccountId',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'line_items' => [
[
'amount' => 123,
'external_id' => '<string>',
'account_identifier' => [
'type' => 'AccountId',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'prepayment_account_identifier' => [
'type' => 'AccountId',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'tags' => [
[
'key' => 'department',
'value' => 'sales',
'dimension_display_name' => 'Department',
'value_display_name' => 'Sales Department'
]
],
'memo' => '<string>',
'metadata' => [
'custom_field' => 'value',
'any valid json' => 'below 1kb',
'nested' => [
'meaning of life' => 42,
'array' => [
]
]
],
'reference_number' => '<string>'
]
],
'completed_at' => '2023-11-07T05:31:56Z',
'refund_processing_fee' => 123,
'processor' => '<string>',
'refunded_payment_fees' => [
[
'account' => [
'type' => 'AccountId',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'fee_amount' => 123,
'description' => '<string>'
]
],
'tags' => [
[
'key' => 'department',
'value' => 'sales',
'dimension_display_name' => 'Department',
'value_display_name' => 'Sales Department'
]
],
'memo' => '<string>',
'metadata' => [
'custom_field' => 'value',
'any valid json' => 'below 1kb',
'nested' => [
'meaning of life' => 42,
'array' => [
]
]
],
'reference_number' => '<string>',
'payment_clearing_account_identifier' => [
'type' => 'AccountId',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]
],
'tags' => [
[
'key' => 'department',
'value' => 'sales',
'dimension_display_name' => 'Department',
'value_display_name' => 'Sales Department'
]
],
'memo' => '<string>',
'metadata' => [
],
'reference_number' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.layerfi.com/v1/businesses/{businessId}/invoices/payments/bulk"
payload := strings.NewReader("[\n {\n \"paid_at\": \"2023-11-07T05:31:56Z\",\n \"amount\": 123,\n \"invoice_payments\": [\n {\n \"invoice_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"invoice_external_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"amount\": 123,\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {\n \"custom_field\": \"value\",\n \"any valid json\": \"below 1kb\",\n \"nested\": {\n \"meaning of life\": 42,\n \"array\": []\n }\n },\n \"reference_number\": \"<string>\"\n }\n ],\n \"external_id\": \"<string>\",\n \"customer_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"customer_external_id\": \"<string>\",\n \"fee\": 123,\n \"additional_fees\": [\n {\n \"account\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"fee_amount\": 123,\n \"type\": \"STANDARD\",\n \"description\": \"<string>\",\n \"is_passed_to_customer\": true\n }\n ],\n \"processor\": \"<string>\",\n \"payment_clearing_account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"redemption_account\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"dedicated_refunds\": [\n {\n \"external_id\": \"31415926535\",\n \"account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"line_items\": [\n {\n \"amount\": 123,\n \"external_id\": \"<string>\",\n \"account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"prepayment_account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {\n \"custom_field\": \"value\",\n \"any valid json\": \"below 1kb\",\n \"nested\": {\n \"meaning of life\": 42,\n \"array\": []\n }\n },\n \"reference_number\": \"<string>\"\n }\n ],\n \"completed_at\": \"2023-11-07T05:31:56Z\",\n \"refund_processing_fee\": 123,\n \"processor\": \"<string>\",\n \"refunded_payment_fees\": [\n {\n \"account\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"fee_amount\": 123,\n \"description\": \"<string>\"\n }\n ],\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {\n \"custom_field\": \"value\",\n \"any valid json\": \"below 1kb\",\n \"nested\": {\n \"meaning of life\": 42,\n \"array\": []\n }\n },\n \"reference_number\": \"<string>\",\n \"payment_clearing_account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n }\n ],\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {},\n \"reference_number\": \"<string>\"\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.layerfi.com/v1/businesses/{businessId}/invoices/payments/bulk")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("[\n {\n \"paid_at\": \"2023-11-07T05:31:56Z\",\n \"amount\": 123,\n \"invoice_payments\": [\n {\n \"invoice_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"invoice_external_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"amount\": 123,\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {\n \"custom_field\": \"value\",\n \"any valid json\": \"below 1kb\",\n \"nested\": {\n \"meaning of life\": 42,\n \"array\": []\n }\n },\n \"reference_number\": \"<string>\"\n }\n ],\n \"external_id\": \"<string>\",\n \"customer_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"customer_external_id\": \"<string>\",\n \"fee\": 123,\n \"additional_fees\": [\n {\n \"account\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"fee_amount\": 123,\n \"type\": \"STANDARD\",\n \"description\": \"<string>\",\n \"is_passed_to_customer\": true\n }\n ],\n \"processor\": \"<string>\",\n \"payment_clearing_account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"redemption_account\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"dedicated_refunds\": [\n {\n \"external_id\": \"31415926535\",\n \"account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"line_items\": [\n {\n \"amount\": 123,\n \"external_id\": \"<string>\",\n \"account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"prepayment_account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {\n \"custom_field\": \"value\",\n \"any valid json\": \"below 1kb\",\n \"nested\": {\n \"meaning of life\": 42,\n \"array\": []\n }\n },\n \"reference_number\": \"<string>\"\n }\n ],\n \"completed_at\": \"2023-11-07T05:31:56Z\",\n \"refund_processing_fee\": 123,\n \"processor\": \"<string>\",\n \"refunded_payment_fees\": [\n {\n \"account\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"fee_amount\": 123,\n \"description\": \"<string>\"\n }\n ],\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {\n \"custom_field\": \"value\",\n \"any valid json\": \"below 1kb\",\n \"nested\": {\n \"meaning of life\": 42,\n \"array\": []\n }\n },\n \"reference_number\": \"<string>\",\n \"payment_clearing_account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n }\n ],\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {},\n \"reference_number\": \"<string>\"\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.layerfi.com/v1/businesses/{businessId}/invoices/payments/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"paid_at\": \"2023-11-07T05:31:56Z\",\n \"amount\": 123,\n \"invoice_payments\": [\n {\n \"invoice_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"invoice_external_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"amount\": 123,\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {\n \"custom_field\": \"value\",\n \"any valid json\": \"below 1kb\",\n \"nested\": {\n \"meaning of life\": 42,\n \"array\": []\n }\n },\n \"reference_number\": \"<string>\"\n }\n ],\n \"external_id\": \"<string>\",\n \"customer_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"customer_external_id\": \"<string>\",\n \"fee\": 123,\n \"additional_fees\": [\n {\n \"account\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"fee_amount\": 123,\n \"type\": \"STANDARD\",\n \"description\": \"<string>\",\n \"is_passed_to_customer\": true\n }\n ],\n \"processor\": \"<string>\",\n \"payment_clearing_account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"redemption_account\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"dedicated_refunds\": [\n {\n \"external_id\": \"31415926535\",\n \"account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"line_items\": [\n {\n \"amount\": 123,\n \"external_id\": \"<string>\",\n \"account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"prepayment_account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {\n \"custom_field\": \"value\",\n \"any valid json\": \"below 1kb\",\n \"nested\": {\n \"meaning of life\": 42,\n \"array\": []\n }\n },\n \"reference_number\": \"<string>\"\n }\n ],\n \"completed_at\": \"2023-11-07T05:31:56Z\",\n \"refund_processing_fee\": 123,\n \"processor\": \"<string>\",\n \"refunded_payment_fees\": [\n {\n \"account\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"fee_amount\": 123,\n \"description\": \"<string>\"\n }\n ],\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {\n \"custom_field\": \"value\",\n \"any valid json\": \"below 1kb\",\n \"nested\": {\n \"meaning of life\": 42,\n \"array\": []\n }\n },\n \"reference_number\": \"<string>\",\n \"payment_clearing_account_identifier\": {\n \"type\": \"AccountId\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n }\n ],\n \"tags\": [\n {\n \"key\": \"department\",\n \"value\": \"sales\",\n \"dimension_display_name\": \"Department\",\n \"value_display_name\": \"Sales Department\"\n }\n ],\n \"memo\": \"<string>\",\n \"metadata\": {},\n \"reference_number\": \"<string>\"\n }\n]"
response = http.request(request)
puts response.read_body{
"data": [
{
"type": "Invoice_Payment",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"external_id": "payment-1",
"customer": {
"type": "CustomerData",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"external_id": "31415926535",
"individual_name": "<string>",
"company_name": "<string>",
"email": "<string>",
"mobile_phone": "<string>",
"office_phone": "<string>",
"address_string": "<string>",
"memo": "<string>",
"status": "ACTIVE",
"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"
}
]
},
"at": "2023-11-07T05:31:56Z",
"fee": 123,
"prepayment_account": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"payment_clearing_account": {
"type": "Single_Chart_Account",
"id": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"name": "Current Assets",
"account_number": "4000",
"stable_name": {
"type": "StableName",
"stable_name": "CURRENT_ASSETS"
},
"account_type": {
"display_name": "Asset"
},
"account_subtype": {
"display_name": "Current Assets"
}
},
"additional_fees": [
{
"fee_amount": 123,
"description": "<string>",
"account": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"is_passed_to_customer": true
}
],
"amount": 123,
"processor": "STRIPE",
"imported_at": "2023-11-07T05:31:56Z",
"allocations": [
{
"invoice_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"payment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"amount_net_of_refunds": 123,
"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>"
}
],
"refund_allocations": [],
"payouts": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"external_id": "payout-1234",
"business_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"paid_out_amount": 123,
"fee": 123,
"processor": "STRIPE",
"payment_clearing_account": {
"type": "Single_Chart_Account",
"id": {
"type": "AccountId",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"name": "Current Assets",
"account_number": "4000",
"stable_name": {
"type": "StableName",
"stable_name": "CURRENT_ASSETS"
},
"account_type": {
"display_name": "Asset"
},
"account_subtype": {
"display_name": "Current Assets"
}
},
"imported_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"match": {
"id": "6b0a3734-f4ef-4fb0-9fc1-3f59b0c1cf99",
"match_type": "PAYOUT",
"bank_transaction": {
"type": "Bank_Transaction_Data",
"id": "a703c8d6-cfe8-453d-a275-b92eacc6fc6e",
"business_id": "738ec216-e8e5-48f2-b7f2-cdc89c96b3d4",
"source": "STRIPE",
"source_transaction_id": "trxn_1sdOeLQiFAKE2LQBkcvrJw95f",
"source_account_id": "738ec216-e154-48f2-1111-cdc89c96b3d4",
"imported_at": "2024-03-19T22:09:53.290591Z",
"date": "2024-03-06T06:06:40Z",
"direction": "CREDIT",
"amount": 87459,
"counterparty_name": null,
"description": "Payout (po_1OqnTHISISFAKEiTVBkCiyAERwm).",
"account_name": "Layer Banking",
"categorization_status": "MATCHED"
},
"details": {
"type": "Payout_Match",
"id": "d224508b-b05e-41da-89de-0fbd8a573507",
"amount": 87459,
"date": "2024-03-06T00:00:00Z",
"description": "Payout from STRIPE.",
"adjustment": null
}
},
"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>"
}
],
"transaction_tags": [],
"memo": "<string>",
"metadata": {
"custom_field": "value",
"any valid json": "below 1kb",
"nested": {
"meaning of life": 42,
"array": []
}
},
"reference_number": "<string>"
}
]
}{
"description": "<string>",
"meta": {}
}{
"description": "<string>",
"meta": {}
}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 to create payments for.
Body
Array of payments to create. Each payment follows the same schema as the single payment creation endpoint.
The timestamp when the payment was made.
Payment method.
CASH, CHECK, CREDIT_CARD, ACH, CREDIT_BALANCE, OTHER Payment amount in cents.
Each element in this array is either an InvoicePaymentAllocation (allocating to an invoice) or an InvoicePaymentAllocationToLedgerAccount (allocating directly to a ledger account). The type is determined by the fields present: if account is provided, it is treated as a ledger account allocation; otherwise, it is treated as an invoice allocation.
Allocates a portion of the payment to a specific invoice.
- Invoice Payment Allocation
- Ledger Account Allocation
Show child attributes
Show child attributes
External identifier for the payment, used for idempotency.
Layer ID of the customer to associate with the payment. Lets you tag a payment with a customer even before it is allocated to any invoice (for example, a standalone deposit). When the payment has invoice allocations, the customer must match the customer on every allocated invoice, otherwise the request is rejected with a 400.
External ID of the customer to associate with the payment. Can be specified in place of customer_id.
Fee amount in cents.
Additional fees associated with the payment.
Parameters for creating an additional fee on an invoice payment. The fee type is optional and defaults to STANDARD; use LOAN_REPAYMENT to record a loan repayment as part of the payment.
- Standard fee
- Loan repayment fee
Show child attributes
Show child attributes
Payment processor name.
The ledger account to use for the payment (overrides the default determined by the payment method).
- Account ID
- Account Stable Name
Show child attributes
Show child attributes
Account to use for credit balance redemptions. Only applicable when method is CREDIT_BALANCE.
- Account ID
- Account Stable Name
Show child attributes
Show child attributes
Dedicated refunds to associate with this invoice payment.
Show child attributes
Show child attributes
Tags to apply to the payment.
Show child attributes
Show child attributes
Memo for any text you would like to associate with the payment.
Arbitrary custom metadata in JSON format.
Any (typically user-visible) identifier you would like to associate with the payment.
Response
Payments created or updated successfully. Returns the created/updated payment objects in the same order as the request.
Show child attributes
Show child attributes