Skip to main content
POST
/
api
/
transactions
Create a transaction
curl --request POST \
  --url http://localhost/api/api/transactions \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "transaction_currency_id": "<string>",
  "client_transaction_id": "<string>",
  "transaction_type": "<string>",
  "transaction_timestamp": "2023-11-07T05:31:56Z",
  "amount": 123,
  "populate_buckets": [],
  "cp_a_id": "<string>",
  "cp_b_id": "<string>",
  "alt_currency_id": "<string>",
  "cp_a_country": "<string>",
  "cp_b_country": "<string>",
  "cp_a_bank": "<string>",
  "cp_b_bank": "<string>",
  "amount_in_alt_currency": 123,
  "payment_mode": "<string>",
  "purpose_of_transfer": "<string>",
  "notes": "<string>"
}
'
{
  "id": 123,
  "bucket_loading_status": "Transaction loaded into [ORDINARY] and requested buckets",
  "cp_a": {
    "client_subject_id": "<string>",
    "subject_name": "<string>",
    "unique_identification_number": "<string>",
    "account_holder": true,
    "address": "<string>",
    "customer_segment": "<string>",
    "date_and_place_of_birth": "<string>",
    "country_of_birth_or_incorporation": "<string>",
    "nationality": "<string>",
    "account_type": "<string>",
    "account_type_ii": "<string>",
    "account_opening_date": "<string>",
    "account_opening_date_ii": "<string>",
    "customer_aml_risk_rating": "<string>",
    "customer_account": "<string>",
    "customer_account_ii": "<string>",
    "customer_opening_date": "<string>",
    "source_of_funds": "<string>",
    "average_monthly_income": "<string>",
    "cif_status": "<string>",
    "occupation": "<string>",
    "industry": "<string>",
    "purpose_of_account": "<string>",
    "contact_number": "<string>",
    "email_address": "<string>",
    "risk_assessment_score": "<string>",
    "created_by": 123,
    "modified_by": 123
  },
  "cp_b": {
    "client_subject_id": "<string>",
    "subject_name": "<string>",
    "unique_identification_number": "<string>",
    "account_holder": true,
    "address": "<string>",
    "customer_segment": "<string>",
    "date_and_place_of_birth": "<string>",
    "country_of_birth_or_incorporation": "<string>",
    "nationality": "<string>",
    "account_type": "<string>",
    "account_type_ii": "<string>",
    "account_opening_date": "<string>",
    "account_opening_date_ii": "<string>",
    "customer_aml_risk_rating": "<string>",
    "customer_account": "<string>",
    "customer_account_ii": "<string>",
    "customer_opening_date": "<string>",
    "source_of_funds": "<string>",
    "average_monthly_income": "<string>",
    "cif_status": "<string>",
    "occupation": "<string>",
    "industry": "<string>",
    "purpose_of_account": "<string>",
    "contact_number": "<string>",
    "email_address": "<string>",
    "risk_assessment_score": "<string>",
    "created_by": 123,
    "modified_by": 123
  },
  "transaction_currency": {
    "currency": "<string>",
    "alphabetic_code": "<string>",
    "active_indicator": true,
    "numeric_code": "<string>"
  },
  "alt_currency": {
    "currency": "<string>",
    "alphabetic_code": "<string>",
    "active_indicator": true,
    "numeric_code": "<string>"
  },
  "modified_by": {
    "id": 123
  },
  "created_by": {
    "id": 123
  },
  "client_transaction_id": "<string>",
  "transaction_type": "<string>",
  "transaction_timestamp": "2023-11-07T05:31:56Z",
  "amount": 123,
  "cp_a_country": "<string>",
  "cp_b_country": "<string>",
  "cp_a_bank": "<string>",
  "cp_b_bank": "<string>",
  "amount_in_alt_currency": 123,
  "payment_mode": "<string>",
  "purpose_of_transfer": "<string>",
  "notes": "<string>"
}

Documentation Index

Fetch the complete documentation index at: https://docs.cynopsis.co/llms.txt

Use this file to discover all available pages before exploring further.

To upload your transactions into Athena, perform the following API call with the given sample request bodies. Transaction type must conform to one of the following types
  • PAY
  • WITHDRAW
  • DEPOSIT
Requirements before posting a transaction
  • cp_a_id and cp_b_id needs to be one of the Subjects enrolled via the Subjects API.
  • If transaction_type is PAY, both cp_a_id and cp_b_id must be present.
  • If transaction_type is DEPOSIT, at least cp_b_id must be present.
  • If transaction_type is WITHDRAW, at least cp_a_id needs to be present.
  • transaction_currency_id must be the currency set as the master currency..
  • cp_a_country and cp_b_country, where provided, must be a valid three letter country code.
  • transaction_timestamp cannot be dated in the future.
  • If provided, the “populate_buckets” field must contain a list of bucket names, all of which are available at the time of transaction upload. Otherwise, the record will be rejected and not provided to Athena.
transaction_timestamp must conform to one of the following time formats
  • 2020-08-20T13:31:02.777 (YYYY-MM-DDTHH:MM:SS.SSS)
  • 2020-08-20T13:31:02 (YYYY-MM-DDTHH:MM:SS)
  • 2020-08-20T13:31 (YYYY-MM-DDTHH:MM)
Sample Request Body (Mandatory Fields):
{
	"transaction_currency_id":"SGD"
	"client_transaction_id":"SAMPLE-TXN-001",
	"transaction_type":"PAY",
	"cp_a_id":"AS0001Y"
	"cp_b_id":"AS0002Y"
	"transaction_timestamp":"2020-12-12T12:12:12"
	"amount":"5000.00"
}
Sample Request (All Fields):
{
     "client_transaction_id":"ID10001",
     "transaction_type":"PAY",
     "cp_a_id":"AS001Y",
     "cp_a_country": "SGP",
     "cp_a_bank": "DBS Bank Pte. Ltd",
     "cp_b_id":"AS002Y",
     "cp_b_country": "SGP",
     "cp_b_bank": "DBS Bank Pte. Ltd",
     "transaction_timestamp":"2020-08-20T13:31",
     "transaction_currency_id":"SGD",
     "amount":123456.78,
     "alt_currency_id":"IDR",
     "amount_in_alt_currency":"500000",
     "payment_mode":"PayLah",
     “purpose_of_transfer”: “Purchase of goods”,
     "populate_buckets":["BucketName1","sampleBucket","anotherBucketName"]
}
Note: For cp_a_country and cp_b_country, it must be a valid three letter country code. Please refer to the link below. ISO 3166 - 3 Digit Code and Full Country Spelling

Authorizations

Authorization
string
header
required

JWT token obtained from AWS Cognito or custom authentication service

Body

A ModelSerializer that takes an additional fields argument that controls which fields should be displayed.

transaction_currency_id
string
required
write-only
Minimum string length: 1
client_transaction_id
string
required
Required string length: 1 - 255
transaction_type
string
required
Required string length: 1 - 255
transaction_timestamp
string<date-time>
required
amount
number<double>
required
populate_buckets
string[]
write-only
Minimum string length: 1
cp_a_id
string
write-only
Minimum string length: 1
cp_b_id
string
write-only
Minimum string length: 1
alt_currency_id
string
write-only
Minimum string length: 1
cp_a_country
string
Maximum string length: 60
cp_b_country
string
Maximum string length: 60
cp_a_bank
string
Maximum string length: 255
cp_b_bank
string
Maximum string length: 255
amount_in_alt_currency
number<double> | null
payment_mode
string
Maximum string length: 255
purpose_of_transfer
string
Maximum string length: 255
notes
string
Maximum string length: 255

Response

201 - application/json

A ModelSerializer that takes an additional fields argument that controls which fields should be displayed.

id
integer
required
read-only
bucket_loading_status
string
default:Transaction loaded into [ORDINARY] and requested buckets
required
read-only
cp_a
object
required
cp_b
object
required
transaction_currency
object
required
alt_currency
object
required
modified_by
object
required
created_by
object
required
client_transaction_id
string
required
Maximum string length: 255
transaction_type
string
required
Maximum string length: 255
transaction_timestamp
string<date-time>
required
amount
number<double>
required
cp_a_country
string
Maximum string length: 60
cp_b_country
string
Maximum string length: 60
cp_a_bank
string
Maximum string length: 255
cp_b_bank
string
Maximum string length: 255
amount_in_alt_currency
number<double> | null
payment_mode
string
Maximum string length: 255
purpose_of_transfer
string
Maximum string length: 255
notes
string
Maximum string length: 255