Skip to main content

Third Party Card Payment Processors

Chargebacks#

Introduction#

info

This section is only relevant for Unit clients who offer their customers the ability to collect card payments using a third party payment processor (e.g. Stripe, Checkout, Adyen).

When collecting card payments in exchange for goods or services, the seller may occasionally face a Chargeback. Chargebacks are instructions from the payment processor to the seller, to returns the funds for a certain purchase, after the payer has submitted a successful dispute, and they must be honored.

If the funds collected are held at a bank account the processor has access to, they will pull the chargeback funds directly from that account. However, if the funds are held at another financial institution (e.g. on the Unit platform), the funds may need to be taken from the seller account, and returned back to the processor (or netted out from the next payout to the merchant).

In order to pull the funds from the seller's account, you should use the Chargeback resource. Creating a Chargeback initiates a transfer of funds from the merchant's account to a counterparty account of your choice, from which they may be sent to the payment processor and eventually to the end customer who raised the dispute. Chargeback creation should always succeed, even if the funds are not available in the seller's account, and may result in a negative balance. A Chargeback Transaction will be generated in both the seller's account and the counterparty account.

note

The ability to create Chargebacks is not enabled by default. To enable it, please contact Unit support and provide the details of your counterparty account.

Create Chargeback#

Creates a chargeback from an Account to a Counterparty.

VerbPOST
Urlhttps://api.s.api.unit.sh/chargebacks
Required Scopechargebacks-write
Timeout (Seconds)5

Attributes#

NameTypeDescription
amountintegerThe amount (in cents) to charge the account and credit the counterparty.
descriptionstringDescription of the chargeback (maximum of 50 characters).
tagsobjectOptional. See Tags.
idempotencyKeystringOptional. See Idempotency.

Relationships#

NameTypeDescription
accountJSON:API RelationshipThe Deposit Account the funds will be debited from.
counterpartyAccountJSON:API RelationshipThe account that will receive the funds.
curl -X POST 'https://api.s.unit.sh/chargebacks' \--header 'Content-Type: application/vnd.api+json' \--header 'Authorization: Bearer $Token' \--data-raw '{  "data":{    "type":"chargeback",    "attributes": {      "amount": 50,      "description": "Chargeback for dispute #1337",      "tags": {        "internalId": "abc1345"      }    },    "relationships": {      "account": {        "data": {          "type": "account",          "id": "10002"        }      },      "counterpartyAccount": {        "data": {          "type": "account",          "id": "10004"        }      }    }  }}'

Response#

Response is a JSON:API document.

201 CREATED#
{  "data":{    "type":"chargeback",    "attributes": {      "amount": 50,      "description": "Chargeback for dispute #1337",      "tags": {        "internalId": "abc1345"      }    },    "relationships": {      "account": {        "data": {          "type": "account",          "id": "10002"        }      },      "counterpartyAccount": {        "data": {          "type": "account",          "id": "10004"        }      }    }  }}

Get by Id#

Get a chargeback by id.

VerbGET
Urlhttps://api.s.unit.sh/chargeback/{id}
Required Scopechargebacks
Timeout (Seconds)5
NameTypeDefaultDescription
includestring(empty)Optional. A comma-separated list of related resources to include in the response. Related resources include: customer, account, transaction. See Getting Related Resources
curl GET 'https://api.s.unit.sh/chargebacks/2' \--header 'Authorization: Bearer $Token

Response#

Response is a JSON:API document.

200 OK#
FieldTypeDescription
dataChargebackChargeback resource.
includedArray of DepositAccount or Customer or TransactionArray of resources requested by the include query parameter.

List#

List chargeback resources. Filtering, paging and sorting can be applied.

VerbGET
Urlhttps://api.s.unit.sh/chargebacks
Required Scopechargebacks
Timeout (Seconds)5

Query Parameters#

NameTypeDefaultDescription
page[limit]integer100Maximum number of resources that will be returned. Maximum is 1000 resources. See Pagination.
page[offset]integer0Number of resources to skip. See Pagination.
filter[accountId]string(empty)Optional. Filters the results by the specified account id.
filter[customerId]string(empty)Optional. Filters the results by the specified customer id.
filter[tags]Tags (JSON)(empty)Optional. Filter Chargebacks by Tags.
filter[since]RFC3339 Date string(empty)Optional. Filters the Chargebacks that occurred after the specified date. e.g. 2020-01-13T16:01:19.346Z
filter[until]RFC3339 Date string(empty)Optional. Filters the Chargebacks that occurred before the specified date. e.g. 2020-01-02T20:06:23.486Z
sortstringsort=-createdAtOptional. Leave empty or provide sort=createdAt for ascending order. Provide sort=-createdAt (leading minus sign) for descending order.
includestring(empty)Optional. A comma-separated list of related resources to include in the response. Related resources include: customer, account, transaction. See Getting Related Resources
curl -X GET 'https://api.s.unit.sh/chargebacks?page[limit]=20&page[offset]=10' \-H "Authorization: Bearer $Token"

Response#

Response is a JSON:API document.

200 OK#
FieldTypeDescription
dataArray of ChargebackArray of chargeback resources.
includedArray of DepositAccount or Customer or TransactionArray of resources requested by the include query parameter.
{  "data": [    {      "type": "chargeback",      "id": "1",      "attributes": {        "createdAt": "2022-03-24T17:36:47.638Z",        "amount": 15000,        "description": "Chargeback for payment #112",        "tags": {          "internalId": "abc14545"        }      },      "relationships": {        "account": {          "data": {            "type": "account",            "id": "10046"          }        },        "customer": {          "data": {            "type": "customer",            "id": "10707"          }        },        "counterpartyAccount": {          "data": {            "type": "account",            "id": "10305"          }        },        "transaction": {          "data": {            "type": "transaction",            "id": "10024"          }        }      }    },    {      "type": "chargeback",      "id": "2",      "attributes": {        "createdAt": "2022-03-24T17:36:47.638Z",        "amount": 5000,        "description": "Chargeback for dispute #1337",        "tags": {          "internalId": "abc1345"        }      },      "relationships": {        "account": {          "data": {            "type": "account",            "id": "10006"          }        },        "customer": {          "data": {            "type": "customer",            "id": "10007"          }        },        "counterpartyAccount": {          "data": {            "type": "account",            "id": "10005"          }        },        "transaction": {          "data": {            "type": "transaction",            "id": "10025"          }        }      }    }  ]}