Daily Fees and Gross Funding
Billing Resource allows partners to differ paying Fees and those automatically being deducted from Disbursements by having a certain set of defined Fees by creating a statement that can be played after a defined period of time.
Billing resource can only be enabled by the API at this time. There is no UI management for Statements. The payment and management of these must be handled by the partner respectively.
Creating a Billing Resource for daily funding
Create a
/billings
resource. This will determine what fees are collected in a statement for a period of time.
Entity: Entity that will be collecting the fee at the end of the billing period.
forEntity: Entity that is paying the fee(s) for the billing period. This field is only required iforg
ordivision
is set tonull
.
REQUEST:
POST /billings
{
"login": "t1_log_5e052c20b6f1ef38770a410",
"entity": "t1_ent_5e052c20b7dcdfe6bda8a3a",
"forentity": "t1_ent_5e9735c503a9888a85fc8e2",
"schedule": "days",
"start": "20200409",
"currency": "USD",
"inactive": "0",
"frozen": "0"
}
RESPONSE:
"response": {
"data": [
{
"id": "t1_bil_5e9797110472c0e9ca747ab",
"created": "2020-04-15 19:21:53.0183",
"modified": "2020-04-15 19:21:53.0183",
"creator": "t1_log_5d498794824b30f9bfc1db2",
"modifier": "t1_log_5d498794824b30f9bfc1db2",
"login": "t1_log_5e052c20b6f1ef38770a410",
"entity": "t1_ent_5e052c20b7dcdfe6bda8a3a",
"org": null,
"division": null,
"partition": null,
"description": null,
"schedule": "days",
"scheduleFactor": 1,
"start": "20200415",
"finish": null,
"collection": "entity",
"collectionFactor": "days",
"collectionOffset": 1,
"collectionIncludeCurrent": "0",
"currency": "USD",
"inactive": "0",
"frozen": "0",
"forentity": "t1_ent_5e9735c503a9888a85fc8e2"
}
],
The entity defined in the /billings
resource needs to be the same charging entity that is in the fee in order for that fee to be included in a statement
.
2. Associate a /billingEvents
resource to the /billings
resource. This defines what will be collected in a statement. A /billingEvents
can be setup for fees, chargebacks, returns, and/or profitShares. If the resource is for one specific item then the eventSchedule
must be set otherwise the /billingEvents
will apply for all items (i.e - All fees opposed to just a specific fee).
By default a /billingEvents
resource will have deductFromBalance
set to 0/False. Meaning entries will not be created for fees meaning the Available Balance on the entity will not be impacted.
Fees will not be charged or deducted from a disbursement. Disbursements will be only Sales - Returns.
Partners can set deductFromBalance
to 1/True if they want entries created on the fees so that the merchant always has enough balance in their FBO to cover the fees.
Will disburse everything in the FBO minus enough to cover the fees so money will be withheld on the merchant account.
A /billingEvents resource can be embedded within the creation of the /billings resource by submitting as an array.
A /billingModifer
is an optional configuration for a /billings
resource and changes who owns the /billings
resource giving them control to change the total amount of the billing and who will pay.
3. When a fee defined within the entity /billingEvents
occurs a statementEntry is created.
entity: Is the entity that triggered the statementEntry.
onEntity: Is the entity that will be charged for the statementEntry
forEntity: Is the entity that created the billing resource.
REQUEST
GET /statementEntries
SEARCH billing[in]=t1_bil_5e9797110472c0e9ca747ab
RESPONSE:
{
"id": "t1_ste_5e98e0f3f3e2852734759b3",
"created": "2020-04-16 18:49:24.0049",
"modified": "2020-04-16 18:49:24.0049",
"creator": "000000000000001",
"modifier": "000000000000001",
"onentity": "t1_ent_5e9735c503a9888a85fc8e2",
"billing": "t1_bil_5e9797110472c0e9ca747ab",
"statement": null,
"fee": "t1_fee_5e5d2bd84065a8abce7bc8d",
"profitShare": null,
"event": 6,
"eventId": "t1_txn_5e98e0f3923498772e410f1",
"description": "AUTH fee schedule",
"amount": 806.5,
"deductedFromBalance": 0,
"entity": "t1_ent_5e9735c503a9888a85fc8e2",
"forentity": "t1_ent_5e052c20b7dcdfe6bda8a3a"
},
{
"id": "t1_ste_5e98e0f33dbc6eafab9b8c7",
"created": "2020-04-16 18:49:23.2593",
"modified": "2020-04-16 18:49:23.2593",
"creator": "000000000000001",
"modifier": "000000000000001",
"onentity": "t1_ent_5e9735c503a9888a85fc8e2",
"billing": "t1_bil_5e9797110472c0e9ca747ab",
"statement": null,
"fee": "t1_fee_5e5d2bd84065a8abce7bc8d",
"profitShare": null,
"event": 6,
"eventId": "t1_txn_5e98e0f2d50760d5b2bca01",
"description": "AUTH fee schedule",
"amount": 1026.525,
"deductedFromBalance": 0,
"entity": "t1_ent_5e9735c503a9888a85fc8e2",
"forentity": "t1_ent_5e052c20b7dcdfe6bda8a3a"
},
Statements are only generated at the end of the billing cycle, statementEntries
are created immediately when a fee part of a /billingEvents
is created.
4. Depending on the Start of the /billing resource and the schedule the statement is generated.
"data": [
{
"id": "t1_stm_5e97de96d0ac00c3fe0cf2c",
"created": "2020-04-16 00:27:02.8583",
"modified": "2020-04-16 00:27:02.9048",
"creator": "000000000000001",
"modifier": "000000000000001",
"billing": "t1_bil_5e9797110472c0e9ca747ab",
"status": "pending",
"totalPaid": 0,
"total": 5419,
"currency": "USD",
"forentity": "t1_ent_5e052c20b7dcdfe6bda8a3a",
"entity": "t1_ent_5e9735c503a9888a85fc8e2",
"start": 20200415,
"finish": 20200415
}
Paying for a Statement
There are two ways that a statement can be paid for once generated in the API.
A Txn can be submitted to pay the statement total. This requires the partner to have a merchant account to accept payment for the statement.
A Payout schedule can be created on the billing resource. This will automatically debit the entity for the statement total based on the schedule defined in the payout resource.
Submit a Txn
{
"merchant": "t1_mer_5e97363eb964ba05ed8358a",
"statement": "t1_stm_5e97de96d0ac00c3fe0cf2c",
"type": "7",
"origin": "2",
"payment": {
"method": "8",
"number": "xxxxxx3325",
"routing": "021000021"
},
"first": "firstname",
"expiration": "1122",
"total": "5419"
}
"data": [
{
"id": "t1_stm_5e97de96d0ac00c3fe0cf2c",
"created": "2020-04-16 00:27:02.8583",
"modified": "2020-04-16 18:55:57.8464",
"creator": "000000000000001",
"modifier": "t1_log_5d498794824b30f9bfc1db2",
"billing": "t1_bil_5e9797110472c0e9ca747ab",
"status": "processing",
"totalPaid": 0,
"total": 5419.925,
"currency": "USD",
"forentity": "t1_ent_5e052c20b7dcdfe6bda8a3a",
"entity": "t1_ent_5e9735c503a9888a85fc8e2",
"start": 20200415,
"finish": 20200415
}
Questions
Question | Answer |
---|---|
What is the behavior if a | If multiple billings of the same payer/payee apply for the same event, the order of preference will be: |
What is the behavior if a merchant is part of two groups that each have a | The earliest created billingEvent will prevail when creating statementEntries. See above as well. |
What are the valid enumerations for | In order to be able to set |
When a transaction is submitted for a statement does the status change to | A statement status will change from |
If a second payment is submitted for a statement that has been marked | It appears that a second txn can be submitted to a statement that is in a Need to validate behavior for a |
Should a statement have sub-pennies or should this be rounded up or down? | |
How do I setup a billingEvents resource for a Chargeback and a Chargeback Fee? | When an event is set to “chargebacks” then the chargeback transaction will be billed daily. To setup the fee then a second event for “fees” would need to be setup or a specific fee ID can be added in the |
What time do | Statements generate around 1AM ET. |