Skip to main content

Create institution transaction

Posts transaction details to institution endpoint.

Endpoint​

POST /institution/transaction

Query Parameters​

  • version (string, required) - API contract version. Use exactly 2024-10-01.

Header Parameters​

  • PW-subscription-key (string, required)
  • PW-origin-country (string, required)
  • PW-request-date (string, required) - UTC request timestamp formatted as YYYY-MM-DD HH:mm:ss.
  • PW-ip-address (string, required)
  • User-Agent (string, required)

Header Constraints​

KeyDescriptionExampleData typeRequirementField Length
PW-subscription-keyDeveloper key available after portal registration. Production key is shared on request.eed0d85c530c4b26a91d09b783d8fab3stringmandatory32
PW-origin-countryISO Alpha-2 country code where the transaction is created.TTstringmandatory2
PW-request-dateCurrent request timestamp. Format: YYYY-MM-DD HH:mm:ss (UTC).2014-10-08 16:01:31stringmandatory19
PW-ip-addressFixed institution IP used for PayWise network-level validation.255.255.255.255stringconditional8-16
User-AgentIn programmable environments, this avoids running into Cloudflare issues.Mozilla/5.0 (Windows NT 10.0; Win64; x64)stringmandatory255

Request Body​

{
"session_token_enc": "<encrypted_base64>",
"transaction_id": "TXN-P2P-SMOKE-001",
"transaction_date": "2026-02-13T18:00:00.000Z",
"amount": "50.00",
"sender_currency": "TTD",
"sender_amount": "50.00",
"description": "p2p smoke test",
"transaction_type": "inttransfer",
"fees": {
"total": "",
"convenience": "",
"sender_pays": "",
"recipient_pays": ""
},
"debit_party": {
"mobile_number": "18680001234",
"organization_id": "",
"account_number": "ACCT-XXXXXX",
"account_type": "",
"currency": "TTD",
"metadata": ""
},
"credit_party": {
"mobile_number": "18680001234",
"organization_id": "",
"account_number": "ACCT-XXXXXX",
"account_type": "",
"currency": "TTD",
"metadata": ""
},
"sender_kyc": {
"nationality": "TT"
},
"recipient_kyc": {
"nationality": "TT"
},
"transfer_information": {
"institution_name": "ExampleInstitution",
"receiving_country": "TT",
"remittance_purpose": "family_support",
"source_of_funds": "salary_income",
"relationship_sender": "self"
}
}

Downloads​

Before You Implement​

Full request body examples (by transaction_type)​

Show full request payloads by transaction type
{
"session_token_enc": "<encrypted_base64>",
"transaction_id": "TXN-P2P-20260213-0001",
"transaction_date": "2026-02-13T18:25:00.000Z",
"amount": "25.00",
"sender_currency": "TTD",
"sender_amount": "25.00",
"description": "P2P wallet transfer",
"transaction_type": "p2p",
"fees": [
{ "fee_type": "service_fee", "fee_amount": "0.00", "fee_currency": "USD" }
],
"debit_party": [
{ "key": "msisdn", "value": "15550001011" }
],
"credit_party": [
{ "key": "msisdn", "value": "15550001012" }
],
"sender_kyc": {
"full_name": "Casey Example",
"country": "US"
},
"recipient_kyc": {
"full_name": "Jordan Example",
"country": "US"
}
}

Responses​

200 - Wrapper-normalized response envelope (success cases).​

Example: success​

{
"status": "success",
"code": 200,
"message": "Amount Credited.",
"request_id": "90919ed3-102c-46a4-b62e-5b9dcdff14e4",
"timestamp": "2026-02-13T18:17:24.774Z",
"institution_receipt_id": "PWDP-TTI8LM"
}

403 - Wrapper-normalized response envelope (403)​

Example: error​

{
"status": "error",
"code": 403,
"message": "This endpoint is not permitted for your institution.",
"request_id": "16a33e14-6a68-44a2-a8ab-693656de0916",
"timestamp": "2026-06-30T03:07:47.198Z",
"errorCode": "PW_INSTITUTION_ENDPOINT_NOT_ALLOWED"
}

Notes​

This endpoint page is generated from openapi/pw-wrappers.2024-10-01.yaml.