Magento Commerce only

Manage company credit

The company credit entity operates with the following attributes:

  • Credit limit
  • Available credit
  • Outstanding balance

The credit limit is allocated by seller, while available credit and outstanding balance are automatically calculated by the system based on the buyer transactions (place an order, return) and seller’s transactions (refund, reimburse, update credit limit, cancel order).

Manage company credit limits

When you create a company, the credit limit is set to 0. Use the PUT /V1/companyCredits/:id call to change this value and perform other updates to the company’s credit settings.

REST Endpoints:

1
2
3
4
PUT /V1/companyCredits/:id
GET /V1/companyCredits/:creditId
GET /V1/companyCredits/company/:companyId
GET /V1/companyCredits/

Company credit parameters:

Name Description Format Requirements
id The credit ID generated by the system Integer Required
company_id Company ID Integer Required
credit_limit The amount of credit granted to the company Float Required
balance The amount the company currently owes the seller Float Optional
currency_code The currency code for the company’s credit, such as USD String Required
exceed_limit Indicates whether the company can exceed their credit limit Boolean Optional
available_limit The amount of credit currently available to the company Float Optional
credit_comment Describes the change being made String Optional

Update a company credit limit

This call changes the company’s credit limit to $1000. The available_limit parameter is calculated, so you cannot specify the value.

Service Name:

companyCreditCreditLimitRepositoryV1

Sample Usage:

PUT <host>/rest/<store_code>/V1/companyCredits/2

Payload:

1
2
3
4
5
6
7
8
{
  "creditLimit": {
  "id": 2,
  "company_id": 2,
  "credit_limit": 1000,
  "currency_code": "USD"
  }
}

Response:

1
2
3
4
5
6
7
8
9
{
    "id": 2,
    "company_id": 2,
    "credit_limit": 1000,
    "balance": 0,
    "currency_code": "USD",
    "exceed_limit": false,
    "available_limit": 1000
}

Get details about a company’s credit limit using credit ID

This call returns data on the credit limit for the specified credit ID.

Service Name:

companyCreditCreditLimitRepositoryV1

Sample Usage:

GET <host>/rest/<store_code>/V1/companyCredits/2

Payload:

Not applicable

Response:

1
2
3
4
5
6
7
8
9
{
  "id": 2,
  "company_id": 2,
  "credit_limit": 500,
  "balance": 0,
  "currency_code": "USD",
  "exceed_limit": false,
  "available_limit": 500
}

Get details about a company’s credit limit using company ID

This call returns information about the credit limit for a specified company.

Service Name:

companyCreditCreditLimitManagementV1

Sample Usage:

GET <host>/rest/<store_code>/V1/companyCredits/company/2

Payload:

Not applicable

Response:

1
2
3
4
5
6
7
8
9
{
  "id": 2,
  "company_id": 2,
  "credit_limit": 500,
  "balance": 0,
  "currency_code": "USD",
  "exceed_limit": false,
  "available_limit": 500
}

Search credit IDs

The following call returns information for all companies whose credit balance is 0.

See Search using REST APIs for information about constructing a search query.

Sample Usage:

GET <host>/rest/<store_code>/V1/companyCredits?searchCriteria[filter_groups][0][filters][0][field]=balance&searchCriteria[filter_groups][0][filters][0][value]=0&searchCriteria[filter_groups][0][filters][0][condition_type]=eq

Payload:

Not applicable

Response:

Show code sample
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
{
    "items": [
        {
            "id": 2,
            "company_id": 2,
            "credit_limit": 1000,
            "balance": 0,
            "currency_code": "USD",
            "exceed_limit": false,
            "available_limit": 1000
        },
        {
            "id": 3,
            "company_id": 3,
            "balance": 0,
            "currency_code": "USD",
            "exceed_limit": false,
            "available_limit": 0
        },
        {
            "id": 4,
            "company_id": 4,
            "credit_limit": 2000,
            "balance": 0,
            "currency_code": "USD",
            "exceed_limit": false,
            "available_limit": 2000
        }
    ],
    "search_criteria": {
        "filter_groups": [
            {
                "filters": [
                    {
                        "field": "balance",
                        "value": "0",
                        "condition_type": "eq"
                    }
                ]
            }
        ]
    },
    "total_count": 3
}

Balance operations

The company’s outstanding balance can be updated as the buyer makes payments, purchases, and other transactions.

Service Name:

companyCreditCreditBalanceManagementV1

REST Endpoints:

1
2
POST /V1/companyCredits/:creditId/decreaseBalance
POST /V1/companyCredits/:creditId/increaseBalance

Balance Parameters:

Name Description Format Requirements
value Indicates how much money is involved in this company credit balance operation. Number Required
currency The currency of the transaction, such as USD String Required
operationType Must be one of the following: 1 - Allocated; 2 - Updated; 3 - Purchased; 4 - Reimbursed; 5 - Refunded; 6 - Reverted Integer Required
comment Describers the operation String Optional
options An object that provides additional information for increasing or decreasing the credit balance Object Optional

options parameters:

Name Description Format Requirements
purchase_order The company’s purchase order number String Optional
order_increment Order increment String Optional
currency_display Currency code for displaying the operation String Optional
currency_base The base currency String Optional

Increase the company credit balance

This call increases the company credit with an Allocate, Update, Refund, Revert, or Reimburse transaction. (You cannot specify the Purchased (3) operation type.) This call also decreases the company’s outstanding balance.

Sample Usage:

POST <host>/rest/<store_code>/V1/companyCredits/2/increaseBalance

Payload:

1
2
3
4
5
6
{
  "value": 250,
  "currency": "USD",
  "operationType": 2,
  "comment": "update limit"
}

Response:

true, indicating the increase to the company credit balance succeeded

Decrease the balance

This call decreases the company credit with an Update (operation type = 2), Purchased (3), or Reimbursed (4) transaction. (You cannot specify the other operation types.) This call also increases company’s outstanding balance.

Sample Usage:

POST <host>/rest/<store_code>/V1/companyCredits/2/decreaseBalance

Payload:

1
2
3
4
5
6
{
  "value": 250,
  "currency": "USD",
  "operationType": 4,
  "comment": "issue refund"
}

Response:

true, indicating the decrease to the company credit balance succeeded

Credit history

A Reimburse transaction can be updated to include a purchase order and comment.

Service Name: companyCreditCreditHistoryManagementV1

REST Endpoints:

1
2
GET /V1/companyCredits/history
PUT /V1/companyCredits/history/:historyId

Save the credit history

This call updates the credit history to specify a purchase order number.

Sample Usage:

PUT <host>/rest/<store_code>/V1/companyCredits/history/6

Payload:

1
2
3
4
{
  "purchaseOrder": "A12345",
  "comment": "Adding PO info"
}

Response:

true, indicating the call was successful

Search credit history IDs

The following call returns a list instances in which the credit limit was set to a value higher than $500.

See Search using REST APIs for information about constructing a search query.

Sample Usage:

GET <host>/rest/<store_code>/V1/companyCredits/history?searchCriteria[filter_groups][0][filters][0][field]=credit_limit&searchCriteria[filter_groups][0][filters][0][value]=500&searchCriteria[filter_groups][0][filters][0][condition_type]=gt

Payload:

Not applicable

Response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
{
    "items": [
        {
            "id": 6,
            "company_credit_id": 2,
            "user_id": 1,
            "user_type": 2,
            "currency_credit": "USD",
            "currency_operation": "USD",
            "rate": 1,
            "rate_credit": 0,
            "amount": -250,
            "balance": 0,
            "credit_limit": 1000,
            "available_limit": 1000,
            "type": 4,
            "datetime": "2017-06-12 02:26:28",
            "purchase_order": "A12345",
            "comment": "{\"custom\":\"Adding PO info\"}"
        },
        {
            "id": 7,
            "company_credit_id": 4,
            "user_id": 1,
            "user_type": 2,
            "currency_credit": "USD",
            "currency_operation": "USD",
            "rate": 1,
            "rate_credit": 0,
            "amount": 0,
            "balance": 0,
            "credit_limit": 2000,
            "available_limit": 2000,
            "type": 1,
            "datetime": "2017-07-20 21:28:35",
            "comment": ""
        }
    ],
    "search_criteria": {
        "filter_groups": [
            {
                "filters": [
                    {
                        "field": "credit_limit",
                        "value": "500",
                        "condition_type": "gt"
                    }
                ]
            }
        ]
    },
    "total_count": 2
}

Integrate with the CompanyCredit module