../credit-account
Integrate to PayEx Credit Account API
Accounts
Request
GET /ledger/credit-account/v1/XXX/accounts HTTP/1.1
Host: -
Authorization: Bearer <Token>
Content-Type: application/json
Host: -
Authorization: Bearer <Token>
Content-Type: application/json
If the authorization post succeeds, or if a get method is performed to retrieve an existing authorization, it should respond with something like the following:
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"@id": "/ledger/credit-account/v1/501/accounts/123456",
"accountNo": "1234567",
"startDate": "2016-05-21",
"description": null,
"accountProfileType": "kontodebet | kontokredit | kontofaktura",
"accountAlias" : "kontokredit1 | matkonto1",
"customerNo" : "123789654",
"status" : "open | pending-close | closed",
"creditLimit": 2000.00,
"unpaidBilledAmount" : 200.0,
"debt": 2050.0,
"surplus": 0.0,
"reservedAmount": 50.0,
"availableAmount": 100.0,
"openBill" : {
"amount" : 250.0,
"bill" : "/ledger/credit-account/v1/501/accounts/123456/bills/963",
"dueDate" : "2019-10-10",
"billType" : "Bill"
},
"charityDonation": true,
"interestRate": {
"debtInterest" : 10.00,
"penaltyInterest": 15.00
},
"offer" : "",
"directDebit": "/ledger/credit-account/v1/501/accounts/123456/direct-debit",
"cards": "/ledger/credit-account/v1/501/accounts/123456/cards",
"transactions": "/ledger/credit-account/v1/501/accounts/123456/transactions",
"currency": "sek",
"bills": "/ledger/credit-account/v1/501/accounts/123456/bills",
"customer": "/ledger/customers/v1/501/customer/123456",
"operation" : [
{
"rel" : "add-card-info",
"method" : "post",
"href" : "/ledger/credit-account/v1/501/accounts/123456/cards"
},
{
"rel" : "request-close-account",
"method" : "post",
"href" : "/ledger/credit-account/v1/501/accounts/123456/request-close-account"
},
{
"rel" : "apply-for-raised-credit-limit",
"method" : "post",
"href" : "/ledger/credit-account-onboardings/v1/501/accounts/123456/apply-for-raised-credit-limit"
},
{
"rel" : "lower-credit-limit",
"method" : "patch",
"href" : "/ledger/credit-account-onboardings/v1/501/accounts/123456"
},
{
"rel" : "change-charity-donation",
"method" : "patch",
"href" : "/ledger/credit-account-onboardings/v1/501/accounts/123456"
}
]
}
Content-Type: application/json
{
"@id": "/ledger/credit-account/v1/501/accounts/123456",
"accountNo": "1234567",
"startDate": "2016-05-21",
"description": null,
"accountProfileType": "kontodebet | kontokredit | kontofaktura",
"accountAlias" : "kontokredit1 | matkonto1",
"customerNo" : "123789654",
"status" : "open | pending-close | closed",
"creditLimit": 2000.00,
"unpaidBilledAmount" : 200.0,
"debt": 2050.0,
"surplus": 0.0,
"reservedAmount": 50.0,
"availableAmount": 100.0,
"openBill" : {
"amount" : 250.0,
"bill" : "/ledger/credit-account/v1/501/accounts/123456/bills/963",
"dueDate" : "2019-10-10",
"billType" : "Bill"
},
"charityDonation": true,
"interestRate": {
"debtInterest" : 10.00,
"penaltyInterest": 15.00
},
"offer" : "",
"directDebit": "/ledger/credit-account/v1/501/accounts/123456/direct-debit",
"cards": "/ledger/credit-account/v1/501/accounts/123456/cards",
"transactions": "/ledger/credit-account/v1/501/accounts/123456/transactions",
"currency": "sek",
"bills": "/ledger/credit-account/v1/501/accounts/123456/bills",
"customer": "/ledger/customers/v1/501/customer/123456",
"operation" : [
{
"rel" : "add-card-info",
"method" : "post",
"href" : "/ledger/credit-account/v1/501/accounts/123456/cards"
},
{
"rel" : "request-close-account",
"method" : "post",
"href" : "/ledger/credit-account/v1/501/accounts/123456/request-close-account"
},
{
"rel" : "apply-for-raised-credit-limit",
"method" : "post",
"href" : "/ledger/credit-account-onboardings/v1/501/accounts/123456/apply-for-raised-credit-limit"
},
{
"rel" : "lower-credit-limit",
"method" : "patch",
"href" : "/ledger/credit-account-onboardings/v1/501/accounts/123456"
},
{
"rel" : "change-charity-donation",
"method" : "patch",
"href" : "/ledger/credit-account-onboardings/v1/501/accounts/123456"
}
]
}
Resource properties
Property | Data type | Format | Description |
---|---|---|---|
@id | string | Maxlength: | |
accountNo | string | Maxlength: | |
startDate | date | ISO 8601 | |
description | string | Maxlength: | |
accountProfileType | string | Maxlength: | Examples: kontodebet, kontokredit, kontofaktura |
accountAlias | string | Maxlength: | Examples: kontokredit1, matkonto1 |
customerNo | string | Maxlength: | |
status | string | Maxlength: | |
creditLimit | decimal | Kontots kreditlimit | |
unpaidBilledAmount | decimal | total aktuell summa av alla balanser på BillingAcc (endast om negativ/skuld, annars 0) | |
debt | decimal | total aktuell summa av alla balanser (kapital/ränta/avgifter osv.) på BillingAcc + underliggande CredAccs, OM NEGATIV (skuld) | |
surplus | decimal | total aktuell summa av alla balanser (kapital/ränta/avgifter osv.) på BillingAcc + underliggande CredAccs, OM POSITIV (tillgodo) | |
reservedAmount | decimal | Summerat belopp på alla utestående reservationer mot kontot (som är giltiga och ej captured) | |
availableAmount | decimal | Tillgänglig kredit (kan ej räknas fram utifrån ovan belopp då avgifter kan ingå där, som inte påverkar tillgänglig kredit) | |
openBill.amount | decimal | ||
openBill.bill | string | Maxlength: | |
openBill.dueDate | date | ISO 8601 | |
openBill.billType | string | Maxlength: | |
charityDonation | bool | ||
interestRate.debtInterest | decimal | ||
interestRate.penaltyInterest | decimal | ||
offer | string | Maxlength: | |
directDebit | string | Maxlength: | |
cards | string | Maxlength: | |
transactions | string | Maxlength: | |
currency | string | Maxlength: | |
bills | string | Maxlength: | |
customer | string | Maxlength: |
Bills
List bills
Request
GET /ledger/credit-account/v1/XXX/accounts/123/bills HTTP/1.1
Host: -
Authorization: Bearer <Token>
Content-Type: application/json
Host: -
Authorization: Bearer <Token>
Content-Type: application/json
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"bills" : [
{ "billDate" : "2018-09-01", "status" : "open", "billAmount" : 374.10, "@id" : "/ledger/credit-account/v1/501/accounts/123456/bills/963" },
{ "billDate" : "2018-08-01", "status" : "closed", "billAmount" : 374.10, "@id" : "/ledger/credit-account/v1/501/accounts/123456/bills/852" },
{ "billDate" : "2018-07-01", "status" : "closed", "billAmount" : 374.10, "@id" : "/ledger/credit-account/v1/501/accounts/123456/bills/741" }
]
}
Content-Type: application/json
{
"bills" : [
{ "billDate" : "2018-09-01", "status" : "open", "billAmount" : 374.10, "@id" : "/ledger/credit-account/v1/501/accounts/123456/bills/963" },
{ "billDate" : "2018-08-01", "status" : "closed", "billAmount" : 374.10, "@id" : "/ledger/credit-account/v1/501/accounts/123456/bills/852" },
{ "billDate" : "2018-07-01", "status" : "closed", "billAmount" : 374.10, "@id" : "/ledger/credit-account/v1/501/accounts/123456/bills/741" }
]
}
Bill resource
Request
GET /ledger/credit-account/v1/XXX/accounts/123/bills/456 HTTP/1.1
Host: -
Authorization: Bearer <Token>
Content-Type: application/json
Host: -
Authorization: Bearer <Token>
Content-Type: application/json
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"@id": "/ledger/credit-account/v1/501/accounts/123456/bills/963",
"externalReference": "123456",
"dueDate": "2018-12-05",
"billNo": "124645",
"amountToBePayed": 240.00,
"billType" : "Bill",
"bankPayment": {
"bankAccountNo": "123",
"bankAccountType": "BGSE",
"bic": "123456",
"iban": "SE12345678945631",
"paymentReference": "1246fdsdf4687613"
},
"activePaymentOrder": {
"paymentType": "BGAGSE",
"executionDate": "2019-01-01",
"amount" : 200.0
},
"pdf": "/ledger/credit-account/v1/501/accounts/123456/bills/963/pdf"
}
Content-Type: application/json
{
"@id": "/ledger/credit-account/v1/501/accounts/123456/bills/963",
"externalReference": "123456",
"dueDate": "2018-12-05",
"billNo": "124645",
"amountToBePayed": 240.00,
"billType" : "Bill",
"bankPayment": {
"bankAccountNo": "123",
"bankAccountType": "BGSE",
"bic": "123456",
"iban": "SE12345678945631",
"paymentReference": "1246fdsdf4687613"
},
"activePaymentOrder": {
"paymentType": "BGAGSE",
"executionDate": "2019-01-01",
"amount" : 200.0
},
"pdf": "/ledger/credit-account/v1/501/accounts/123456/bills/963/pdf"
}
Property | Data type | Format | Description |
---|---|---|---|
@id | string | ||
externalReference | string | ||
dueDate | date | ||
billNo | string | ||
amountToBePayed | decimal | ||
billType | string | ||
bankPayment.bankAccountNo | string | ||
bankPayment.bankAccountType | string | ||
bankPayment.bic | string | ||
bankPayment.iban | string | ||
bankPayment.paymentReference | string | ||
activePaymentOrder.paymentType | string | ||
activePaymentOrder.executionDate | date | ||
activePaymentOrder.amount | decimal | beroende på directdebittype så kan denna vara beräknad vid varje hämtning (utifrån ev. delbet) | |
string | Url to download pdf |
Direct-debit
Request
POST /ledger/credit-account/v1/XXX/accounts/123/direct-debit HTTP/1.1
Host: -
Authorization: Bearer <Token>
Content-Type: application/json
Host: -
Authorization: Bearer <Token>
Content-Type: application/json
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"@id" : "/ledger/credit-account/v1/501/accounts/123456/direct-debit",
"directDebitType" : "fixedRecurring | totalDebt | billedAmount | onDemand",
"fixedRecurringAmount" : 1500.00,
"parentHREF": "/ledger/credit-account/v1/501/accounts/123456"
}
Content-Type: application/json
{
"@id" : "/ledger/credit-account/v1/501/accounts/123456/direct-debit",
"directDebitType" : "fixedRecurring | totalDebt | billedAmount | onDemand",
"fixedRecurringAmount" : 1500.00,
"parentHREF": "/ledger/credit-account/v1/501/accounts/123456"
}
Property | Data type | Format | Description |
---|---|---|---|
directDebitType | string | Can be either of the following: fixedRecurring | totalDebt | billedAmount | onDemand | |
fixedRecurringAmount | decimal | Only valid if FixedRecurring (amount to monthly debit consumers bankaccount) |
Cards
Request
POST /ledger/credit-account/v1/XXX/accounts/123/cards HTTP/1.1
Host: -
Authorization: Bearer <Token>
Content-Type: application/json
Host: -
Authorization: Bearer <Token>
Content-Type: application/json
Response
HTTP/1.1 201 Created
Content-Type: application/json
{
"cards" : [
{"PanTrunc" : "85479**********648", "@id" : "/ledger/credit-account/v1/501/accounts/123456/cards/741"},
{"PanTrunc" : "12345**********456", "@id" : "/ledger/credit-account/v1/501/accounts/123456/cards/742"}
]
}
Content-Type: application/json
{
"cards" : [
{"PanTrunc" : "85479**********648", "@id" : "/ledger/credit-account/v1/501/accounts/123456/cards/741"},
{"PanTrunc" : "12345**********456", "@id" : "/ledger/credit-account/v1/501/accounts/123456/cards/742"}
]
}
Request
POST /ledger/credit-account/v1/XXX/accounts/123/cards/456 HTTP/1.1
Host: -
Authorization: Bearer <Token>
Content-Type: application/json
Host: -
Authorization: Bearer <Token>
Content-Type: application/json
Response
HTTP/1.1 201 Created
Content-Type: application/json
{
"token": "954c8699-b38f-47a2-b568-668b8837dad8",
"PanTrunc": "85479*********648",
"deleted" : false,
"mainCard": true,
"cardHolder" : {
"number" : "123465",
"name": "test testsson",
"nationalConsumerIdentifier": {
"value": "19101010-1010",
"countryCode": "SE"
}
},
"@id": "/ledger/credit-account/v1/501/accounts/123456/cards/741",
"parentHREF": "/ledger/credit-account/v1/501/accounts/123456",
"operation" : [
{
"rel" : "delete-card-info",
"method" : "patch",
"href" : "/ledger/credit-account/v1/501/accounts/123456/cards/741"
}
]
}
Content-Type: application/json
{
"token": "954c8699-b38f-47a2-b568-668b8837dad8",
"PanTrunc": "85479*********648",
"deleted" : false,
"mainCard": true,
"cardHolder" : {
"number" : "123465",
"name": "test testsson",
"nationalConsumerIdentifier": {
"value": "19101010-1010",
"countryCode": "SE"
}
},
"@id": "/ledger/credit-account/v1/501/accounts/123456/cards/741",
"parentHREF": "/ledger/credit-account/v1/501/accounts/123456",
"operation" : [
{
"rel" : "delete-card-info",
"method" : "patch",
"href" : "/ledger/credit-account/v1/501/accounts/123456/cards/741"
}
]
}
Property | Data type | Format | Description |
---|---|---|---|
token | string | token identifier of the card | |
panTrunc | string | truncated PAN | |
deleted | bool | ||
mainCard | bool | main card of the account (cardholder is always owner of account) | |
cardHolder.number | string | ||
cardHolder.name | string | ||
cardHolder.nationalConsumerIdentifier.value | string | ||
cardHolder.nationalConsumerIdentifier.countryCode | string |
Transactions
Request
POST /ledger/credit-account/v1/XXX/accounts/123/transactions HTTP/1.1
Host: -
Authorization: Bearer <Token>
Content-Type: application/json
Host: -
Authorization: Bearer <Token>
Content-Type: application/json
Response
HTTP/1.1 201 Created
Content-Type: application/json
{
"operations": null,
"items": [
{
"type": "payment",
"description": "",
"amount": 200.00,
"billed": false|true,
"date": "2019-10-09",
"reserveDate": null
},
{
"type": "purchase",
"description": "testbutiken, köpref. 12345689",
"amount": 200.00,
"billed": false|true,
"date": "2019-10-09",
"reserveDate": "2019-10-05",
},
{
"type": "credit",
"description": "",
"amount": 200.00,
"billed": false|true,
"date": "2019-10-09",
"reserveDate": "2019-10-05"
}
],
"@id": "/ledger/credit-account/v1/501/accounts/123456/transactions?fromDate=2019-10-01",
"view": {
"@id": "/ledger/credit-account/v1/501/accounts/123456/transactions?fromDate=2019-10-01&$top=2&$skip=0",
"next": "/ledger/credit-account/v1/501/accounts/123456/transactions?fromDate=2019-10-01&$top=2&$skip=2"
}
}
Content-Type: application/json
{
"operations": null,
"items": [
{
"type": "payment",
"description": "",
"amount": 200.00,
"billed": false|true,
"date": "2019-10-09",
"reserveDate": null
},
{
"type": "purchase",
"description": "testbutiken, köpref. 12345689",
"amount": 200.00,
"billed": false|true,
"date": "2019-10-09",
"reserveDate": "2019-10-05",
},
{
"type": "credit",
"description": "",
"amount": 200.00,
"billed": false|true,
"date": "2019-10-09",
"reserveDate": "2019-10-05"
}
],
"@id": "/ledger/credit-account/v1/501/accounts/123456/transactions?fromDate=2019-10-01",
"view": {
"@id": "/ledger/credit-account/v1/501/accounts/123456/transactions?fromDate=2019-10-01&$top=2&$skip=0",
"next": "/ledger/credit-account/v1/501/accounts/123456/transactions?fromDate=2019-10-01&$top=2&$skip=2"
}
}
Property | Data type | Format | Description |
---|---|---|---|
type | string | (transactionTypeGroup) | |
description | string | ||
amount | decimal | ||
billed | bool | ||
date | date | Valuedate |
Reservations
Request
POST /ledger/credit-account/v1/XXX/accounts/123/reservations HTTP/1.1
Host: -
Authorization: Bearer <Token>
Content-Type: application/json
Host: -
Authorization: Bearer <Token>
Content-Type: application/json
Response
HTTP/1.1 201 Created
Content-Type: application/json
{
"operations": null,
"items": [
{
"amount": 200.00,
"description" : "",
"date": "2019-10-05",
},
{
"amount": 450.00,
"description" : "",
"date": "2019-10-02",
},
],
"@id": "/ledger/credit-account/v1/501/accounts/123456/reservations",
}
Content-Type: application/json
{
"operations": null,
"items": [
{
"amount": 200.00,
"description" : "",
"date": "2019-10-05",
},
{
"amount": 450.00,
"description" : "",
"date": "2019-10-02",
},
],
"@id": "/ledger/credit-account/v1/501/accounts/123456/reservations",
}
Property | Data type | Format | Description |
---|---|---|---|
amount | decimal | ||
description | string | ||
date | date |
Problems
If an error occur or any validation failed, a "problem" response will be returned.
Below is a list of problems that can occur:
HttpStatus 401 Unauthorized
Token expired
Token invalid
SellerNumber does not match token
CompanyNumber does not match token
HttpStatus 400 Error
Validation: Argument required
Validation: Invalid value
HttpStatus 422 Unprocessable entity
Authorization declined
HttpStatus 409 Conflict
Invoice already authorized
Duplicate InvoiceNumber
Authorization is cancelled
Authorization already captured
Authorization has expired
Insufficient debited amount XXX
HttpStatus 501 NotImplemented
CompanyNumber XXX not configured
SellerNumber XXX not configured at PayEx
CompanyNumber XXX missing configuration
HttpStatus 404 NotFound
Authorization not found
Below is an example of a problem that will be returned if buyer.nationalConsumerIdentifier.value is not valid in the authorization post request.
Response
HTTP/1.1 400 Error
Content-Type: application/problem+json
{
"Type": "http://[DNS]/ledger/invoice-purchase/problems/validation",
"Title": "A validation error occurred",
"Status": 400,
"Instance": null,
"Detail": "A validation error occurred. Please fix the problems mentioned in the 'problems' property below.",
"Problems": [
{
"buyer.nationalConsumerIdentifier.value": "Not a valid SE nationalConsumerIdentifier"
}
]
}
Content-Type: application/problem+json
{
"Type": "http://[DNS]/ledger/invoice-purchase/problems/validation",
"Title": "A validation error occurred",
"Status": 400,
"Instance": null,
"Detail": "A validation error occurred. Please fix the problems mentioned in the 'problems' property below.",
"Problems": [
{
"buyer.nationalConsumerIdentifier.value": "Not a valid SE nationalConsumerIdentifier"
}
]
}