Ulsav Docs

Platform

List every invoice

GET
/api/v1/platform/invoices

Query Parameters

limit?integer

Page size (1-100)

Formatint64
Range1 <= value <= 100
Default20
cursor?string

Opaque cursor from meta.nextCursor

includeTotal?boolean

Set false to omit meta.total

Defaulttrue

Response Body

OK

application/json
  1. response
$schema?string

A URL to the JSON Schema for this object.

Formaturi
data*array<>|null
meta*
Example Request
curl -X GET 'https://example.com/api/v1/platform/invoices'
Example Response
{  "$schema": "https://example.com/schemas/PageInvoice.json",  "data": [    {      "$schema": "https://example.com/schemas/Invoice.json",      "buyerEmail": "string",      "buyerName": "string",      "buyerTaxId": "string",      "currency": "string",      "id": "string",      "issuedAt": "2019-08-24T14:15:22Z",      "kind": "string",      "lines": [        {          "description": "string",          "hsnSac": "string",          "lineTotalMinor": 0,          "quantity": 0,          "taxMinor": 0,          "taxRateBps": 0,          "unitPriceMinor": 0        }      ],      "number": "string",      "orderId": "string",      "organizationId": "string",      "placeOfSupply": "string",      "reason": "string",      "seller": {        "address": "string",        "name": "string",        "state": "string",        "taxId": "string"      },      "sellerKind": "string",      "taxComponents": [        {          "amountMinor": 0,          "baseMinor": 0,          "effect": "string",          "jurisdiction": "string",          "key": "string",          "kind": "string",          "name": "string",          "rateBps": 0        }      ],      "taxInclusive": true,      "taxRegime": "string",      "taxRuleVersion": "string",      "taxableMinor": 0,      "totalMinor": 0    }  ],  "meta": {    "hasMore": true,    "limit": 0,    "nextCursor": "string",    "total": 0  }}
GET
/api/v1/platform/kyc

Query Parameters

limit?integer

Page size (1-100)

Formatint64
Range1 <= value <= 100
Default20
cursor?string

Opaque cursor from meta.nextCursor

includeTotal?boolean

Set false to omit meta.total

Defaulttrue

Response Body

OK

application/json
  1. response
$schema?string

A URL to the JSON Schema for this object.

Formaturi
data*array<>|null
meta*
Example Request
curl -X GET 'https://example.com/api/v1/platform/kyc'
Example Response
{  "$schema": "https://example.com/schemas/PageKYCProfile.json",  "data": [    {      "$schema": "https://example.com/schemas/KYCProfile.json",      "contactEmail": "string",      "contactName": "string",      "contactPhone": "string",      "createdAt": "2019-08-24T14:15:22Z",      "entityType": "string",      "legalName": "string",      "organizationId": "string",      "pan": "string",      "registeredAddress": "string",      "registeredCity": "string",      "registeredCountry": "string",      "registeredPostalCode": "string",      "registeredState": "string",      "rejectionReason": "string",      "reviewedAt": "2019-08-24T14:15:22Z",      "reviewedBy": "string",      "status": "string",      "submittedAt": "2019-08-24T14:15:22Z",      "taxIdentifier": "string",      "updatedAt": "2019-08-24T14:15:22Z"    }  ],  "meta": {    "hasMore": true,    "limit": 0,    "nextCursor": "string",    "total": 0  }}
GET
/api/v1/platform/kyc/{organization_id}

Path Parameters

organization_id*string

Response Body

OK

application/json
  1. response
$schema?string

A URL to the JSON Schema for this object.

Formaturi
documents*array<>|null
eligibility*
profile*
settlement*
Example Request
curl -X GET 'https://example.com/api/v1/platform/kyc/string'
Example Response
{  "$schema": "https://example.com/schemas/Overview.json",  "documents": [    {      "$schema": "https://example.com/schemas/KYCDocument.json",      "contentType": "string",      "createdAt": "2019-08-24T14:15:22Z",      "finalizedAt": "2019-08-24T14:15:22Z",      "id": "string",      "kind": "string",      "sizeBytes": 0,      "status": "string"    }  ],  "eligibility": {    "eligible": true,    "kycStatus": "string",    "settlementVerified": true  },  "profile": {    "$schema": "https://example.com/schemas/KYCProfile.json",    "contactEmail": "string",    "contactName": "string",    "contactPhone": "string",    "createdAt": "2019-08-24T14:15:22Z",    "entityType": "string",    "legalName": "string",    "organizationId": "string",    "pan": "string",    "registeredAddress": "string",    "registeredCity": "string",    "registeredCountry": "string",    "registeredPostalCode": "string",    "registeredState": "string",    "rejectionReason": "string",    "reviewedAt": "2019-08-24T14:15:22Z",    "reviewedBy": "string",    "status": "string",    "submittedAt": "2019-08-24T14:15:22Z",    "taxIdentifier": "string",    "updatedAt": "2019-08-24T14:15:22Z"  },  "settlement": {    "$schema": "https://example.com/schemas/SettlementAccount.json",    "accountNumber": "string",    "beneficiaryName": "string",    "branchCode": "string",    "createdAt": "2019-08-24T14:15:22Z",    "id": "string",    "ifsc": "string",    "updatedAt": "2019-08-24T14:15:22Z",    "verificationNotes": "string",    "verified": true,    "verifiedAt": "2019-08-24T14:15:22Z"  }}
POST
/api/v1/platform/kyc/{organization_id}/approve

Path Parameters

organization_id*string

Response Body

OK

application/json
  1. response
$schema?string

A URL to the JSON Schema for this object.

Formaturi
contactEmail*string
contactName*string
contactPhone*string
createdAt*string
Formatdate-time
entityType*string
legalName*string
organizationId*string
pan*string
registeredAddress*string
registeredCity*string
registeredCountry*string
registeredPostalCode*string
registeredState*string
rejectionReason?string
reviewedAt?string
Formatdate-time
reviewedBy?string
status*string
submittedAt?string
Formatdate-time
taxIdentifier*string
updatedAt*string
Formatdate-time
Example Request
curl -X POST 'https://example.com/api/v1/platform/kyc/string/approve'
Example Response
{  "$schema": "https://example.com/schemas/KYCProfile.json",  "contactEmail": "string",  "contactName": "string",  "contactPhone": "string",  "createdAt": "2019-08-24T14:15:22Z",  "entityType": "string",  "legalName": "string",  "organizationId": "string",  "pan": "string",  "registeredAddress": "string",  "registeredCity": "string",  "registeredCountry": "string",  "registeredPostalCode": "string",  "registeredState": "string",  "rejectionReason": "string",  "reviewedAt": "2019-08-24T14:15:22Z",  "reviewedBy": "string",  "status": "string",  "submittedAt": "2019-08-24T14:15:22Z",  "taxIdentifier": "string",  "updatedAt": "2019-08-24T14:15:22Z"}
GET
/api/v1/platform/kyc/{organization_id}/documents/{document_id}/url

Path Parameters

organization_id*string
document_id*string

Response Body

OK

application/json
  1. response
$schema?string

A URL to the JSON Schema for this object.

Formaturi
url*string
Example Request
curl -X GET 'https://example.com/api/v1/platform/kyc/string/documents/string/url'
Example Response
{  "$schema": "https://example.com/schemas/DocumentURLOutputBody.json",  "url": "string"}
POST
/api/v1/platform/kyc/{organization_id}/reject

Path Parameters

organization_id*string

Request Body

application/json
  1. body
reason*string

Response Body

OK

application/json
  1. response
$schema?string

A URL to the JSON Schema for this object.

Formaturi
contactEmail*string
contactName*string
contactPhone*string
createdAt*string
Formatdate-time
entityType*string
legalName*string
organizationId*string
pan*string
registeredAddress*string
registeredCity*string
registeredCountry*string
registeredPostalCode*string
registeredState*string
rejectionReason?string
reviewedAt?string
Formatdate-time
reviewedBy?string
status*string
submittedAt?string
Formatdate-time
taxIdentifier*string
updatedAt*string
Formatdate-time
Example Request
curl -X POST 'https://example.com/api/v1/platform/kyc/string/reject' \  -H 'Content-Type: application/json' \  -d '{  "reason": "string"}'
Example Response
{  "$schema": "https://example.com/schemas/KYCProfile.json",  "contactEmail": "string",  "contactName": "string",  "contactPhone": "string",  "createdAt": "2019-08-24T14:15:22Z",  "entityType": "string",  "legalName": "string",  "organizationId": "string",  "pan": "string",  "registeredAddress": "string",  "registeredCity": "string",  "registeredCountry": "string",  "registeredPostalCode": "string",  "registeredState": "string",  "rejectionReason": "string",  "reviewedAt": "2019-08-24T14:15:22Z",  "reviewedBy": "string",  "status": "string",  "submittedAt": "2019-08-24T14:15:22Z",  "taxIdentifier": "string",  "updatedAt": "2019-08-24T14:15:22Z"}
POST
/api/v1/platform/kyc/{organization_id}/settlement/verify

Path Parameters

organization_id*string

Request Body

application/json
  1. body
notes*string
pgAccountNumber*string

Response Body

OK

application/json
  1. response
$schema?string

A URL to the JSON Schema for this object.

Formaturi
accountNumber*string
beneficiaryName*string
branchCode*string
createdAt*string
Formatdate-time
id*string
ifsc*string
updatedAt*string
Formatdate-time
verificationNotes?string
verified*boolean
verifiedAt?string
Formatdate-time
Example Request
curl -X POST 'https://example.com/api/v1/platform/kyc/string/settlement/verify' \  -H 'Content-Type: application/json' \  -d '{  "notes": "string",  "pgAccountNumber": "string"}'
Example Response
{  "$schema": "https://example.com/schemas/SettlementAccount.json",  "accountNumber": "string",  "beneficiaryName": "string",  "branchCode": "string",  "createdAt": "2019-08-24T14:15:22Z",  "id": "string",  "ifsc": "string",  "updatedAt": "2019-08-24T14:15:22Z",  "verificationNotes": "string",  "verified": true,  "verifiedAt": "2019-08-24T14:15:22Z"}
GET
/api/v1/platform/me

Response Body

OK

application/json
  1. response
$schema?string

A URL to the JSON Schema for this object.

Formaturi
accountId*string
capabilities*array<string>|null
role*string
Example Request
curl -X GET 'https://example.com/api/v1/platform/me'
Example Response
{  "$schema": "https://example.com/schemas/MeOutputBody.json",  "accountId": "string",  "capabilities": [    "string"  ],  "role": "string"}
GET
/api/v1/platform/payout-policies/{organization_id}

Path Parameters

organization_id*string

Response Body

OK

application/json
  1. response
$schema?string

A URL to the JSON Schema for this object.

Formaturi
minPayoutMinor*integer
Formatint64
requiresEventCompletion*boolean
reserveBps*integer
Formatint64
reserveFixedMinor*integer
Formatint64
source*string
Example Request
curl -X GET 'https://example.com/api/v1/platform/payout-policies/string'
Example Response
{  "$schema": "https://example.com/schemas/PayoutPolicy.json",  "minPayoutMinor": 0,  "requiresEventCompletion": true,  "reserveBps": 0,  "reserveFixedMinor": 0,  "source": "string"}
PUT
/api/v1/platform/payout-policies/{organization_id}

Path Parameters

organization_id*string

Request Body

application/json
  1. body
minPayoutMinor*integer
Formatint64
requiresEventCompletion*boolean
reserveBps*integer
Formatint64
reserveFixedMinor*integer
Formatint64

Response Body

OK

application/json
  1. response
$schema?string

A URL to the JSON Schema for this object.

Formaturi
minPayoutMinor*integer
Formatint64
requiresEventCompletion*boolean
reserveBps*integer
Formatint64
reserveFixedMinor*integer
Formatint64
source*string
Example Request
curl -X PUT 'https://example.com/api/v1/platform/payout-policies/string' \  -H 'Content-Type: application/json' \  -d '{  "minPayoutMinor": 0,  "requiresEventCompletion": true,  "reserveBps": 0,  "reserveFixedMinor": 0}'
Example Response
{  "$schema": "https://example.com/schemas/PayoutPolicy.json",  "minPayoutMinor": 0,  "requiresEventCompletion": true,  "reserveBps": 0,  "reserveFixedMinor": 0,  "source": "string"}
GET
/api/v1/platform/payouts

Query Parameters

limit?integer

Page size (1-100)

Formatint64
Range1 <= value <= 100
Default20
cursor?string

Opaque cursor from meta.nextCursor

includeTotal?boolean

Set false to omit meta.total

Defaulttrue

Response Body

OK

application/json
  1. response
$schema?string

A URL to the JSON Schema for this object.

Formaturi
data*array<>|null
meta*
Example Request
curl -X GET 'https://example.com/api/v1/platform/payouts'
Example Response
{  "$schema": "https://example.com/schemas/PagePayout.json",  "data": [    {      "$schema": "https://example.com/schemas/Payout.json",      "amountMinorUnits": 0,      "bankReference": "string",      "createdAt": "2019-08-24T14:15:22Z",      "currency": "string",      "failureReason": "string",      "id": "string",      "merchantAccountId": "string",      "orderId": "string",      "organizationId": "string",      "providerOrderId": "string",      "providerPaymentId": "string",      "providerTransferId": "string",      "reserveMinorUnits": 0,      "settledAt": "2019-08-24T14:15:22Z",      "status": "string"    }  ],  "meta": {    "hasMore": true,    "limit": 0,    "nextCursor": "string",    "total": 0  }}
GET
/api/v1/platform/reconciliation-cases

Query Parameters

status?string

Filter by case status

limit?integer

Page size (1-100)

Formatint64
Range1 <= value <= 100
Default20
cursor?string

Opaque cursor from meta.nextCursor

includeTotal?boolean

Set false to omit meta.total

Defaulttrue

Response Body

OK

application/json
  1. response
$schema?string

A URL to the JSON Schema for this object.

Formaturi
data*array<>|null
meta*
Example Request
curl -X GET 'https://example.com/api/v1/platform/reconciliation-cases'
Example Response
{  "$schema": "https://example.com/schemas/PageReconciliationCase.json",  "data": [    {      "$schema": "https://example.com/schemas/ReconciliationCase.json",      "createdAt": "2019-08-24T14:15:22Z",      "detail": "string",      "id": "string",      "kind": "string",      "orderId": "string",      "organizationId": "string",      "resolution": "string",      "resolvedAt": "2019-08-24T14:15:22Z",      "status": "string"    }  ],  "meta": {    "hasMore": true,    "limit": 0,    "nextCursor": "string",    "total": 0  }}
POST
/api/v1/platform/reconciliation-cases/{case_id}/resolve

Path Parameters

case_id*string

Request Body

application/json
  1. body
resolution*string
status*string
Value in"resolved""ignored"

Response Body

OK

application/json
  1. response
$schema?string

A URL to the JSON Schema for this object.

Formaturi
createdAt*string
Formatdate-time
detail*string
id*string
kind*string
orderId?string
organizationId*string
resolution?string
resolvedAt?string
Formatdate-time
status*string
Example Request
curl -X POST 'https://example.com/api/v1/platform/reconciliation-cases/string/resolve' \  -H 'Content-Type: application/json' \  -d '{  "resolution": "string",  "status": "resolved"}'
Example Response
{  "$schema": "https://example.com/schemas/ReconciliationCase.json",  "createdAt": "2019-08-24T14:15:22Z",  "detail": "string",  "id": "string",  "kind": "string",  "orderId": "string",  "organizationId": "string",  "resolution": "string",  "resolvedAt": "2019-08-24T14:15:22Z",  "status": "string"}

List platform staff

GET
/api/v1/platform/staff

Query Parameters

limit?integer

Page size (1-100)

Formatint64
Range1 <= value <= 100
Default20
cursor?string

Opaque cursor from meta.nextCursor

includeTotal?boolean

Set false to omit meta.total

Defaulttrue

Response Body

OK

application/json
  1. response
$schema?string

A URL to the JSON Schema for this object.

Formaturi
data*array<>|null
meta*
Example Request
curl -X GET 'https://example.com/api/v1/platform/staff'
Example Response
{  "$schema": "https://example.com/schemas/PageStaff.json",  "data": [    {      "$schema": "https://example.com/schemas/Staff.json",      "accountId": "string",      "capabilities": [        "string"      ],      "createdAt": "2019-08-24T14:15:22Z",      "grantedBy": "string",      "role": "string",      "updatedAt": "2019-08-24T14:15:22Z"    }  ],  "meta": {    "hasMore": true,    "limit": 0,    "nextCursor": "string",    "total": 0  }}
POST
/api/v1/platform/staff

Request Body

application/json
  1. body
accountId*string

Account to grant a platform role to

role*string
Value in"platform_admin""platform_finance"

Response Body

OK

application/json
  1. response
$schema?string

A URL to the JSON Schema for this object.

Formaturi
accountId*string
capabilities*array<string>|null
createdAt*string
Formatdate-time
grantedBy?string
role*string
updatedAt*string
Formatdate-time
Example Request
curl -X POST 'https://example.com/api/v1/platform/staff' \  -H 'Content-Type: application/json' \  -d '{  "accountId": "string",  "role": "platform_admin"}'
Example Response
{  "$schema": "https://example.com/schemas/Staff.json",  "accountId": "string",  "capabilities": [    "string"  ],  "createdAt": "2019-08-24T14:15:22Z",  "grantedBy": "string",  "role": "string",  "updatedAt": "2019-08-24T14:15:22Z"}
DELETE
/api/v1/platform/staff/{account_id}

Path Parameters

account_id*string

Response Body

OK

application/json
  1. response
$schema?string

A URL to the JSON Schema for this object.

Formaturi
revoked*boolean
Example Request
curl -X DELETE 'https://example.com/api/v1/platform/staff/string'
Example Response
{  "$schema": "https://example.com/schemas/RevokeOutputBody.json",  "revoked": true}