Split Transaction

split_transaction

Use this format for adjusting existing transactions and allocating the money to different campaigns or funds

posthttps://app.kindful.com/admin/oauth2/api/v1/imports

COPY
{
  "data_format": "split_transaction",
  "action_type":"create",
  "match_by": {
    "transaction": "id"
  },
  "data_type":"json",
  "data": [
    {
      "id": "17950412:1",
      "transaction_id":"17950412",
      "unit_amount_in_cents":"5000",
      "quantity": "1",
      "campaign": "Split Test 1",
      "campaign_id": "splittest1",
      "fund": "General1",
      "fund_id": "General1"
    },
    {
      "id": "17950412:2",
      "transaction_id": "17950412",
      "unit_amount_in_cents": "623",
      "quantity": "1",
      "campaign": "Split Test 2",
      "campaign_id": "splittest2",
      "fund": "General2",
      "fund_id": "General2"
    }
  ]
}

Body Params

data_format
string
action_type
string
data_type
string

The id field is an (API) application-specific field and is used to prevent duplicates when multiple applications are connected to the same Organization account.

For more information about creating and updating records, please see Intro to Record Matching

A transaction must exist in Kindful from a prior import or linking

If a transaction_id isn't found then the row will be dropped. Imports occur in the order they are received so it is fine to submit the contact_with_transaction and then the split_transaction before the first has completed.



Splitting A Transaction Created Externally - Using external_id

Split transaction default is to split a transaction using external_id. An example of this can be found below as the primary example.

If external_id is "null" on the transaction you cannot use API defaults and will need to use a match_by as described in the next paragraph.



Splitting A Transaction Created by Kindful - Using transaction_id

You can also split a transaction that has been created by Kindful and does not contain an external ID (in this case the transaction will contain a null status for external_id). In order to do so, you will need to use a match_by pointing towards transaction_id. You can find an example of this below.



ID for split transactions

Kindful stores split transactions in the same table as transactions as well as the link between external_id and transaction_id. If your application stores splits in separate tables be sure that the id's don't overlap.

This can be accomplished by specifying the id as ":".



ID overlap

If the id does overlap with an existing transaction it will be dropped and a notification added to GET /imports/ API call.



Quantities and unit amount must add up to transaction total

If transaction is currently for $100.00 (10000) the total combination of split transactions must add up.



Example:
2000 with quantity of 2
3000 with quantity of 2

columns
required
notes
example
type

id

No

Split transaction id

123ABC see note above.
234DEF:123ABC

String

transaction_id

No

234DEF

unit_amount_in_cents

Yes

this is in cents so 500 = $5.00

500

Must be > 0

quantity

No

integer that defaults to 1

2

campaign

No

event or category of transaction. Defaults to Partner Name

https://support.kindful.com/hc/en-us/articles/217204108

Gala, General, Mail Appeal

String

campaign_id

No

campaign identifier to minimize duplicates

String

parent_campaign

No

parent_campaign is only needed if you organize your campaigns in a hierarchy (for example, you organize your campaigns into categories). If parent_campaign is provided, it will be the parent of the provided campaign.

Events, Galas

String

parent_campaign_id

No

campaign identifier to minimize duplicates

String

fund

Yes (if unknown, pass 'General')

larger group or fund of where the money ends up
https://support.kindful.com/hc/en-us/articles/217204108

General, Restricted, Africa

String

fund_id

Yes (if unknown, send blank or do not specify field)

fund identifier to minimize duplicates

deleted_at

No

Soft deletes the split transaction

integer for unix timestamp (jan 1 1970) or string in UTC of ISO8601 or RFC3339 format

12345

Time