Agicap Client Risk (v1)

Set credit limits on Accounts Receivable clients.

OpenAPI Specification

agicap-client-risk-v1-openapi.json Raw ↑
{
 "components": {
  "schemas": {
   "ClientCreditLimitItem": {
    "properties": {
     "clientExternalId": {
      "description": "Identifier from the ERP or external system",
      "example": "client_1",
      "nullable": true,
      "type": "string"
     },
     "clientId": {
      "description": "Internal identifier of the client",
      "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "type": "string"
     },
     "creditLimit": {
      "allOf": [
       {
        "$ref": "#/components/schemas/CreditLimit"
       }
      ],
      "description": "Credit limit details if set",
      "nullable": true
     }
    },
    "required": [
     "clientId",
     "clientExternalId",
     "creditLimit"
    ],
    "type": "object"
   },
   "CreateClientCreditLimitFailureEnum": {
    "description": "Reason why the credit limit could not be created",
    "enum": [
     "CLIENT_NOT_FOUND",
     "CREDIT_LIMIT_ALREADY_EXISTS"
    ],
    "type": "string"
   },
   "CreateClientCreditLimitsRequest": {
    "properties": {
     "creditLimits": {
      "description": "List of credit limits to add. Max 1000 items per request.",
      "items": {
       "$ref": "#/components/schemas/CreditLimitToCreate"
      },
      "type": "array"
     }
    },
    "required": [
     "creditLimits"
    ],
    "type": "object"
   },
   "CreateClientCreditLimitsResponse": {
    "properties": {
     "created": {
      "description": "Successfully created credit limits",
      "items": {
       "$ref": "#/components/schemas/CreditLimitCreated"
      },
      "type": "array"
     },
     "notCreated": {
      "description": "Credit limits that failed to be created",
      "items": {
       "$ref": "#/components/schemas/CreditLimitNotCreated"
      },
      "type": "array"
     }
    },
    "required": [
     "created",
     "notCreated"
    ],
    "type": "object"
   },
   "CreditLimit": {
    "properties": {
     "currency": {
      "allOf": [
       {
        "$ref": "#/components/schemas/Currency"
       }
      ],
      "description": "Currency of the credit limit"
     },
     "limit": {
      "description": "Credit limit amount",
      "example": 10000,
      "type": "number"
     },
     "limitCents": {
      "deprecated": true,
      "description": "Credit limit amount in cents",
      "example": 1000000,
      "type": "number"
     }
    },
    "required": [
     "limitCents",
     "limit",
     "currency"
    ],
    "type": "object"
   },
   "CreditLimitCreated": {
    "properties": {
     "clientExternalId": {
      "description": "Identifier from the ERP or external system",
      "example": "CLIENT-123",
      "type": "string"
     }
    },
    "required": [
     "clientExternalId"
    ],
    "type": "object"
   },
   "CreditLimitNotCreated": {
    "properties": {
     "clientExternalId": {
      "description": "Identifier from the ERP or external system",
      "example": "CLIENT-123",
      "type": "string"
     },
     "reason": {
      "allOf": [
       {
        "$ref": "#/components/schemas/CreateClientCreditLimitFailureEnum"
       }
      ],
      "description": "Reason why the credit limit could not be created"
     }
    },
    "required": [
     "clientExternalId",
     "reason"
    ],
    "type": "object"
   },
   "CreditLimitNotUpdated": {
    "properties": {
     "clientExternalId": {
      "description": "Identifier from the ERP or external system",
      "example": "CLIENT-123",
      "type": "string"
     },
     "reason": {
      "allOf": [
       {
        "$ref": "#/components/schemas/UpdateClientCreditLimitFailureEnum"
       }
      ],
      "description": "Reason why the credit limit could not be updated"
     }
    },
    "required": [
     "clientExternalId",
     "reason"
    ],
    "type": "object"
   },
   "CreditLimitToCreate": {
    "properties": {
     "clientExternalId": {
      "description": "Identifier from the ERP or external system. Max 1000 characters. Value is trimmed.",
      "example": "CLIENT-123",
      "maxLength": 1000,
      "type": "string"
     },
     "currency": {
      "allOf": [
       {
        "$ref": "#/components/schemas/Currency"
       }
      ],
      "description": "Currency of the credit limit"
     },
     "limitCents": {
      "description": "Credit limit amount in cents. Must be >= 0.",
      "example": 1000000,
      "minimum": 0,
      "type": "number"
     }
    },
    "required": [
     "clientExternalId",
     "limitCents",
     "currency"
    ],
    "type": "object"
   },
   "CreditLimitToUpdate": {
    "properties": {
     "clientExternalId": {
      "description": "Identifier from the ERP or external system. Max 1000 characters. Value is trimmed.",
      "example": "CLIENT-123",
      "maxLength": 1000,
      "type": "string"
     },
     "currency": {
      "allOf": [
       {
        "$ref": "#/components/schemas/Currency"
       }
      ],
      "description": "Currency of the credit limit"
     },
     "limitCents": {
      "description": "Credit limit amount in cents. Must be >= 0.",
      "example": 1000000,
      "minimum": 0,
      "type": "number"
     }
    },
    "required": [
     "clientExternalId",
     "limitCents",
     "currency"
    ],
    "type": "object"
   },
   "CreditLimitUpdated": {
    "properties": {
     "clientExternalId": {
      "description": "Identifier from the ERP or external system",
      "example": "CLIENT-123",
      "type": "string"
     }
    },
    "required": [
     "clientExternalId"
    ],
    "type": "object"
   },
   "Currency": {
    "description": "Currency of the credit limit",
    "enum": [
     "AED",
     "AFN",
     "ALL",
     "AMD",
     "ANG",
     "AOA",
     "ARS",
     "AUD",
     "AWG",
     "AZN",
     "BAM",
     "BBD",
     "BDT",
     "BGN",
     "BHD",
     "BIF",
     "BMD",
     "BND",
     "BOB",
     "BRL",
     "BSD",
     "BTC",
     "BTN",
     "BWP",
     "BYN",
     "BYR",
     "BZD",
     "CAD",
     "CDF",
     "CHF",
     "CLF",
     "CLP",
     "CNY",
     "COP",
     "CRC",
     "CUC",
     "CUP",
     "CVE",
     "CZK",
     "DJF",
     "DKK",
     "DOP",
     "DZD",
     "EGP",
     "ERN",
     "ETB",
     "EUR",
     "FJD",
     "FKP",
     "GBP",
     "GEL",
     "GGP",
     "GHS",
     "GIP",
     "GMD",
     "GNF",
     "GTQ",
     "GYD",
     "HKD",
     "HNL",
     "HRK",
     "HTG",
     "HUF",
     "IDR",
     "ILS",
     "IMP",
     "INR",
     "IQD",
     "IRR",
     "ISK",
     "JEP",
     "JMD",
     "JOD",
     "JPY",
     "KES",
     "KGS",
     "KHR",
     "KMF",
     "KPW",
     "KRW",
     "KWD",
     "KYD",
     "KZT",
     "LAK",
     "LBP",
     "LKR",
     "LRD",
     "LSL",
     "LTL",
     "LVL",
     "LYD",
     "MAD",
     "MDL",
     "MGA",
     "MKD",
     "MMK",
     "MNT",
     "MOP",
     "MRO",
     "MUR",
     "MVR",
     "MWK",
     "MXN",
     "MYR",
     "MZN",
     "NAD",
     "NGN",
     "NIO",
     "NOK",
     "NPR",
     "NZD",
     "OMR",
     "PAB",
     "PEN",
     "PGK",
     "PHP",
     "PKR",
     "PLN",
     "PYG",
     "QAR",
     "RON",
     "RSD",
     "RUB",
     "RWF",
     "SAR",
     "SBD",
     "SCR",
     "SDG",
     "SEK",
     "SGD",
     "SHP",
     "SLL",
     "SOS",
     "SRD",
     "STD",
     "SVC",
     "SYP",
     "SZL",
     "THB",
     "TJS",
     "TMT",
     "TND",
     "TOP",
     "TRY",
     "TTD",
     "TWD",
     "TZS",
     "UAH",
     "UGX",
     "USD",
     "UYU",
     "UZS",
     "VEF",
     "VND",
     "VUV",
     "WST",
     "XAF",
     "XAG",
     "XAU",
     "XCD",
     "XDR",
     "XOF",
     "XPF",
     "YER",
     "ZAR",
     "ZMK",
     "ZMW",
     "ZWL",
     "BOV",
     "COU",
     "MRU",
     "XUA",
     "MXV",
     "STN",
     "SLE",
     "XSU",
     "SSD",
     "CHE",
     "CHW",
     "USN",
     "UYI",
     "UYW",
     "VES",
     "VED",
     "XBA",
     "XBB",
     "XBC",
     "XBD",
     "XTS",
     "XXX",
     "XPD",
     "XPT"
    ],
    "type": "string"
   },
   "DeleteClientCreditLimitsFailureEnum": {
    "description": "Reason for failure to delete client credit limit",
    "enum": [
     "CLIENT_NOT_FOUND",
     "CREDIT_LIMIT_NOT_FOUND"
    ],
    "type": "string"
   },
   "DeleteClientCreditLimitsRequest": {
    "properties": {
     "clientExternalIds": {
      "description": "List of client external IDs to delete credit limits for. Max 1000 items per request. Each ID: max 1000 characters, value is trimmed.",
      "example": [
       "client-001",
       "client-002"
      ],
      "items": {
       "type": "string"
      },
      "type": "array"
     }
    },
    "required": [
     "clientExternalIds"
    ],
    "type": "object"
   },
   "DeleteClientCreditLimitsResponse": {
    "properties": {
     "deleted": {
      "description": "List of successfully deleted client credit limits",
      "items": {
       "$ref": "#/components/schemas/DeletedClientCreditLimit"
      },
      "type": "array"
     },
     "notDeleted": {
      "description": "List of client credit limits that could not be deleted with reasons",
      "items": {
       "$ref": "#/components/schemas/NotDeletedClientCreditLimit"
      },
      "type": "array"
     }
    },
    "required": [
     "deleted",
     "notDeleted"
    ],
    "type": "object"
   },
   "DeleteInvoicesCompletedEvent": {
    "properties": {
     "deleted": {
      "type": "number"
     },
     "entityId": {
      "type": "number"
     },
     "notDeleted": {
      "type": "number"
     },
     "total": {
      "type": "number"
     },
     "workflowId": {
      "type": "string"
     }
    },
    "required": [
     "workflowId",
     "entityId",
     "deleted",
     "notDeleted",
     "total"
    ],
    "type": "object"
   },
   "DeleteInvoicesFailedEvent": {
    "properties": {
     "deleted": {
      "type": "number"
     },
     "entityId": {
      "type": "number"
     },
     "error": {
      "type": "string"
     },
     "notDeleted": {
      "type": "number"
     },
     "total": {
      "type": "number"
     },
     "workflowId": {
      "type": "string"
     }
    },
    "required": [
     "workflowId",
     "entityId",
     "error",
     "deleted",
     "notDeleted",
     "total"
    ],
    "type": "object"
   },
   "DeleteInvoicesProgressEvent": {
    "properties": {
     "deleted": {
      "type": "number"
     },
     "entityId": {
      "type": "number"
     },
     "notDeleted": {
      "type": "number"
     },
     "total": {
      "type": "number"
     },
     "workflowId": {
      "type": "string"
     }
    },
    "required": [
     "workflowId",
     "entityId",
     "deleted",
     "notDeleted",
     "total"
    ],
    "type": "object"
   },
   "DeletedClientCreditLimit": {
    "properties": {
     "clientExternalId": {
      "description": "Identifier from the ERP or external system",
      "example": "client-001",
      "type": "string"
     }
    },
    "required": [
     "clientExternalId"
    ],
    "type": "object"
   },
   "GetClientCreditLimitsResponse": {
    "properties": {
     "items": {
      "items": {
       "$ref": "#/components/schemas/ClientCreditLimitItem"
      },
      "type": "array"
     },
     "pagination": {
      "$ref": "#/components/schemas/PaginationMetadataDto"
     }
    },
    "required": [
     "items",
     "pagination"
    ],
    "type": "object"
   },
   "LinkDocumentsCompletedEvent": {
    "properties": {
     "entityId": {
      "type": "number"
     },
     "linkedDocuments": {
      "type": "number"
     },
     "workflowId": {
      "type": "string"
     }
    },
    "required": [
     "workflowId",
     "entityId",
     "linkedDocuments"
    ],
    "type": "object"
   },
   "LinkDocumentsFailedEvent": {
    "properties": {
     "entityId": {
      "type": "number"
     },
     "error": {
      "type": "string"
     },
     "linkedDocuments": {
      "type": "number"
     },
     "workflowId": {
      "type": "string"
     }
    },
    "required": [
     "workflowId",
     "entityId",
     "linkedDocuments",
     "error"
    ],
    "type": "object"
   },
   "LinkDocumentsProgressEvent": {
    "properties": {
     "entityId": {
      "type": "number"
     },
     "linkedDocuments": {
      "type": "number"
     },
     "workflowId": {
      "type": "string"
     }
    },
    "required": [
     "workflowId",
     "entityId",
     "linkedDocuments"
    ],
    "type": "object"
   },
   "NotDeletedClientCreditLimit": {
    "properties": {
     "clientExternalId": {
      "description": "Identifier from the ERP or external system",
      "example": "client-002",
      "type": "string"
     },
     "reason": {
      "allOf": [
       {
        "$ref": "#/components/schemas/DeleteClientCreditLimitsFailureEnum"
       }
      ],
      "description": "Reason for failure to delete client credit limit"
     }
    },
    "required": [
     "clientExternalId",
     "reason"
    ],
    "type": "object"
   },
   "PaginationMetadataDto": {
    "properties": {
     "after": {
      "nullable": true,
      "type": "string"
     },
     "before": {
      "nullable": true,
      "type": "string"
     }
    },
    "required": [
     "before",
     "after"
    ],
    "type": "object"
   },
   "ReceivablesSignalREventMap": {
    "properties": {
     "DeleteInvoicesCompleted": {
      "$ref": "#/components/schemas/DeleteInvoicesCompletedEvent"
     },
     "DeleteInvoicesFailed": {
      "$ref": "#/components/schemas/DeleteInvoicesFailedEvent"
     },
     "DeleteInvoicesProgress": {
      "$ref": "#/components/schemas/DeleteInvoicesProgressEvent"
     },
     "LinkDocumentsCompleted": {
      "$ref": "#/components/schemas/LinkDocumentsCompletedEvent"
     },
     "LinkDocumentsFailed": {
      "$ref": "#/components/schemas/LinkDocumentsFailedEvent"
     },
     "LinkDocumentsProgress": {
      "$ref": "#/components/schemas/LinkDocumentsProgressEvent"
     }
    },
    "required": [
     "DeleteInvoicesProgress",
     "DeleteInvoicesCompleted",
     "DeleteInvoicesFailed",
     "LinkDocumentsProgress",
     "LinkDocumentsCompleted",
     "LinkDocumentsFailed"
    ],
    "type": "object"
   },
   "UpdateClientCreditLimitFailureEnum": {
    "description": "Reason why the credit limit could not be updated",
    "enum": [
     "CLIENT_NOT_FOUND",
     "CREDIT_LIMIT_NOT_FOUND"
    ],
    "type": "string"
   },
   "UpdateClientCreditLimitsRequest": {
    "properties": {
     "creditLimits": {
      "description": "List of credit limits to update. Max 1000 items per request.",
      "items": {
       "$ref": "#/components/schemas/CreditLimitToUpdate"
      },
      "type": "array"
     }
    },
    "required": [
     "creditLimits"
    ],
    "type": "object"
   },
   "UpdateClientCreditLimitsResponse": {
    "properties": {
     "notUpdated": {
      "description": "Credit limits that failed to be updated",
      "items": {
       "$ref": "#/components/schemas/CreditLimitNotUpdated"
      },
      "type": "array"
     },
     "updated": {
      "description": "Successfully updated credit limits",
      "items": {
       "$ref": "#/components/schemas/CreditLimitUpdated"
      },
      "type": "array"
     }
    },
    "required": [
     "updated",
     "notUpdated"
    ],
    "type": "object"
   }
  },
  "securitySchemes": {
   "bearer": {
    "bearerFormat": "JWT",
    "scheme": "bearer",
    "type": "http"
   },
   "bearerAuth": {
    "bearerFormat": "OPAQUE",
    "scheme": "bearer",
    "type": "http"
   }
  }
 },
 "info": {
  "contact": {},
  "title": "Client Risk",
  "version": "v1"
 },
 "openapi": "3.0.0",
 "paths": {
  "/public/client-risk/v1/entities/{entityId}/credit-limits": {
   "delete": {
    "description": "Delete client credit limits in bulk by clientExternalId. Maximum 1000 items per request.",
    "operationId": "Delete client credit limits",
    "parameters": [
     {
      "in": "path",
      "name": "entityId",
      "required": true,
      "schema": {
       "format": "int",
       "type": "number"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/DeleteClientCreditLimitsRequest"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/DeleteClientCreditLimitsResponse"
        }
       }
      },
      "description": ""
     },
     "401": {
      "description": "Unauthorized request."
     },
     "403": {
      "description": "Forbidden request."
     },
     "429": {
      "description": "Too many requests. Please try again later."
     }
    },
    "security": [
     {
      "bearer": []
     },
     {
      "bearerAuth": []
     }
    ],
    "tags": [
     "Credit limit"
    ],
    "x-codegen-request-body-name": "body"
   },
   "get": {
    "description": "Retrieve a paginated list of client credit limits for the given entity.",
    "operationId": "List client credit limits",
    "parameters": [
     {
      "in": "query",
      "name": "pageSize",
      "schema": {
       "type": "number"
      }
     },
     {
      "description": "Filter credit limits by client external identifiers. Supports multiple values.",
      "in": "query",
      "name": "clientExternalIds",
      "schema": {
       "example": [
        "ext-client-001",
        "ext-client-002"
       ],
       "items": {
        "type": "string"
       },
       "type": "array"
      }
     },
     {
      "description": "Opaque pagination token for retrieving the next page",
      "in": "query",
      "name": "token",
      "schema": {
       "format": "base64url",
       "type": "string"
      }
     },
     {
      "in": "path",
      "name": "entityId",
      "required": true,
      "schema": {
       "format": "int",
       "type": "number"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/GetClientCreditLimitsResponse"
        }
       }
      },
      "description": ""
     },
     "401": {
      "description": "Unauthorized request."
     },
     "403": {
      "description": "Forbidden request."
     },
     "429": {
      "description": "Too many requests. Please try again later."
     }
    },
    "security": [
     {
      "bearer": []
     },
     {
      "bearerAuth": []
     }
    ],
    "tags": [
     "Credit limit"
    ],
    "x-codegen-request-body-name": "body"
   },
   "post": {
    "description": "Create client credit limits in bulk by clientExternalId. Maximum 1000 items per request.",
    "operationId": "Create client credit limits",
    "parameters": [
     {
      "in": "path",
      "name": "entityId",
      "required": true,
      "schema": {
       "format": "int",
       "type": "number"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/CreateClientCreditLimitsRequest"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/CreateClientCreditLimitsResponse"
        }
       }
      },
      "description": ""
     },
     "401": {
      "description": "Unauthorized request."
     },
     "403": {
      "description": "Forbidden request."
     },
     "429": {
      "description": "Too many requests. Please try again later."
     }
    },
    "security": [
     {
      "bearer": []
     },
     {
      "bearerAuth": []
     }
    ],
    "tags": [
     "Credit limit"
    ],
    "x-codegen-request-body-name": "body"
   },
   "put": {
    "description": "Update client credit limits in bulk by clientExternalId. Non-existing clients or clients without a credit limit are ignored. Maximum 1000 items per request.",
    "operationId": "Update client credit limits",
    "parameters": [
     {
      "in": "path",
      "name": "entityId",
      "required": true,
      "schema": {
       "format": "int",
       "type": "number"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/UpdateClientCreditLimitsRequest"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/UpdateClientCreditLimitsResponse"
        }
       }
      },
      "description": ""
     },
     "401": {
      "description": "Unauthorized request."
     },
     "403": {
      "description": "Forbidden request."
     },
     "429": {
      "description": "Too many requests. Please try again later."
     }
    },
    "security": [
     {
      "bearer": []
     },
     {
      "bearerAuth": []
     }
    ],
    "tags": [
     "Credit limit"
    ],
    "x-codegen-request-body-name": "body"
   }
  }
 },
 "servers": [
  {
   "url": "https://api.agicap.com"
  },
  {
   "url": "https://api.agicap.internal"
  }
 ]
}