Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions content/payments/billpay/api-integration/api-encryption.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ You cannot mix encrypted and plaintext modes **per API** for the same partner; b
| Key size | 128, 192, or 256 bits (16, 24, or 32 bytes) |
| IV (dynamic mode) | 128 bits (16 bytes), **random for each message** |
| Padding | PKCS5 / PKCS7 |
| Payload encoding | Configurable: **`hex`** or **`base64`** (see [Partner configuration](/payments/billpay/api-integration/api-encryption#partner-configuration--enablement)) |
| Payload encoding | Configurable: **`hex`** or **`base64`** (see [Partner configuration](/payments/billpay/api-integration/api-encryption#partner-configuration--enablement-)) |

The **`data`** field in JSON carries the **IV concatenated with ciphertext**, then **encoded** using your configured `payloadEncoding` (`hex` or `base64`). Plaintext is always UTF-8 JSON before encryption.

Expand Down Expand Up @@ -123,7 +123,7 @@ Example (`payloadEncoding` = `base64`):
#### Encrypted API request (Partner → COU)

1. Construct the normal JSON body for the API.
2. Encrypt with Dynamic IV as described under [Encrypted JSON envelope (Dynamic IV)](/payments/billpay/api-integration/api-encryption#encrypted-json-envelope--dynamic-iv).
2. Encrypt with Dynamic IV as described under [Encrypted JSON envelope (Dynamic IV)](/payments/billpay/api-integration/api-encryption#encrypted-json-envelope--dynamic-iv-).
3. Send \{ "data": "..." \} with `Content-Type: application/json` and required headers (`X-PARTNER-ID`, `X-ENC-KEY-ID`, …).

#### Encrypted API response (COU → Partner)
Expand Down
Loading