Recipe 2: PayWise Pay P2P
Required​
Complete Recipe 0: Account preflight + encryption first.
Session Token Context​
For p2p, mint session_token from the source PW wallet and encrypt it.
The session_token_enc must match the debit_party PW user.
Flow​
- Execute transaction directly with
transaction_type: "p2p" - Poll status with
transaction_id_enc - Confirm the posted transaction in
/institution/transaction_history
Note​
p2p does not require POST /institution/quote.
Quote is only required for inttransfer flows (see Recipe 3).
POST /institution/transaction body​
{
"session_token_enc": "<encrypted_base64>",
"transaction_id": "TXN-P2P-20260213-0001",
"transaction_date": "2026-02-13 18:25:00",
"amount": "25.00",
"sender_currency": "TTD",
"sender_amount": "25.00",
"description": "P2P wallet transfer",
"transaction_type": "p2p",
"fees": {
"total": "",
"convenience": "",
"sender_pays": "",
"recipient_pays": ""
},
"debit_party": {
"mobile_number": "15550001011",
"organization_id": "",
"account_number": "",
"account_type": "",
"currency": "TTD",
"metadata": ""
},
"credit_party": {
"mobile_number": "15550001012",
"organization_id": "",
"account_number": "",
"account_type": "",
"currency": "TTD",
"metadata": ""
},
"sender_kyc": {
"nationality": "TT"
},
"recipient_kyc": {
"nationality": "TT"
},
"transfer_information": {
"institution_name": "DemoBank",
"receiving_country": "TT",
"remittance_purpose": "family_support",
"source_of_funds": "salary_income",
"relationship_sender": "self"
}
}
GET /institution/transaction request params​
{
"version": "2024-10-01",
"institution_name": "DemoBank",
"transaction_id_enc": "<encrypted_base64>"
}
History Check​
Use /institution/transaction_history for the record that DevHouse stores after the transaction is created.
That history route is the canonical confirmation step for institution transactions.