Split funds from a transaction

Split funds from a transaction into different bank accounts or paypoints

Applies to:Developers

With Payabli’s split funding functionality, you can use split instructions in the transaction request to distribute the funds from a single transaction to different bank accounts for a paypoint, or to different paypoints set up for split funding.

Setup

Contact the Payabli team to use this feature. The team will work with you to understand your business needs and design the best configuration.

Usage

To split funds, send split instructions in the paymentDetails object of a transaction request.

Split funding is available in these endpoints:

Get required values

Split instructions support recipientEntryPoint, accountId, or both. This means that you can route funds to other paypoints, or to separate bank accounts of a single paypoint. This means that you can route funds to multiple accounts in other eligible paypoints, or to separate bank accounts of a the paypoint that’s processing the transaction.

1

Retrieve recipientEntryPoint values

Find the entrypoint value for the paypoints you want to send funds to. See Entrypoint Overview for instructions.

2

Retrieve accountId values

You can retrieve accountId values for all a Paypoint’s accounts by sending a GET request to the /Paypoint endpoint. They’re returned in objects in the Credentials array.

In this example, there are two accounts for ACH (187-782 and 187-783) and two accounts for card (187-798 and 187-799)

1{
2 "isSuccess": true,
3 "responseText": "Success",
4 "responseCode": 1,
5 "": {
6 "Paypoint": {
7 "IdPaypoint": 187,
8 "DbaName": "The Board Haus",
9 "LegalName": "Board Haus LLC.",
10 "Address1": "1801 Main Avenue",
11 "Address2": "",
12 "City": "Durango",
13 "Zip": "81301",
14 "ServiceData": null,
15 // Example truncated
16 "Credentials": [
17 {
18 "Service": "ach",
19 "Mode": 1,
20 "Minticket": 0.0,
21 "Maxticket": 100000.0,
22 "CfeeFix": 0.0,
23 "CfeeFloat": 0.0,
24 "CfeeMin": 0.0,
25 "CfeeMax": 0.0,
26 "ReferenceId": 348,
27 "AccountId": "187-782"
28 },
29 {
30 "Service": "ach",
31 "Mode": 0,
32 "Minticket": 0.0,
33 "Maxticket": 100000.0,
34 "CfeeFix": 0.0,
35 "CfeeFloat": 0.0,
36 "CfeeMin": 0.0,
37 "CfeeMax": 0.0,
38 "ReferenceId": 348,
39 "AccountId": "187-783"
40 },
41 {
42 "Service": "card",
43 "Mode": 0,
44 "Minticket": 0.0,
45 "Maxticket": 100000.0,
46 "CfeeFix": 0.0,
47 "CfeeFloat": 0.0,
48 "CfeeMin": 0.0,
49 "CfeeMax": 0.0,
50 "ReferenceId": 358,
51 "AccountId": "187-798"
52 },
53 {
54 "Service": "card",
55 "Mode": 1,
56 "Minticket": 0.0,
57 "Maxticket": 100000.0,
58 "CfeeFix": 0.0,
59 "CfeeFloat": 0.0,
60 "CfeeMin": 0.0,
61 "CfeeMax": 0.0,
62 "ReferenceId": 358,
63 "AccountId": "187-799"
64 },
65
66 // Example truncated
67 ]
68 },
69 },
70}

Split instructions

Send split instructions in the splitFunding array inside the paymentDetails object in the request. See Example request for help.

The amounts in the split instructions must add up to match the transaction net total exactly, or the request will fail.

splitFunding
array

An array of splitFundingContent objects.

splitFundingContent
object

The split funding instruction’s content.

recipientEntryPoint
string

Entrypoint ID for a recipient entrypoint.

accountId
string

Account ID of the account that the split funds should be deposited in.

amount
number

Double. The amount of the split.

description
string

A description or note to describe the split. Payabli strongly recommends that you use this field on every refund split. This helps identify the purpose of the refund split for reconciliation by the merchant.

Example request

Split a GetPaid transaction
$curl --request POST \
> --url 'https://api-sandbox.payabli.com/api/MoneyIn/getpaid?forceCustomerCreation=false' \
> --header 'accept: application/json' \
> --header 'content-type: application/*+json' \
> --header 'requestToken: API TOKEN' \
> --data
>{
> "entryPoint": "41035afaa7",
> "accountId": "187-234",
> "paymentMethod": {
> "method": "card",
> "cardnumber": "4111111111111111",
> "cardexp": "12/25",
> "cardcvv": "999",
> "cardzip": "85284",
> "cardHolder": "Lisandra Olonets"
> },
>"paymentDetails": {
> "totalAmount": 123.45,
> "serviceFee": 23.45,
> "splitFunding": [
> {
> "recipientEntryPoint": "41035afaa7",
> "accountId": "187-300",
> "description": "Monthly maintenance fee",
> "amount": 50.45
> },
> {
> "recipientEntryPoint": "3005cdba0",
> "accountId": "230-391",
> "description": "Payment toward special assessment",
> "amount": 30.33
> },
> {
> "recipientEntryPoint": "995d16ccba",
> "accountId": "298-239",
> "description": "Security deposit",
> "amount": 19.22
> }
> ]
>},
> "customerData": {
> "customerId": "4440"
> }
>}

Example response

The success response is the standard transaction success response.

Success response
1{
2 "responseText": "Success",
3 "isSuccess": true,
4 "pageIdentifier": null,
5 "responseData": {
6 "authCode": "TAS726",
7 "referenceId": "245-d6af5e23b5db43fbbb2bea04614d2735",
8 "resultCode": 1,
9 "resultText": "Approved",
10 "avsResponseText": null,
11 "cvvResponseText": null,
12 "customerId": 4440,
13 "methodReferenceId": null
14 }
15}