../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

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"
        }
    ]
}

Resource properties

PropertyData typeFormatDescription
@id stringMaxlength:  
accountNo stringMaxlength:  
startDate dateISO 8601 
description stringMaxlength:  
accountProfileType stringMaxlength: Examples: kontodebet, kontokredit, kontofaktura
accountAlias stringMaxlength: Examples: kontokredit1, matkonto1
customerNo stringMaxlength:  
status stringMaxlength:  
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 stringMaxlength:  
openBill.dueDate dateISO 8601 
openBill.billType stringMaxlength:  
charityDonation bool  
interestRate.debtInterestdecimal  
interestRate.penaltyInterestdecimal  
offer stringMaxlength:  
directDebit stringMaxlength:  
cards stringMaxlength:  
transactions stringMaxlength:  
currency stringMaxlength:  
bills stringMaxlength:  
customer stringMaxlength:  

Bills

List bills

Request
GET /ledger/credit-account/v1/XXX/accounts/123/bills HTTP/1.1
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" }
    ]    
}

Bill resource

Request
GET /ledger/credit-account/v1/XXX/accounts/123/bills/456 HTTP/1.1
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"
}

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)

pdf

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

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"  
}

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

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"}
    ]
}
Request
POST /ledger/credit-account/v1/XXX/accounts/123/cards/456 HTTP/1.1
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"
        }
    ]
}

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

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"
    }
}

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

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",
}

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"
        }
    ]
}
Created by David Persson on 2019/12/04 09:40
   

Tips

You can click on the arrows next to the breadcrumb elements to quickly navigate to sibling and children pages.

Need help?

If you need help with XWiki you can contact: