BssAccountInformation

This type represents billing specific information about an account, either a Customer, Reseller, or Provider in the platform.

GraphViz

Schema

The considered APS type (download) extends the Resource APS type(s) and looks as follows:

{
  "name": "BssAccountInformation",
  "id": "http://parallels.com/pa/bss-account-info/1.0",
  "apsVersion": "2.0",
  "implements": [
    "http://aps-standard.org/types/core/resource/1.0"
  ],
  "relations": {
    "paAccount": {
      "type": "http://parallels.com/aps/types/pa/account/1.2",
      "required": true
    },
    "customerClass": {
      "type": "http://www.odin.com/billing/CustomerClass/1.0"
    },
    "ownCustomerClasses": {
      "type": "http://www.odin.com/billing/CustomerClass/1.0",
      "collection": true
    }
  },
  "properties": {
    "accountId": {
      "type": "integer",
      "required": true
    },
    "accountCurrencyCode": {
      "type": "string",
      "readonly": true
    },
    "status": {
      "type": "string",
      "enum": [
        "ACTIVE",
        "CANCELLED",
        "VERIFICATION_REQUIRED",
        "NOT_INITIALIZED",
        "CANCELLED_NOT_INITIALIZED",
        "CREDIT_HOLD",
        "ADMINISTRATIVE_HOLD",
        "CREDIT_ADMINISTRATIVE_HOLD",
        "TRANSFERRED_OUT",
        "ERASED"
      ],
      "enumTitles": [
        "Active",
        "Cancelled",
        "Verification required",
        "Not initialized",
        "Cancelled (not initialized)",
        "Credit Hold",
        "Administrative Hold",
        "Credit + Administrative Hold",
        "Transferred Out",
        "Erased"
      ]
    },
    "externalARManagement": {
      "type": "boolean",
      "default": "false"
    },
    "taxRegId": {
      "type": "string"
    },
    "taxRegIdStatus": {
      "type": "string",
      "title": "Tax Reg ID status",
      "enum": [
        "NOT_VERIFIED",
        "VERIFIED"
      ],
      "enumTitles": [
        "Not Verified",
        "Verified"
      ]
    },
    "taxZoneId": {
      "type": "string"
    },
    "taxStatus": {
      "type": "string",
      "required": true,
      "title": "Tax Status of client",
      "enum": [
        "PROVIDER",
        "PERSONAL",
        "COMPANY"
      ],
      "enumTitles": [
        "Provider",
        "Personal",
        "Company"
      ]
    },
    "salesId": {
      "type": "string"
    },
    "branchId": {
      "type": "string"
    },
    "attributes": {
      "type": "array",
      "items": {
        "type": "Attribute"
      }
    },
    "creditTerm": {
      "type": "BssCreditTerm"
    },
    "fullyRegistered": {
      "type": "boolean"
    },
    "birthday": {
      "type": "string",
      "format": "date"
    },
    "passport": {
      "type": "string"
    },
    "companyNameLatin": {
      "type": "string"
    },
    "systemId": {
      "type": "integer"
    },
    "localeId": {
      "type": "string",
      "required": true
    },
    "operatingUnit": {
      "type": "boolean",
      "readonly": true
    },
    "calendarBillingAlignment": {
      "type": "CalendarBillingAlignment"
    }
  },
  "operations": {
    "getAccountBalanceDetails": {
      "path": "/balance-details",
      "verb": "GET",
      "response": {
        "type": "BssAccountBalanceDetails"
      },
      "errorResponse": {
        "type": "object"
      }
    },
    "getAvailableFunds": {
      "path": "/available-funds",
      "verb": "GET",
      "response": {
        "type": "BssAvailableFunds"
      },
      "errorResponse": {
        "type": "object"
      }
    },
    "setTopUpOptions": {
      "path": "/set-top-up-options",
      "verb": "POST",
      "errorResponse": {
        "type": "object"
      },
      "parameters": {
        "params": {
          "kind": "body",
          "type": "BssAutoPaymentDetails"
        }
      }
    },
    "putOnCreditHold": {
      "path": "/putOnCreditHold",
      "verb": "POST",
      "errorResponse": {
        "type": "object"
      },
      "access": {
        "owner": false,
        "referrer": false
      },
      "parameters": {
        "params": {
          "kind": "body",
          "type": "PutOnCreditHoldParams"
        }
      }
    },
    "releaseFromCreditHold": {
      "path": "/releaseFromCreditHold",
      "verb": "POST",
      "errorResponse": {
        "type": "object"
      },
      "access": {
        "owner": false,
        "referrer": false
      },
      "parameters": {
        "params": {
          "kind": "body",
          "type": "ReleaseFromCreditHoldParams"
        }
      }
    },
    "putOnAdminHold": {
      "path": "/putOnAdminHold",
      "verb": "POST",
      "errorResponse": {
        "type": "object"
      },
      "access": {
        "owner": false,
        "referrer": false
      }
    },
    "releaseFromAdminHold": {
      "path": "/releaseFromAdminHold",
      "verb": "POST",
      "errorResponse": {
        "type": "object"
      },
      "access": {
        "owner": false,
        "referrer": false
      }
    },
    "placeAccountCancellationOrder": {
      "path": "/cancelAccount",
      "verb": "POST",
      "response": {
        "type": "AccountCancellationOrder"
      },
      "errorResponse": {
        "type": "object"
      },
      "access": {
        "owner": false,
        "referrer": false
      },
      "parameters": {
        "params": {
          "kind": "body",
          "type": "AccountCancellationOrderParams"
        }
      }
    },
    "getTaxRegId": {
      "path": "/taxRegId",
      "verb": "GET",
      "response": {
        "type": "string"
      },
      "errorResponse": {
        "type": "object"
      },
      "access": {
        "public": false,
        "privilege": "http://www.parallels.com/pa/pa-core-services#sensitive_account_info-view"
      }
    },
    "initializeReseller": {
      "path": "/initializeReseller",
      "verb": "POST",
      "errorResponse": {
        "type": "object"
      },
      "parameters": {
        "resellerParams": {
          "kind": "body",
          "type": "ResellerParams"
        }
      }
    },
    "getSynchronizationOptions": {
      "path": "/synchronizationOptions",
      "verb": "GET",
      "response": {
        "type": "SynchronizationOptions"
      },
      "errorResponse": {
        "type": "object"
      },
      "access": {
        "referrer": true
      }
    },
    "setSynchronizationOptions": {
      "path": "/synchronizationOptions",
      "verb": "POST",
      "errorResponse": {
        "type": "object"
      },
      "access": {
        "referrer": true
      },
      "parameters": {
        "synchronizationOptions": {
          "kind": "body",
          "type": "SynchronizationOptions"
        }
      }
    }
  },
  "structures": {
    "Attribute": {
      "type": "object",
      "properties": {
        "attributeID": {
          "type": "string",
          "required": true
        },
        "value": {
          "type": "string"
        }
      }
    },
    "BssCreditTerm": {
      "type": "object",
      "properties": {
        "duePeriod": {
          "type": "integer"
        },
        "holdPeriod": {
          "type": "integer"
        },
        "daysToDelay": {
          "type": "integer"
        }
      }
    },
    "CalendarBillingAlignment": {
      "type": "object",
      "properties": {
        "day": {
          "type": "integer",
          "readonly": true
        }
      }
    },
    "BssPaymentMethod": {
      "type": "object",
      "properties": {
        "internalId": {
          "type": "integer"
        },
        "title": {
          "type": "string"
        },
        "type": {
          "type": "integer"
        },
        "paymentSystem": {
          "type": "string"
        },
        "ownerAccountId": {
          "type": "integer"
        },
        "bankAccountStatus": {
          "type": "BankAccountStatus"
        },
        "ownerName": {
          "type": "string"
        },
        "status": {
          "type": "Status"
        },
        "suspended": {
          "type": "boolean"
        },
        "perCustomer": {
          "type": "boolean"
        },
        "consentRequired": {
          "type": "boolean"
        },
        "consentDeletionDate": {
          "type": "string"
        },
        "consentAgreementUrl": {
          "type": "string"
        }
      }
    },
    "BankAccountStatus": {
      "type": "object"
    },
    "Status": {
      "type": "object"
    },
    "BssAutoPaymentDetails": {
      "type": "object",
      "properties": {
        "topupThreshhold": {
          "type": "number"
        },
        "autoTopupAmount": {
          "type": "number"
        },
        "autoTopupPerOrder": {
          "type": "boolean"
        },
        "autoTopupEnabled": {
          "type": "boolean"
        },
        "payToolID": {
          "type": "integer"
        },
        "vPayToolType": {
          "type": "integer"
        },
        "status": {
          "type": "integer"
        }
      }
    },
    "BssAccountBalanceDetails": {
      "type": "object",
      "properties": {
        "accountId": {
          "type": "integer"
        },
        "availableBalance": {
          "type": "number"
        },
        "availableBalanceStr": {
          "type": "string"
        },
        "currentPeriod": {
          "type": "string"
        },
        "currentBalance": {
          "type": "number"
        },
        "currentBalanceStr": {
          "type": "string"
        },
        "notInvoicedPurchases": {
          "type": "number"
        },
        "notInvoicedPurchasesStr": {
          "type": "string"
        },
        "paymentsByProvider": {
          "type": "number"
        },
        "paymentsByProviderStr": {
          "type": "string"
        },
        "availableCreditLimit": {
          "type": "number"
        },
        "availableCreditLimitStr": {
          "type": "string"
        },
        "outstandingInvoicesAmountEARM": {
          "type": "number"
        },
        "outstandingInvoicesAmountEARMStr": {
          "type": "string"
        },
        "externalCreditLimitEARM": {
          "type": "number"
        },
        "externalCreditLimitEARMStr": {
          "type": "string"
        },
        "externalAvailableProvisioningBalanceEARM": {
          "type": "number"
        },
        "externalAvailableProvisioningBalanceEARMStr": {
          "type": "string"
        },
        "paymentMethod": {
          "type": "BssPaymentMethod"
        },
        "autoPaymentDetails": {
          "type": "BssAutoPaymentDetails"
        },
        "externalARManagement": {
          "type": "boolean"
        }
      }
    },
    "BssAvailableFunds": {
      "type": "object",
      "properties": {
        "availableFunds": {
          "type": "number"
        },
        "availableFundsStr": {
          "type": "string"
        }
      }
    },
    "PutOnCreditHoldParams": {
      "type": "object",
      "properties": {
        "policy": {
          "type": "string",
          "required": true,
          "enum": [
            "ALL_SUBSCRIPTIONS",
            "UNPAID_SUBSCRIPTIONS"
          ]
        },
        "reason": {
          "type": "string",
          "required": true,
          "enum": [
            "ACCOUNT_OVERDUE",
            "FRAUD",
            "CUSTOMER_REQUEST",
            "NOT_APPLICABLE",
            "AUP_VIOLATION",
            "OTHER"
          ]
        },
        "comment": {
          "type": "string",
          "required": true
        }
      }
    },
    "ReleaseFromCreditHoldParams": {
      "type": "object",
      "properties": {
        "policy": {
          "type": "string",
          "required": true,
          "enum": [
            "DEFAULT",
            "TEMPORARY"
          ]
        },
        "activeUntil": {
          "type": "string",
          "format": "date-time"
        },
        "comment": {
          "type": "string",
          "required": true
        }
      }
    },
    "AccountCancellationOrder": {
      "type": "object",
      "properties": {
        "message": {
          "type": "string"
        },
        "internalId": {
          "type": "integer"
        }
      }
    },
    "AccountCancellationOrderParams": {
      "type": "object",
      "properties": {
        "reasonId": {
          "type": "integer",
          "required": true
        },
        "comment": {
          "type": "string",
          "required": true
        }
      }
    },
    "ResellerParams": {
      "type": "object",
      "properties": {
        "currency": {
          "type": "string",
          "required": true
        }
      }
    },
    "SynchronizationOptions": {
      "type": "object",
      "properties": {
        "resellerSynchronizationOptions": {
          "type": "object",
          "required": true
        }
      }
    }
  }
}

The APS type is used to manage a collection of APS resources. To get a list of resources from that collection, use the following API call:

GET  /aps/2/collections/bss-accounts?<RQL-filter>

Properties

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

accountId

Integer

Required

Account ID in the platform

accountCurrencyCode

String

Not Required Read Only

Account currency

status

Enum

Not Required

Identifies an account status AccountStatus
Account Status:
ACTIVE - Active
CANCELLED - Cancelled
VERIFICATION_REQUIRED - Verification required
NOT_INITIALIZED - Not initialized
CANCELLED_NOT_INITIALIZED - Cancelled (not initialized)
CREDIT_HOLD - Credit Hold
ADMINISTRATIVE_HOLD - Administrative Hold
CREDIT_ADMINISTRATIVE_HOLD - Credit+Administrative Hold
TRANSFERRED_OUT - Transferred Out
ERASED - Erased

externalARManagement

Boolean

Not Required

false

Indicates that account balance are managed by external system

taxRegId

String

Not Required

Stores the tax registration ID of the account. On Get request returns “***”.

taxRegIdStatus

Enum

Not Required

Indicates customer tax registration status ID
Tax reg id status on bss account: not verified - 0, verified - 1

taxZoneId

String

Not Required

Indicates customer tax zone ID

taxStatus

Enum

Required

Indicates customer tax status
Tax status on bss account: provider - 0, personal - 1, company - 2

salesId

String

Not Required

Indicates customer sales ID

branchId

String

Not Required

Indicates customer branch ID

attributes

Array of Attribute

Not Required

Indicates customer attributes

creditTerm

BssCreditTerm

Not Required

Indicates customer credit terms

fullyRegistered

Boolean

Not Required

Indicates that customer is fully registered

birthday

String

Not Required

Indicates customer birthday

passport

String

Not Required

Indicates customer passport

companyNameLatin

String

Not Required

Indcates customer company name

systemId

Integer

Not Required

Indicates customer system ID

localeId

String

Required

Indicates customer locale

operatingUnit

Boolean

Not Required Read Only

Operating Unit status for Resellers

calendarBillingAlignment

CalendarBillingAlignment

Not Required

Calendar Billing Alignment

Relationship

NAME

TYPE

REQUIRED

DESCRIPTION

paAccount

PAAccount

Yes

Relation to PAAccount

customerClass

CustomerClass

No

Account customer class

ownCustomerClasses

Collection of CustomerClass

No

Collection of customer classes created by the account. The account can change customer class of own accounts (resellers or customers) only to customer class from this collection.

Custom Operations

OPERATION

VERB

PATH

RETURNS

Description

getAccountBalanceDetails

GET

/balance-details

Class with information about balances and top-up

Get account balance information for reseller: balances and default top-up payment method from BM. Uses BM.GetAvailableBalance method

getAvailableFunds

GET

/available-funds

Class with information about available funds

Get account available funds amount

setTopUpOptions

POST

/set-top-up-options

Set default top-up payment method for reseller

putOnCreditHold

POST

/putOnCreditHold

Put the account on Credit Hold

releaseFromCreditHold

POST

/releaseFromCreditHold

Release the account from Credit Hold

putOnAdminHold

POST

/putOnAdminHold

Put an account on administrative hold.

releaseFromAdminHold

POST

/releaseFromAdminHold

Release an account from administrative hold.

placeAccountCancellationOrder

POST

/cancelAccount

An AccountCancellationOrder structure.

Create a cancellation order to cancel an account and its subscriptions. Note that no cancellation order is created for accounts that do not have active subscriptions.

getTaxRegId

GET

/taxRegId

Account TaxRegId

Custom operation to get account TaxRegId

initializeReseller

POST

/initializeReseller

Initialize a reseller

getSynchronizationOptions

GET

/synchronizationOptions

An SynchronizationOptions structure.

Get synchronization options

setSynchronizationOptions

POST

/synchronizationOptions

Change synchronization options

getAccountBalanceDetails

HTTP Request

GET /aps/2/resources/{aps-id}/balance-details

Description

Get account balance information for reseller: balances and default top-up payment method from BM. Uses BM.GetAvailableBalance method

Returns

Class with information about balances and top-up

getAvailableFunds

HTTP Request

GET /aps/2/resources/{aps-id}/available-funds

Description

Get account available funds amount

Returns

Class with information about available funds

setTopUpOptions

HTTP Request

POST /aps/2/resources/{aps-id}/set-top-up-options

Description

Set default top-up payment method for reseller

Parameters

PARAMETER

TYPE

DESCRIPTION

params

BssAutoPaymentDetails

Returns

putOnCreditHold

HTTP Request

POST /aps/2/resources/{aps-id}/putOnCreditHold

Description

Put the account on Credit Hold

Parameters

PARAMETER

TYPE

DESCRIPTION

params

PutOnCreditHoldParams

Parameter PutOnCreditHoldParams

Returns

releaseFromCreditHold

HTTP Request

POST /aps/2/resources/{aps-id}/releaseFromCreditHold

Description

Release the account from Credit Hold

Parameters

PARAMETER

TYPE

DESCRIPTION

params

ReleaseFromCreditHoldParams

Parameter ReleaseFromCreditHoldParams

Returns

putOnAdminHold

HTTP Request

POST /aps/2/resources/{aps-id}/putOnAdminHold

Description

Put an account on administrative hold.

Returns

releaseFromAdminHold

HTTP Request

POST /aps/2/resources/{aps-id}/releaseFromAdminHold

Description

Release an account from administrative hold.

Returns

placeAccountCancellationOrder

HTTP Request

POST /aps/2/resources/{aps-id}/cancelAccount

Description

Create a cancellation order to cancel an account and its subscriptions. Note that no cancellation order is created for accounts that do not have active subscriptions.

Parameters

PARAMETER

TYPE

DESCRIPTION

params

AccountCancellationOrderParams

Contains the reason why that cancellation order is placed.

Returns

An AccountCancellationOrder structure.

getTaxRegId

HTTP Request

GET /aps/2/resources/{aps-id}/taxRegId

Description

Custom operation to get account TaxRegId

Returns

Account TaxRegId

initializeReseller

HTTP Request

POST /aps/2/resources/{aps-id}/initializeReseller

Description

Initialize a reseller

Parameters

PARAMETER

TYPE

DESCRIPTION

resellerParams

ResellerParams

ResellerParams

Returns

getSynchronizationOptions

HTTP Request

GET /aps/2/resources/{aps-id}/synchronizationOptions

Description

Get synchronization options

Returns

An SynchronizationOptions structure.

setSynchronizationOptions

HTTP Request

POST /aps/2/resources/{aps-id}/synchronizationOptions

Description

Change synchronization options

Parameters

PARAMETER

TYPE

DESCRIPTION

synchronizationOptions

SynchronizationOptions

SynchronizationOptions

Returns

Structures

Attribute

The structure that defines the custom attribute.

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

attributeID

String

Required

value

String

Not Required

The attribute value.

BssCreditTerm

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

duePeriod

Integer

Not Required

holdPeriod

Integer

Not Required

daysToDelay

Integer

Not Required

CalendarBillingAlignment

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

day

Integer

Not Required Read Only

BssPaymentMethod

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

internalId

Integer

Not Required

title

String

Not Required

type

Integer

Not Required

paymentSystem

String

Not Required

ownerAccountId

Integer

Not Required

bankAccountStatus

BankAccountStatus

Not Required

ownerName

String

Not Required

status

Status

Not Required

suspended

Boolean

Not Required

perCustomer

Boolean

Not Required

consentRequired

Boolean

Not Required

consentDeletionDate

String

Not Required

consentAgreementUrl

String

Not Required

BankAccountStatus

Status

BssAutoPaymentDetails

Reseller account default automatic payment information

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

topupThreshhold

Number

Not Required

Get topup threshold value for the reseller

autoTopupAmount

Number

Not Required

Get auto-topup amount for the reseller

autoTopupPerOrder

Boolean

Not Required

Get auto-topup per order setting for the reseller

autoTopupEnabled

Boolean

Not Required

Get auto-topup enable setting for the reseller

payToolID

Integer

Not Required

Get default topup pay tool for the reseller

vPayToolType

Integer

Not Required

Get default topup pay tool type setting for the reseller

status

Integer

Not Required

Get default topup pay tool status for the reseller

BssAccountBalanceDetails

Reseller account balance and default automatic payment information

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

accountId

Integer

Not Required

Get id of the reseller account

availableBalance

Number

Not Required

Get available balance of the reseller

availableBalanceStr

String

Not Required

Get available balance of the reseller in human readable format

currentPeriod

String

Not Required

Get current billing period of the reseller

currentBalance

Number

Not Required

Get current balance of the reseller

currentBalanceStr

String

Not Required

Get current balance of the reseller in human readable format

notInvoicedPurchases

Number

Not Required

Get sum of not billed reseller transantions of the reseller

notInvoicedPurchasesStr

String

Not Required

Get sum of not billed reseller transantions of the reseller in human readable format

paymentsByProvider

Number

Not Required

Get sum of payments processed through provider of the reseller

paymentsByProviderStr

String

Not Required

Get sum of payments processed through provider of the reseller in human readable format

availableCreditLimit

Number

Not Required

Get available credit limit of the reseller

availableCreditLimitStr

String

Not Required

Get available credit limit of the reseller in human readable format

outstandingInvoicesAmountEARM

Number

Not Required

Get outstanding invoices sum of the reseller from External ARManagement

outstandingInvoicesAmountEARMStr

String

Not Required

Get outstanding invoices sum of the reseller from External ARManagement in human readable format

externalCreditLimitEARM

Number

Not Required

Get credit limit of the reseller from External ARManagement

externalCreditLimitEARMStr

String

Not Required

Get credit limit of the reseller from External ARManagement in human readable format

externalAvailableProvisioningBalanceEARM

Number

Not Required

Get available balance of the reseller from External ARManagement

externalAvailableProvisioningBalanceEARMStr

String

Not Required

Get available balance of the reseller from External ARManagement in human readable format

paymentMethod

BssPaymentMethod

Not Required

Get default topup payment method of the reseller

autoPaymentDetails

BssAutoPaymentDetails

Not Required

Get default topup options of the reseller

externalARManagement

Boolean

Not Required

Get External ARManagement availability for the reseller

BssAvailableFunds

Type for returning available funds amount

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

availableFunds

Number

Not Required

availableFundsStr

String

Not Required

PutOnCreditHoldParams

Parameters of operation putOnCreditHold(String, PutOnCreditHoldParams).

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

policy

Enum

Required

Policy of put account on credit hold PutOnCreditHoldPolicy.
Policy of put account on credit hold:
ALL_SUBSCRIPTIONS - Suspend all subscriptions
UNPAID_SUBSCRIPTIONS - Suspend only unpaid subscriptions

reason

Enum

Required

Reason of put account on credit hold PutOnCreditHoldReason.

comment

String

Required

Comment of the reason of put account on credit hold.

ReleaseFromCreditHoldParams

Parameters of operation {@link BssAccountInformationOperation#releaseFromCreditHold(String, ReleaseFromCreditHoldParams)}

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

policy

Enum

Required

activeUntil

String

Not Required

comment

String

Required

AccountCancellationOrder

A structure of this kind contains cancellation order information.

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

message

String

Not Required

The message of a cancellation order placed for an account.

internalId

Integer

Not Required

The identifier of the placed cancellation order. This identifier can be used for tracking.

AccountCancellationOrderParams

Contains the reason why a cancellation order is placed.

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

reasonId

Integer

Required

The identifier of the reason code that belongs to that reason. The identifiers of reason codes can be obtained with the reasonCodes custom operation of the OrderManagementApplication APS resource.

comment

String

Required

The description of that reason.

ResellerParams

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

currency

String

Required

SynchronizationOptions

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

resellerSynchronizationOptions

Object

Required

Examples

Get Account and BSS Info

APS allows for getting the JSON representation of a required account and the linked BSS resource in one request or in separate requests, in either case using a Resource Query Language (RQL) filter. For example, if the account ID of a customer in the platform is 1000002, a request to get both APS resources, PAAccount and BssAccountInformation, will be:

GET /aps/2/collections/accounts?eq(id,1000002),select(bssAccountInfo)

If the external system needs the BssAccountInformation resources only, use the bss-accounts alias instead of accounts in the URL, and the other functions (select and eq) must be changed accordingly.

The response will look similar to the following (some data is missed out for brevity):

HTTP/1.1 200 OK

[{
   "aps": {
      "type": "http://parallels.com/aps/types/pa/account/1.2",
      "id": "f654862a-4903-4151-b2b4-ed65c055d120",
      ...
   },
   "companyName": "John Smith",
   "id": 1000002,
   "locked": false,
   "personal": true,
   "type": "CLIENT",
   "addressPostal": { /* ... */ },
   "adminContact": { /* ... */ },
   "billingContact": { /* ... */ },
   "techContact": { /* ... */ },
   "bssAccountInfo": {
      "aps": {
         "type": "http://parallels.com/pa/bss-account-info/1.0",
         "id": "7cad381f-0daf-4557-a53f-b5ea64566622",
         "status": "aps:ready",
         /* ... */
      },
      "branchId": "",
      "accountCurrencyCode": "USD",
      "taxStatus": "PERSONAL",
      "accountId": 1000002,
      "taxZoneId": "Provider-Country",
      "salesId": "",
      "taxRegIdStatus": "NOT_VERIFIED",
      "creditTerm": {
         "duePeriod": 10,
         "holdPeriod": 30
      },
      "externalARManagement": false,
      "taxRegId": "*****",
      "fullyRegistered": true,
      "localeId": "en",
      "status": "ACTIVE"
   }
}]

Warning

The taxRegId property is invisible since this is a part of sensitive personal data that cannot be disclosed in accordance with the personal data protection rules. Neither can it be used to search for a BssAccountInformation resource.

Create Account with BSS Info

POST /aps/2/resources

[
   { "aps":{
         "type":"http://parallels.com/pa/bss-account-info/1.0",
         "id":"ceeeffac-d2f2-4e36-ae4a-3fe27ed58097"
      },
      "taxStatus": "COMPANY",
      "localeId": "en_US",
      "attributes": [
         {
            "attributeID": "external_id",
            "value": "1111-2222-3333"
         }
      ]
   },
   { "aps":{
         "type":"http://parallels.com/aps/types/pa/account/1.2"
      },
      "type":"CLIENT",
      "personal":false,
      "companyName":"1st APS inc",
      "bssAccountInfo":{
         "aps": {
            "id":"ceeeffac-d2f2-4e36-ae4a-3fe27ed58097"
         }
      },
      "parent":{
         "aps":{
            "id":"4935d68d-4d26-4930-acf7-3871557305a9"
         }
      },
      "addressPostal":{
         "countryName":"us",
         "locality":"APS",
         "postalCode":"12345",
         "region":"VA",
         "streetAddress":"11, APS"
      },
      "adminContact":{
         "email":"isv1@aps.test",
         "givenName":"Mike",
         "familyName":"Wilson",
         "telVoice":"1#888#1234567"
      },
      "billingContact":{
         "email":"isv1@aps.test",
         "givenName":"Mike",
         "familyName":"Wilson",
         "telVoice":"1#888#1234567"
      },
      "techContact":{
         "email":"isv1@aps.test",
         "givenName":"Mike",
         "familyName":"Wilson",
         "telVoice":"1#888#1234567"
      }
   }
]

In response, the APS controller must return the “200 OK” code along with the JSON representation of the created APS resources. The provider control panel must show the new customer in both parts, OSS and BSS:

Update BSS Info

For example, to update the company name, send:

PUT /aps/2/resources/6344049b-8763-417d-837b-490ba0896f41

{
  "aps": {
    "type": "http://parallels.com/aps/types/pa/account/1.2",
    "id": "6344049b-8763-417d-837b-490ba0896f41"
  },
  "companyName": "John Smith and brothers"
}

In response, the APS controller will send the full JSON representation of the updated account.

Custom Operations

  • Get the account’s funds available for payment:

    GET /aps/2/resources/77afbaa8-2e1c-4227-8a9e-70498bf0f5d8/available-funds
    

    The response displays whether there is a certain sum on payment and credit memo documents that can be used for payment, for example:

    HTTP/1.1 200 OK
    
    {
      "availableFunds": 13.06,
      "availableFundsStr": "$13.06"
    }
    

    The availableFunds field can be greater or equal zero. If it is greater than zero, you can use the available funds for payment in a sales order.

  • Put the account on credit hold using the ALL_SUBSCRIPTIONS policy:

    POST /aps/2/resources/ceeeffac-d2f2-4e36-ae4a-3fe27ed58097/putOnCreditHold
    
    {
       "policy": "ALL_SUBSCRIPTIONS",
       "reason": "ACCOUNT_OVERDUE",
       "comment": "Account put on hold due to unpaid invoices, ID #1000123 and #1000125."
    }
    
  • Check the current status of the account:

    GET /aps/2/resources/ceeeffac-d2f2-4e36-ae4a-3fe27ed58097
    

    The response must show the CREDIT_HOLD status:

    HTTP/1.1 200 OK
    
    {
       "aps": {
          "type": "http://parallels.com/pa/bss-account-info/1.0",
          "id": "ceeeffac-d2f2-4e36-ae4a-3fe27ed58097",
          "status": "aps:ready",
          /* ... */
       },
       "accountCurrencyCode": "USD",
       "accountId": 1000001,
       "status": "CREDIT_HOLD"
    }
    
  • Release the account from credit hold temporarily:

    POST /aps/2/resources/ceeeffac-d2f2-4e36-ae4a-3fe27ed58097/releaseFromCreditHold
    
    {
       "policy": "TEMPORARY",
       "activeUntil": "2017-09-07T13:44:01Z",
       "comment": "Account temporarily released from hold per approval ID #23231."
    }
    
  • Initialize a reseller by setting a currency code for it:

    POST /aps/2/resources/3719e346-fe3d-4a69-b146-7b7362ae5e6e/initializeReseller
    
    { "currency": "USD" }