../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: Uri of the specific account
accountNo stringMaxlength: 50The identifier of the account
startDate dateISO 8601Date when the account was started
description stringMaxlength: 200A description of the type of account
accountProfileType stringMaxlength: 50The defined code of the accounttype, Examples: kontodebet, kontokredit, kontofaktura
accountAlias stringMaxlength: 50A descriptive name for the account type, Examples: kontokredit1, matkonto1
customerNo stringMaxlength: 50Identifier of the customer (account owner)
status stringMaxlength: 25Status of the account
  • pending-close: the customer has requested the account to be closed, the account will be closed when possible.
  • open: the account is open and active
  • closed: the account has been closed
creditLimit decimal Kontots kreditlimit
unpaidBilledAmount decimal INTERN KOMMENTAR- total aktuell summa av alla balanser på BillingAcc (endast om negativ/skuld, annars 0) -INTERN KOMMENTAR
debt decimal INTERN KOMMENTAR- total aktuell summa av alla balanser (kapital/ränta/avgifter osv.) på BillingAcc + underliggande CredAccs, OM NEGATIV (skuld) -INTERN KOMMENTAR
surplus decimal INTERN KOMMENTAR- total aktuell summa av alla balanser (kapital/ränta/avgifter osv.) på BillingAcc + underliggande CredAccs, OM POSITIV (tillgodo) -INTERN KOMMENTAR
reservedAmount decimal INTERN KOMMENTAR- Summerat belopp på alla utestående reservationer mot kontot (som är giltiga och ej captured) -INTERN KOMMENTAR
availableAmount decimal INTERN KOMMENTAR- 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) -INTERN KOMMENTAR
openBill.amount decimal The minimum amount to pay on the currently open bill
openBill.bill stringUri 
openBill.dueDate dateISO 8601 
openBill.billType stringMaxlength: 25

BillTypes:

  • Bill
  • Reminder1
  • Reminder2
  • Collection
charityDonation bool If donations should be made from the account
interestRate.debtInterestdecimalpercentageyearly debt interestrate
interestRate.penaltyInterestdecimalpercentageyearly penalty interestrate
offer stringUri 
directDebit stringUri 
cards stringUri 
transactions stringUri 
currency stringISO 4217 
bills stringUri 
customer stringUri 

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

PropertyData typeFormatDescription
@idstring  
externalReferencestringMaxlength: 50 
dueDatedate  
billNostringMaxlength: 50The identifier of the bill
amountToBePayeddecimal The minimum amount to pay on the currently open bill
billTypestringMaxlength: 25

BillTypes:

  • Bill
  • Reminder1
  • Reminder2
  • Collection
bankPayment.bankAccountNostringMaxlength: 15 
bankPayment.bankAccountTypestringMaxlength: 10BankAccountTypes:
  • BKSE (swedish bankaccount)
  • PKSE (swedish plusgiro)
  • BGSE (swedish bankgiro)
  • PGSE (swedish plusgiro OCR)
bankPayment.bicstringMaxlength: 11 
bankPayment.ibanstringMaxlength: 34 
bankPayment.paymentReferencestringMaxlength: 
activePaymentOrder.paymentTypestringMaxlength:??
activePaymentOrder.executionDatedate  
activePaymentOrder.amountdecimal beroende på directdebittype så kan denna vara beräknad vid varje hämtning (utifrån ev. delbet)
pdfstring 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"  
}
PropertyData typeFormatDescription
directDebitTypestring Can be either of the following: fixedRecurring | totalDebt | billedAmount | onDemand
fixedRecurringAmountdecimal 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"
        }
    ]
}
PropertyData typeFormatDescription
tokenstring token identifier of the card
panTruncstring truncated PAN
deletedbool  
mainCardbool main card of the account (cardholder is always owner of account)
cardHolder.numberstring  
cardHolder.namestring  
cardHolder.nationalConsumerIdentifier.valuestring  
cardHolder.nationalConsumerIdentifier.countryCodestring  

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"
    }
}
PropertyData typeFormatDescription
typestring (transactionTypeGroup)
descriptionstring  
amountdecimal  
billedbool  
datedate 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",
}
PropertyData typeFormatDescription
amountdecimal  
descriptionstring  
datedate  

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: