curl --request GET \
--url https://api.meetcampfire.com/coa/api/transaction/mergeimport requests
url = "https://api.meetcampfire.com/coa/api/transaction/merge"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.meetcampfire.com/coa/api/transaction/merge', 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://api.meetcampfire.com/coa/api/transaction/merge",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.meetcampfire.com/coa/api/transaction/merge"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.meetcampfire.com/coa/api/transaction/merge")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meetcampfire.com/coa/api/transaction/merge")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"id": 123,
"is_deleted": false,
"deleted_at": "2023-11-07T05:31:56Z",
"transactions": [
{
"id": 123,
"is_deleted": false,
"deleted_at": "2023-11-07T05:31:56Z",
"entity_name": "<string>",
"entity_currency": "<string>",
"account_name": "<string>",
"account_number": "<string>",
"vendor_name": "<string>",
"vendor_id": "<string>",
"vendor_campfire_id": "<string>",
"department_name": "<string>",
"department_code": "<string>",
"parent_department_name": "<string>",
"parent_department": 123,
"tags": [
{
"id": 123,
"group_name": "<string>",
"parent_name": "<string>",
"is_deleted": false,
"deleted_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"last_modified_at": "2023-11-07T05:31:56Z",
"customer": 123,
"parent": 123,
"is_active": true,
"group": 123
}
],
"journal": 123,
"journal_order": "<string>",
"journal_memo": "<string>",
"journal_type": "<string>",
"intercompany_journal": 123,
"created_automatically": true,
"journal_attachments": [
{
"id": 123,
"customer": 123,
"created_at": "2023-11-07T05:31:56Z",
"created_by": 123,
"created_by_name": "<string>",
"created_by_email": "<string>",
"last_modified_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"url": "<string>",
"s3_path": "<string>",
"app": "<string>",
"model": "<string>",
"is_deleted": false,
"deleted_at": "2023-11-07T05:31:56Z",
"s3_content_type": "<string>",
"s3_content_length": 1073741823,
"object_id": 1073741823
}
],
"journal_type_name": "<string>",
"invoice": "<string>",
"bill": "<string>",
"date_month": "<string>",
"date_year": "<string>",
"balance_after_transaction": 123,
"bank_account": "<string>",
"bank_account_name": "<string>",
"last_modified_by_name": "<string>",
"account_type": "<string>",
"account_subtype": "<string>",
"parent_account_name": "<string>",
"files": "<string>",
"invoice_id": 123,
"invoice_number": "<string>",
"bill_id": 123,
"bill_number": "<string>",
"file_names": "<string>",
"has_matches": true,
"has_ai": true,
"has_rules": true,
"has_merges": true,
"has_fixed_asset_rule_matches": true,
"has_suggested_rule": true,
"suggested_rule_account_name": "<string>",
"primary_action_type": "<string>",
"suggested_account": 123,
"suggested_account_name": "<string>",
"suggested_account_number": "<string>",
"amount": 0,
"amount_native": 0,
"amount_book": 0,
"amortization_schedule": [
{
"journal_entry_order": "<string>",
"date": "2023-12-25",
"amount": 0,
"customer": 123,
"id": 123,
"posted": true,
"transaction": 123,
"bill_line": 123,
"debit_memo_line": 123,
"journal_entry": 123
}
],
"linked_amortizations": [
{}
],
"created_fixed_assets": [
{}
],
"reconciliation_report": "<string>",
"opposing_account_name": "<string>",
"opposing_account_number": "<string>",
"transaction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"balance_before_transaction": 0,
"created_at": "2023-11-07T05:31:56Z",
"producer": "<string>",
"warehouse_row_key": "<string>",
"last_modified_at": "2023-11-07T05:31:56Z",
"source_group": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customer": 123,
"entity": 123,
"counterparty_entity": 123,
"cost_allocation": 123,
"last_sync_run": 123,
"account": 123,
"debit_amount": 0,
"credit_amount": 0,
"debit_amount_book": 0,
"credit_amount_book": 0,
"debit_amount_native": 0,
"credit_amount_native": 0,
"currency": "<string>",
"exchange_rate": 0,
"exchange_rate_book": 0,
"posted_at": "2023-12-25",
"merchant_name": "<string>",
"bank_description": "<string>",
"tag_ids": [
0
],
"tag_group_ids": [
0
],
"note": "<string>",
"receipt_url": "<string>",
"external_id": "<string>",
"needs_review": true,
"draft_matches": null,
"last_lam_prediction_attempt": "2023-11-07T05:31:56Z",
"source_entity": 123,
"parent_bank_transaction": 123,
"vendor": 123,
"department": 123,
"last_modified_by": 123
}
],
"attachments": [
{
"id": 123,
"customer": 123,
"created_at": "2023-11-07T05:31:56Z",
"created_by": 123,
"created_by_name": "<string>",
"created_by_email": "<string>",
"last_modified_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"url": "<string>",
"s3_path": "<string>",
"app": "<string>",
"model": "<string>",
"is_deleted": false,
"deleted_at": "2023-11-07T05:31:56Z",
"s3_content_type": "<string>",
"s3_content_length": 1073741823,
"object_id": 1073741823
}
],
"invoice": 123,
"reversal_of_order": "<string>",
"reversals": [
{}
],
"entity_name": "<string>",
"entity_currency": "<string>",
"created_by": 123,
"created_by_name": "<string>",
"created_by_source": "<string>",
"credit_memos": [
{}
],
"debit_memos": [
{}
],
"ramp_use_sandbox": true,
"navan_region": "<string>",
"float_bill_id": "<string>",
"linked_source_documents": [
{}
],
"search_vector": "<string>",
"search_text": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"last_modified_at": "2023-11-07T05:31:56Z",
"customer": 123,
"last_draft": 123,
"order": "<string>",
"close_task_id": "<string>",
"type": "bill",
"journal_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"memo": "<string>",
"currency": "<string>",
"exchange_rate": 0,
"exchange_rate_book": 0,
"use_average_rate": true,
"created_automatically": true,
"date": "2023-12-25",
"ref_number": "<string>",
"source": "<string>",
"source_id": "<string>",
"recurrent_journal_entry": 123,
"entity": 123,
"reversal_of": 123,
"intercompany_journal": 123,
"source_file": 123,
"chat": 123
}"<unknown>"Preview Chart Transaction Merge
Preview the result of merging two chart transactions.
This endpoint shows what the merged journal entry will look like, allowing you to verify the merge before committing. The preview includes the journal that will be retained and the transactions that will remain after the merge.
Parameters:
transaction_ids(query, required): Comma-separated list of exactly two transaction IDs
Returns: A journal entry object containing the merged result with all remaining transactions.
Requirements:
- Must provide exactly two transaction IDs
- Transactions must be from different journals
- Transactions must have matching amounts
- Transactions must belong to the same entity
curl --request GET \
--url https://api.meetcampfire.com/coa/api/transaction/mergeimport requests
url = "https://api.meetcampfire.com/coa/api/transaction/merge"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.meetcampfire.com/coa/api/transaction/merge', 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://api.meetcampfire.com/coa/api/transaction/merge",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.meetcampfire.com/coa/api/transaction/merge"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.meetcampfire.com/coa/api/transaction/merge")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meetcampfire.com/coa/api/transaction/merge")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"id": 123,
"is_deleted": false,
"deleted_at": "2023-11-07T05:31:56Z",
"transactions": [
{
"id": 123,
"is_deleted": false,
"deleted_at": "2023-11-07T05:31:56Z",
"entity_name": "<string>",
"entity_currency": "<string>",
"account_name": "<string>",
"account_number": "<string>",
"vendor_name": "<string>",
"vendor_id": "<string>",
"vendor_campfire_id": "<string>",
"department_name": "<string>",
"department_code": "<string>",
"parent_department_name": "<string>",
"parent_department": 123,
"tags": [
{
"id": 123,
"group_name": "<string>",
"parent_name": "<string>",
"is_deleted": false,
"deleted_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"last_modified_at": "2023-11-07T05:31:56Z",
"customer": 123,
"parent": 123,
"is_active": true,
"group": 123
}
],
"journal": 123,
"journal_order": "<string>",
"journal_memo": "<string>",
"journal_type": "<string>",
"intercompany_journal": 123,
"created_automatically": true,
"journal_attachments": [
{
"id": 123,
"customer": 123,
"created_at": "2023-11-07T05:31:56Z",
"created_by": 123,
"created_by_name": "<string>",
"created_by_email": "<string>",
"last_modified_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"url": "<string>",
"s3_path": "<string>",
"app": "<string>",
"model": "<string>",
"is_deleted": false,
"deleted_at": "2023-11-07T05:31:56Z",
"s3_content_type": "<string>",
"s3_content_length": 1073741823,
"object_id": 1073741823
}
],
"journal_type_name": "<string>",
"invoice": "<string>",
"bill": "<string>",
"date_month": "<string>",
"date_year": "<string>",
"balance_after_transaction": 123,
"bank_account": "<string>",
"bank_account_name": "<string>",
"last_modified_by_name": "<string>",
"account_type": "<string>",
"account_subtype": "<string>",
"parent_account_name": "<string>",
"files": "<string>",
"invoice_id": 123,
"invoice_number": "<string>",
"bill_id": 123,
"bill_number": "<string>",
"file_names": "<string>",
"has_matches": true,
"has_ai": true,
"has_rules": true,
"has_merges": true,
"has_fixed_asset_rule_matches": true,
"has_suggested_rule": true,
"suggested_rule_account_name": "<string>",
"primary_action_type": "<string>",
"suggested_account": 123,
"suggested_account_name": "<string>",
"suggested_account_number": "<string>",
"amount": 0,
"amount_native": 0,
"amount_book": 0,
"amortization_schedule": [
{
"journal_entry_order": "<string>",
"date": "2023-12-25",
"amount": 0,
"customer": 123,
"id": 123,
"posted": true,
"transaction": 123,
"bill_line": 123,
"debit_memo_line": 123,
"journal_entry": 123
}
],
"linked_amortizations": [
{}
],
"created_fixed_assets": [
{}
],
"reconciliation_report": "<string>",
"opposing_account_name": "<string>",
"opposing_account_number": "<string>",
"transaction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"balance_before_transaction": 0,
"created_at": "2023-11-07T05:31:56Z",
"producer": "<string>",
"warehouse_row_key": "<string>",
"last_modified_at": "2023-11-07T05:31:56Z",
"source_group": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customer": 123,
"entity": 123,
"counterparty_entity": 123,
"cost_allocation": 123,
"last_sync_run": 123,
"account": 123,
"debit_amount": 0,
"credit_amount": 0,
"debit_amount_book": 0,
"credit_amount_book": 0,
"debit_amount_native": 0,
"credit_amount_native": 0,
"currency": "<string>",
"exchange_rate": 0,
"exchange_rate_book": 0,
"posted_at": "2023-12-25",
"merchant_name": "<string>",
"bank_description": "<string>",
"tag_ids": [
0
],
"tag_group_ids": [
0
],
"note": "<string>",
"receipt_url": "<string>",
"external_id": "<string>",
"needs_review": true,
"draft_matches": null,
"last_lam_prediction_attempt": "2023-11-07T05:31:56Z",
"source_entity": 123,
"parent_bank_transaction": 123,
"vendor": 123,
"department": 123,
"last_modified_by": 123
}
],
"attachments": [
{
"id": 123,
"customer": 123,
"created_at": "2023-11-07T05:31:56Z",
"created_by": 123,
"created_by_name": "<string>",
"created_by_email": "<string>",
"last_modified_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"url": "<string>",
"s3_path": "<string>",
"app": "<string>",
"model": "<string>",
"is_deleted": false,
"deleted_at": "2023-11-07T05:31:56Z",
"s3_content_type": "<string>",
"s3_content_length": 1073741823,
"object_id": 1073741823
}
],
"invoice": 123,
"reversal_of_order": "<string>",
"reversals": [
{}
],
"entity_name": "<string>",
"entity_currency": "<string>",
"created_by": 123,
"created_by_name": "<string>",
"created_by_source": "<string>",
"credit_memos": [
{}
],
"debit_memos": [
{}
],
"ramp_use_sandbox": true,
"navan_region": "<string>",
"float_bill_id": "<string>",
"linked_source_documents": [
{}
],
"search_vector": "<string>",
"search_text": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"last_modified_at": "2023-11-07T05:31:56Z",
"customer": 123,
"last_draft": 123,
"order": "<string>",
"close_task_id": "<string>",
"type": "bill",
"journal_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"memo": "<string>",
"currency": "<string>",
"exchange_rate": 0,
"exchange_rate_book": 0,
"use_average_rate": true,
"created_automatically": true,
"date": "2023-12-25",
"ref_number": "<string>",
"source": "<string>",
"source_id": "<string>",
"recurrent_journal_entry": 123,
"entity": 123,
"reversal_of": 123,
"intercompany_journal": 123,
"source_file": 123,
"chat": 123
}"<unknown>"Response
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Derived user ID of the journal entry creator. Check created_by_source before explaining provenance.
Derived name of the journal entry creator. Check created_by_source before explaining provenance.
Provenance for created_by and created_by_name: 'draft_queue_created_by', 'chart_transaction_last_modified_by_fallback', or null.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Navan data region (US/EU) for a Navan-sourced journal entry, else None.
Mirrors ramp_use_sandbox: the frontend builds the "Open in Navan" deep
link from source_id and uses this to pick the web-app host
(US -> app.navan.com, EU -> app-fra.navan.com). Navan records carry no FK to
their connection, so the region is resolved per customer and memoized to
avoid an N+1 lookup across a transaction list.
Float id of the bill paid by a Float bill-payment journal entry, else None.
Payment journal entries store the Float payment id as source_id, which has
no page of its own in Float's web app — the frontend deep-links "View on Float"
to the paid bill instead.
Documents this journal is posted from; deleting it deletes them too.
Show child attributes
Show child attributes
bill- Billbill_payment- Bill Paymentbill_prepayment- Bill Prepaymentcheck- Checkcheck_cleared- Check Clearedcredit_card- Credit Cardcredit_memo- Credit Memocredit_memo_payment- Credit Memo Paymentdebit_memo- Debit Memodebit_memo_payment- Debit Memo Paymentdeposit- Depositexpense- Expenseinvoice- Invoiceintercompany_journal- Intercompany Journalinvoice_payment- Invoice Paymentjournal_entry- Journal Entrylease- Leasepayment- Paymentreceive_payment- Receive Paymentrefund- Refundrevenue_recognition- Revenue Recognitionsales_receipt- Sales Receipttransfer- Transfervendor_credit- Vendor Creditvoid_bill- Void Billvoid_bill_payment- Void Bill Paymentvoid_invoice_payment- Void Invoice Paymentvoid_credit_memo- Void Credit Memovoid_credit_memo_payment- Void Credit Memo Paymentvoid_debit_memo_payment- Void Debit Memo Paymentvoid_invoice- Void Invoiceelimination- Eliminationrevaluation- Revaluationasset_reclassification- Asset Reclassificationstatistical_allocation- Statistical Allocationallocation_true_up- Allocation True-Upasset_impairment- Asset Impairment
bill, bill_payment, bill_prepayment, check, check_cleared, credit_card, credit_memo, credit_memo_payment, debit_memo, debit_memo_payment, deposit, expense, invoice, intercompany_journal, invoice_payment, journal_entry, lease, payment, receive_payment, refund, revenue_recognition, sales_receipt, transfer, vendor_credit, void_bill, void_bill_payment, void_invoice_payment, void_credit_memo, void_credit_memo_payment, void_debit_memo_payment, void_invoice, elimination, revaluation, asset_reclassification, statistical_allocation, allocation_true_up, asset_impairment 3-100000000000000 < x < 100000000000000-100000000000000 < x < 100000000000000100250