Network management — Key exchange
POST /transaction/network-management/key-exchange
Requests a working-key exchange. type selects the DE 70 code (defaults to the key-change-request code). A control message: no channel, card, or amount applies.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”Request body for POST /transaction/network-management/{action}. Network management is a control message, not a card transaction: no channel, card, or amount applies.
object
Target network. Only visa (the default when omitted) is supported; a mastercard request returns 501 Not Implemented. A request for a network whose product the organization is not entitled to (including an expired trial) returns 403 Forbidden.
The DE 70 network-management information code for the key-exchange action (3- or 4-digit, e.g. 101; defaults to the key-change-request code when omitted). Ignored for echo, sign-on, and sign-off.
Trace correlation id for logging only. Prefer the X-Request-Id HTTP header.
Examples
Sign the connection on
{ "network": "visa"}Responses
Section titled “ Responses ”The network-management message completed a full round trip.
Response body for POST /transaction/network-management/{action} on the success (200) path. Adds the resolved action/type to the shared TransactionOperationResponse shape.
object
SMP-generated req_-prefixed correlation id for tracing and log correlation.
Example
req_abc123The outbound ISO 8583 message SVE built and SMP transmitted to the fintech backend, as uppercase hexadecimal.
A rendered view of a built ISO 8583 message: its MTI plus a set-field map keyed as "NN (Field Name)" (2 digits for DE ≤ 99, 3 digits above), ordered ascending by data-element number. Binary data elements are rendered as uppercase hex.
object
Four-digit message type indicator, e.g. 0100.
Example
0200Set data elements, keyed as "NN (Field Name)" and ordered ascending by data-element number.
object
Finalized ISO 8583 response message from the fintech backend, as uppercase hexadecimal.
A rendered view of a built ISO 8583 message: its MTI plus a set-field map keyed as "NN (Field Name)" (2 digits for DE ≤ 99, 3 digits above), ordered ascending by data-element number. Binary data elements are rendered as uppercase hex.
object
Four-digit message type indicator, e.g. 0100.
Example
0200Set data elements, keyed as "NN (Field Name)" and ordered ascending by data-element number.
object
The network-management action performed, e.g. sign-on, echo, key-exchange.
The DE 70 network-management information code that produced this message, e.g. 0071.
Examples
Sign-on accepted
{ "request_id": "req_ghi789", "sent": "08008220000000000000040000000000000009112230450000010071", "parsed_request": { "mti": "0800", "fields": { "07 (Transmission Date/Time)": "0911223045", "11 (Trace Number)": "000001", "70 (Network Management Information Code)": "0071" } }, "last_response_hex": "0810822000000200000004000000000000000911223045000001F0F00071", "parsed_response": { "mti": "0810", "fields": { "07 (Transmission Date/Time)": "0911223045", "11 (Trace Number)": "000001", "39 (Response Code)": "00", "70 (Network Management Information Code)": "0071" } }, "action": "sign-on", "type": "0071"}Malformed request — the body is not valid JSON or does not match the schema, or card is missing or has an empty pan. Unsupported network values return 501, not 400. Engine-side input validation failures (for example a missing amount or PIN) currently surface as 502 engine errors.
RFC 7807 application/problem+json error body, as emitted by ASP.NET Core Results.Problem.
object
Examples
{ "type": "about:blank", "title": "Malformed structured transaction request", "status": 400, "detail": "The request must include a 'card' with a non-empty 'pan'."}Authentication failed — missing, malformed, invalid, revoked, or suspended API key, or a JWT bearer token was sent.
RFC 7807 application/problem+json error body, as emitted by ASP.NET Core Results.Problem.
object
Examples
{ "type": "about:blank", "title": "Invalid API key", "status": 401, "detail": "The supplied API key is missing, malformed, invalid, revoked, or suspended."}{ "type": "about:blank", "title": "JWT authentication not supported", "status": 401, "detail": "This endpoint accepts CPS API keys only. JWT bearer support is pending CPS org-id resolution."}Product not entitled — the organization has no active trial or subscription for the product that serves the requested network. Checked after the 501 network check and again per frame at delivery.
RFC 7807 application/problem+json error body, as emitted by ASP.NET Core Results.Problem.
object
Examples
{ "type": "product_not_entitled", "title": "Product not entitled", "status": 403, "detail": "The organization is not entitled to the 'visa' product. Check the product entitlements in the dashboard."}Rate limit exceeded — either the API key’s configured requests-per-second limit, or the per-organization requests-per-second cap on a product trial (trial_rate_limited). A Retry-After header is returned.
RFC 7807 application/problem+json error body, as emitted by ASP.NET Core Results.Problem.
object
Examples
{ "type": "about:blank", "title": "Rate limit exceeded", "status": 429, "detail": "The API key has exceeded its configured requests-per-second limit."}{ "type": "trial_rate_limited", "title": "Rate limit exceeded", "status": 429, "detail": "The organization's trial of the 'visa' product has exceeded its requests-per-second limit."}Headers
Section titled “Headers ”Seconds to wait before retrying.
Unsupported network — only visa is supported today; a mastercard request (or any other value) fails here until SME structured support lands.
RFC 7807 application/problem+json error body, as emitted by ASP.NET Core Results.Problem.
object
Examples
{ "type": "about:blank", "title": "Unsupported network", "status": 501, "detail": "'mastercard' is not yet supported on the structured transaction routes. Only 'visa' is supported today; Mastercard/SME support is tracked as a follow-up issue."}Delivery error — no active mTLS connection for the org, or a write/read failure (a delivery timeout included) on the outbound leg to your fintech backend; also an engine HTTP error or an undecodable engine response. Engine-side input validation failures (for example a missing amount or PIN) also surface here as Engine error, not 400.
RFC 7807 application/problem+json error body, as emitted by ASP.NET Core Results.Problem.
object
Examples
{ "type": "about:blank", "title": "Delivery error", "status": 502, "detail": "No active mTLS connection for the org."}{ "type": "about:blank", "title": "Engine error", "status": 502, "detail": "The network engine returned an HTTP error."}API-key validation with CPS is unavailable, so the tenant could not be resolved; or the product entitlement check at delivery could not be confirmed with CPS. Retry the request.
RFC 7807 application/problem+json error body, as emitted by ASP.NET Core Results.Problem.
object
Examples
{ "type": "about:blank", "title": "API key validation unavailable", "status": 503, "detail": "SMP could not validate the supplied API key with CPS."}{ "type": "entitlement_check_unavailable", "title": "Entitlement check unavailable", "status": 503, "detail": "SMP could not confirm product entitlement with CPS. Retry the request."}The Visa engine call itself timed out, hit an open circuit breaker, or failed at the transport level.
RFC 7807 application/problem+json error body, as emitted by ASP.NET Core Results.Problem.
object
Examples
{ "type": "about:blank", "title": "Engine timeout", "status": 504, "detail": "The network engine call timed out."}