# Playground JWS+JWE

Send test signed and encrypted HTTP requests and receive signed and encrypted responses. Both signing and encryption are mandatory for this endpoint. The request must be a JSON Web Signature (JWS) wrapped in JSON Web Encryption (JWE) — any message that does not follow this format will be rejected.
The flow combines both JWS and JWE:
1. **Request**: Sign payload (JWS) → Encrypt signed JWT (JWE) → Send to Wise
2. **Response**: Receive encrypted response → Decrypt (JWE) → Verify signature (JWS)

Currently, the Wise API returns a generic 500 Internal Server Error for decryption failures across endpoints using JWE and JWS+JWE. For example, an invalid key can cause a decryption failure.
Our team is currently planning improvements for these types of error messages to make them more specific and clear. Thank you for your patience.

Endpoint: POST /v1/auth/jose/playground/jwsjwe
Security: ClientCredentialsToken

## Header parameters:

  - `Accept` (string, required)

  - `x-tw-jose-method` (string, required)
    JOSE method identifier.

  - `x-tw-jose-encryption-kid` (string, required)
    Public Key ID of JWE Encryption Key

  - `X-External-Correlation-Id` (string)
    Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. [Learn more](/guides/developer/headers/correlation-id).

