Skip to main content

APIs

Create Book Repayment

Creates a repayment for a credit account.

Book Repayment creation requests support Idempotency, ensuring that performing multiple identical requests will have the same result as a single request.

VerbPOST
URLhttps://api.s.unit.sh/repayments
Required Scoperepayments-write or payments-write
Data Typerepayment
Timeout (Seconds)5

Attributes

NameTypeDescription
descriptionstringRepayment description (maximum of 80 characters), this will show up on statement of the counterparty.
amountIntegerThe amount (cents) to repay.
transactionSummaryOverridestringIf this field is populated, its contents will be returned as the bookTransaction's summary field (maximum of 100 characters).
tags OptionalobjectOptional. See Tags.
idempotencyKey OptionalstringOptional. See Idempotency.

Relationships

NameTypeDescription
accountJSON:API RelationshipThe Deposit Account the repayment will be deposited into.
creditAccountJSON:API RelationshipThe Credit Account that the repayment is made against.
counterpartyAccountJSON:API RelationshipThe Deposit Account the repayment funds are taken from.
Example Request:
curl -X POST 'https://api.s.unit.sh/repayments'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "bookRepayment",
"attributes": {
"amount": 20,
"description": "test",
"transactionSummaryOverride": "override",
"idempotencyKey": "3a1a33be-4e12-4603-9ed0-820922389fb8"
},
"relationships": {
"account": {
"data": {
"type": "depositAccount",
"id": "10006"
}
},
"creditAccount": {
"data": {
"type": "creditAccount",
"id": "10007"
}
},
"counterpartyAccount": {
"data": {
"type": "account",
"id": "10008"
}
}
}
}
}'

Response

Response is a JSON:API document.

201 Created

NameTypeDescription
dataBookRepaymentThe requested resource after the operation was completed.
Example Response:
{
"data": {
"type": "bookRepayment",
"id": "4",
"attributes": {
"createdAt": "2022-09-19T09:10:09.206Z",
"updatedAt": "2022-09-19T09:10:09.206Z",
"amount": 20,
"status": "Sent"
},
"relationships": {
"counterparty": {
"data": {
"type": "account",
"id": "10008"
}
},
"account": {
"data": {
"type": "account",
"id": "10006"
}
},
"creditAccount": {
"data": {
"type": "creditAccount",
"id": "10007"
}
},
"customer": {
"data": {
"type": "customer",
"id": "10002"
}
},
"org": {
"data": {
"type": "org",
"id": "2"
}
},
"payment": {
"data": {
"type": "payment",
"id": "5"
}
}
}
}
}

Create ACH Repayment

Creates a repayment for a credit account. Both repayment.created and payment.created events are raised when the call is successful.

ACH Repayment creation requests support Idempotency, ensuring that performing multiple identical requests will have the same effect as performing a single request.

VerbPOST
URLhttps://api.s.unit.sh/repayments
Required Scoperepayments-write or payments-write
Data Typerepayment
Timeout (Seconds)5

Attributes

NameTypeDescription
descriptionstringPayment description (maximum of 10 characters), also known as Company Entry Description, this will show up on statement of the counterparty.
amountInteger (Cents)The amount to repay.
addenda OptionalstringOptional, additional payment description (maximum of 80 characters), not all institutions present that.
tags OptionalobjectOptional. See Tags.
sameDay OptionalbooleanOptional, default is false. See Same Day ACH.
secCode OptionalstringOptional. See Use a custom SEC Code.
clearingDaysOverride OptionalnumberOptional. See Dynamic Clearing Period.
idempotencyKey OptionalstringOptional. See Idempotency.

Relationships

NameTypeDescription
accountJSON:API RelationshipThe Deposit Account the repayment will be deposited into.
creditAccountJSON:API RelationshipThe Credit Account that the repayment is made against.
counterpartyJSON:API RelationshipThe ACH Counterparty the repayment will come from.
Example Request:
curl -X POST 'https://api.s.unit.sh/repayments'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "achRepayment",
"attributes": {
"amount": 200,
"description": "test"
},
"relationships": {
"account": {
"data": {
"type": "depositAccount",
"id": "10076"
}
},
"creditAccount": {
"data": {
"type": "creditAccount",
"id": "10082"
}
},
"counterparty": {
"data": {
"type": "counterparty",
"id": "3"
}
}
}
}
}'

Response

Response is a JSON:API document.

201 Created

NameTypeDescription
dataAchRepaymentThe requested resource after the operation was completed.
Example Response:
{
"data": {
"type": "achRepayment",
"id": "1",
"attributes": {
"createdAt": "2022-09-19T09:02:13.343Z",
"updatedAt": "2022-09-19T09:02:13.343Z",
"amount": 200,
"status": "Pending"
},
"relationships": {
"org": {
"data": {
"type": "org",
"id": "1"
}
},
"account": {
"data": {
"type": "account",
"id": "10003"
}
},
"counterparty": {
"data": {
"type": "counterparty",
"id": "1"
}
},
"creditAccount": {
"data": {
"type": "creditAccount",
"id": "10007"
}
},
"customer": {
"data": {
"type": "customer",
"id": "10002"
}
},
"payment": {
"data": {
"type": "payment",
"id": "1"
}
},
"recurringRepayment": {
"data": {
"type": "recurringRepayment",
"id": "4"
}
}
}
}
}

Create Capital Partner ACH Repayment

Creates a repayment for a credit account. Both repayment.created and payment.created events are raised when the call is successful.

Capital Partner Repayment creation requests support Idempotency, ensuring that performing multiple identical requests will have the same effect as performing a single request.

VerbPOST
URLhttps://api.s.unit.sh/repayments
Required Scoperepayments-write or payments-write
Data Typerepayment
Timeout (Seconds)5

Attributes

NameTypeDescription
descriptionstringPayment description (maximum of 10 characters), also known as Company Entry Description, this will show up on statement of the counterparty.
amountInteger (Cents)The amount to repay.
addenda OptionalstringOptional, additional payment description (maximum of 80 characters), not all institutions present that.
tags OptionalobjectOptional. See Tags.
sameDay OptionalbooleanOptional, default is false. See Same Day ACH.
secCode OptionalstringOptional. See Use a custom SEC Code.
idempotencyKey OptionalstringOptional. See Idempotency.

Relationships

NameTypeDescription
creditAccountJSON:API RelationshipThe Credit Account that the repayment is made against.
counterpartyJSON:API RelationshipThe ACH Counterparty the repayment will come from.
Example Request:
curl -X POST 'https://api.s.unit.sh/repayments'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "capitalPartnerAchRepayment",
"attributes": {
"amount": 200,
"description": "test"
},
"relationships": {
"creditAccount": {
"data": {
"type": "creditAccount",
"id": "10082"
}
},
"counterparty": {
"data": {
"type": "counterparty",
"id": "3"
}
}
}
}
}'

Response

Response is a JSON:API document.

201 Created

NameTypeDescription
dataCapitalPartnerAchRepaymentThe requested resource after the operation was completed.
Example Response:
{
"data": {
"type": "capitalPartnerAchRepayment",
"id": "1",
"attributes": {
"createdAt": "2022-09-19T09:02:13.343Z",
"updatedAt": "2022-09-19T09:02:13.343Z",
"amount": 200,
"status": "Pending"
},
"relationships": {
"org": {
"data": {
"type": "org",
"id": "1"
}
},
"counterparty": {
"data": {
"type": "counterparty",
"id": "1"
}
},
"creditAccount": {
"data": {
"type": "creditAccount",
"id": "10007"
}
},
"payment": {
"data": {
"type": "payment",
"id": "1"
}
}
}
}
}

Create Capital Partner Book Repayment

Creates a repayment for a credit account.

Book Repayment creation requests support Idempotency, ensuring that performing multiple identical requests will have the same result as a single request.

VerbPOST
URLhttps://api.s.unit.sh/repayments
Required Scoperepayments-write or payments-write
Data Typerepayment
Timeout (Seconds)5

Attributes

NameTypeDescription
descriptionstringRepayment description (maximum of 80 characters), this will show up on statement of the counterparty.
amountIntegerThe amount (cents) to repay.
transactionSummaryOverridestringIf this field is populated, its contents will be returned as the bookTransaction's summary field (maximum of 100 characters).
tags OptionalobjectOptional. See Tags.
idempotencyKey OptionalstringOptional. See Idempotency.

Relationships

NameTypeDescription
creditAccountJSON:API RelationshipThe Credit Account that the repayment is made against.
counterpartyAccountJSON:API RelationshipThe Deposit Account the repayment funds are taken from.
Example Request:
curl -X POST 'https://api.s.unit.sh/repayments'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "capitalPartnerBookRepayment",
"attributes": {
"amount": 20,
"description": "test",
"transactionSummaryOverride": "override",
"idempotencyKey": "3a1a33be-4e12-4603-9ed0-820922389fb8"
},
"relationships": {
"creditAccount": {
"data": {
"type": "creditAccount",
"id": "10007"
}
},
"counterpartyAccount": {
"data": {
"type": "account",
"id": "10008"
}
}
}
}
}'

Response

Response is a JSON:API document.

201 Created

NameTypeDescription
dataCapitalPartnerBookRepaymentThe requested resource after the operation was completed.
Example Response:
{
"data": {
"type": "capitalPartnerBookRepayment",
"id": "4",
"attributes": {
"createdAt": "2022-09-19T09:10:09.206Z",
"updatedAt": "2022-09-19T09:10:09.206Z",
"amount": 20,
"status": "Sent"
},
"relationships": {
"org": {
"data": {
"type": "org",
"id": "1"
}
},
"counterparty": {
"data": {
"type": "account",
"id": "10008"
}
},
"creditAccount": {
"data": {
"type": "creditAccount",
"id": "10007"
}
},
"customer": {
"data": {
"type": "customer",
"id": "10002"
}
},
"payment": {
"data": {
"type": "payment",
"id": "5"
}
},
"recurringRepayment": {
"data": {
"type": "recurringRepayment",
"id": "4"
}
}
}
}
}

Create External Repayment

Creates an external repayment for a credit account. This is used to record repayments made from sources outside the Unit platform.

External Repayment creation requests support Idempotency, ensuring that performing multiple identical requests will have the same result as a single request.

VerbPOST
URLhttps://api.s.unit.sh/repayments
Required Scoperepayments-write
Data TypeexternalRepayment
Timeout (Seconds)5

Attributes

NameTypeDescription
descriptionstringRepayment description (maximum of 80 characters).
amountIntegerThe amount (cents) to repay.
tags OptionalobjectOptional. See Tags.
idempotencyKey OptionalstringOptional. See Idempotency.

Relationships

NameTypeDescription
creditAccountJSON:API RelationshipThe Credit Account that the repayment is made against.
Example Request:
curl -X POST 'https://api.s.unit.sh/repayments'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "externalRepayment",
"attributes": {
"amount": 50000,
"description": "External payment"
},
"relationships": {
"creditAccount": {
"data": {
"type": "creditAccount",
"id": "10007"
}
}
}
}
}'

Response

Response is a JSON:API document.

201 Created

NameTypeDescription
dataExternalRepaymentThe requested resource after the operation was completed.
Example Response:
{
"data": {
"type": "externalRepayment",
"id": "1",
"attributes": {
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-01-15T10:30:00.000Z",
"amount": 50000,
"status": "Sent",
"description": "External payment"
},
"relationships": {
"creditAccount": {
"data": {
"type": "creditAccount",
"id": "10007"
}
},
"customer": {
"data": {
"type": "customer",
"id": "10002"
}
},
"org": {
"data": {
"type": "org",
"id": "1"
}
}
}
}
}

Return External Repayment

Returns an external repayment that was previously created with Sent status. This is used when the external payment needs to be reversed. When an external repayment is returned, the credit account balance will increase and the available credit limit will decrease.

A repayment.statusChanged event will be raised when an external repayment is returned.

VerbPOST
URLhttps://api.s.unit.sh/repayments/{repaymentId}/return
Required Scoperepayments-write
Data TypeexternalRepaymentReturn
Timeout (Seconds)5

Relationships

NameTypeDescription
repaymentJSON:API RelationshipThe External Repayment to return.
Example Request:
curl -X POST 'https://api.s.unit.sh/repayments/{repaymentId}/return'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "externalRepaymentReturn",
"relationships": {
"repayment": {
"data": {
"type": "externalRepayment",
"id": "1"
}
}
}
}
}'

Response

Response is a JSON:API document.

200 OK

NameTypeDescription
dataExternalRepaymentThe requested resource after the operation was completed.
Example Response:
{
"data": {
"type": "externalRepayment",
"id": "1",
"attributes": {
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-01-15T11:00:00.000Z",
"amount": 50000,
"status": "Returned",
"description": "External payment"
},
"relationships": {
"creditAccount": {
"data": {
"type": "creditAccount",
"id": "10007"
}
},
"customer": {
"data": {
"type": "customer",
"id": "10002"
}
},
"org": {
"data": {
"type": "org",
"id": "1"
}
}
}
}
}

Get by Id

Get a repayment by id.

VerbGET
URLhttps://api.s.unit.sh/repayments/{id}
Required Scoperepayments
Timeout (Seconds)5

Response

Response is a JSON:API document.

200 OK

NameTypeDescription
dataOne of the following types (ACH Repayment, Book Repayment, or External Repayment)Repayment resource.
curl -X GET 'https://api.s.unit.sh/repayments/100' \
-H "Authorization: Bearer ${TOKEN}"

List Repayments

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

VerbGET
URLhttps://api.s.unit.sh/repayments
Required Scoperepayments
Timeout (Seconds)5

Query Parameters

NameTypeDefaultDescription
page[limit]integer100Optional. Maximum number of resources that will be returned. Maximum is 1000 resources. See Pagination.
page[offset]integer0Optional. Number of resources to skip. See Pagination.
filter[accountId]string(empty)Optional. Filters the results by the specified account id.
filter[creditAccountId]string(empty)Optional. Filters the results by the specified credit account id.
filter[recurringRepaymentId]string(empty)Optional. Filters the result according to the associated Recurring Repayment id
filter[customerId]string(empty)Optional. Filters the results by the specified customer id.
filter[status][]string(empty)Optional. Filter repayments by status (Pending, PendingReview, Returned, Sent or Rejected). Usage example: *filter[status][0]=Active
filter[type][]string(empty)Optional. Filter repayments by Repayment type. such as (AchRepayment, BookRepayment, ExternalRepayment). Usage example: filter[type][0]=AchRepayment&filter[type][1]=BookRepayment
filter[since]RFC3339 Date string(empty)Optional. Filters Repayments that occurred after the specified date. e.g. 2020-01-13T16:01:19.346Z
filter[until]RFC3339 Date string(empty)Optional. Filters the Repayments that occurred before the specified date. e.g. 2020-01-02T20:06:23.486Z
curl -X GET 'https://api.s.unit.sh/repayments?page[limit]=20&page[offset]=10&filter[status]=Pending' \
-H "Authorization: Bearer ${TOKEN}"

Response

Response is a JSON:API document.

200 OK

NameTypeDescription
dataArray of Repayments (ACH Repayment, Book Repayment, External Repayment)Array of repayment resources.
metaJSON object that contains pagination dataPagination data includes offset, limit and total (estimated total items).
Example Response:
{
"data": [
{
"type": "achRepayment",
"id": "1",
"attributes": {
"createdAt": "2022-09-19T09:02:13.343Z",
"updatedAt": "2022-09-19T09:02:13.343Z",
"amount": 200,
"status": "Pending"
},
"relationships": {
"org": {
"data": {
"type": "org",
"id": "1"
}
},
"account": {
"data": {
"type": "account",
"id": "10003"
}
},
"counterparty": {
"data": {
"type": "counterparty",
"id": "1"
}
},
"creditAccount": {
"data": {
"type": "creditAccount",
"id": "10007"
}
},
"customer": {
"data": {
"type": "customer",
"id": "10002"
}
},
"payment": {
"data": {
"type": "payment",
"id": "1"
}
}
}
},
{
"type": "bookRepayment",
"id": "2",
"attributes": {
"createdAt": "2022-09-19T09:06:52.566Z",
"updatedAt": "2022-09-19T09:06:52.566Z",
"amount": 20,
"status": "Rejected"
},
"relationships": {
"counterparty": {
"data": {
"type": "account",
"id": "10003"
}
},
"account": {
"data": {
"type": "account",
"id": "10002"
}
},
"creditAccount": {
"data": {
"type": "creditAccount",
"id": "10002"
}
},
"customer": {
"data": {
"type": "customer",
"id": "10007"
}
},
"org": {
"data": {
"type": "org",
"id": "1"
}
},
"payment": {
"data": {
"type": "payment",
"id": "3"
}
}
}
},
{
"type": "bookRepayment",
"id": "3",
"attributes": {
"createdAt": "2022-09-19T09:07:40.314Z",
"updatedAt": "2022-09-19T09:07:40.314Z",
"amount": 20,
"status": "Rejected"
},
"relationships": {
"counterparty": {
"data": {
"type": "account",
"id": "10003"
}
},
"account": {
"data": {
"type": "account",
"id": "10002"
}
},
"creditAccount": {
"data": {
"type": "creditAccount",
"id": "10002"
}
},
"customer": {
"data": {
"type": "customer",
"id": "10007"
}
},
"org": {
"data": {
"type": "org",
"id": "1"
}
},
"payment": {
"data": {
"type": "payment",
"id": "4"
}
}
}
},
{
"type": "capitalPartnerAchRepayment",
"id": "4",
"attributes": {
"createdAt": "2022-09-19T09:02:13.343Z",
"updatedAt": "2022-09-19T09:02:13.343Z",
"amount": 200,
"status": "Pending"
},
"relationships": {
"counterparty": {
"data": {
"type": "counterparty",
"id": "1"
}
},
"creditAccount": {
"data": {
"type": "creditAccount",
"id": "10007"
}
},
"org": {
"data": {
"type": "org",
"id": "1"
}
},
"customer": {
"data": {
"type": "customer",
"id": "10002"
}
},
"payment": {
"data": {
"type": "payment",
"id": "1"
}
}
}
}
],
"meta": {
"pagination": {
"total": 3,
"limit": 100,
"offset": 0
}
}
}