Skip to main content
POST
/
api
/
transactions
{
  "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>",
    "numeric_code": "<string>",
    "active_indicator": true
  },
  "alt_currency": {
    "currency": "<string>",
    "alphabetic_code": "<string>",
    "numeric_code": "<string>",
    "active_indicator": true
  },
  "modified_by": {
    "id": 123
  },
  "created_by": {
    "id": 123
  },
  "client_transaction_id": "<string>",
  "transaction_type": "<string>",
  "cp_a_country": "<string>",
  "cp_b_country": "<string>",
  "transaction_timestamp": "2023-11-07T05:31:56Z",
  "amount": 123,
  "cp_a_bank": "<string>",
  "cp_b_bank": "<string>",
  "amount_in_alt_currency": 123,
  "payment_mode": "<string>",
  "purpose_of_transfer": "<string>",
  "notes": "<string>"
}
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
Minimum 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
required
populate_buckets
string[]
cp_a_id
string
Minimum length: 1
cp_b_id
string
Minimum length: 1
alt_currency_id
string
Minimum length: 1
cp_a_country
string
Maximum length: 60
cp_b_country
string
Maximum length: 60
cp_a_bank
string
Maximum length: 255
cp_b_bank
string
Maximum length: 255
amount_in_alt_currency
number | null
payment_mode
string
Maximum length: 255
purpose_of_transfer
string
Maximum length: 255
notes
string
Maximum length: 255

Response

201 - application/json

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

id
integer
required
bucket_loading_status
string
default:Transaction loaded into [ORDINARY] and requested buckets
required
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 length: 255
transaction_type
string
required
Maximum length: 255
transaction_timestamp
string<date-time>
required
amount
number
required
cp_a_country
string
Maximum length: 60
cp_b_country
string
Maximum length: 60
cp_a_bank
string
Maximum length: 255
cp_b_bank
string
Maximum length: 255
amount_in_alt_currency
number | null
payment_mode
string
Maximum length: 255
purpose_of_transfer
string
Maximum length: 255
notes
string
Maximum length: 255