{
  "info": {
    "name": "Foxpay Custom Integration",
    "_postman_id": "6b1b38ea-5d41-4f7d-9df5-ff4f4e4b6d7f",
    "description": "Starter requests for Foxpay custom REST integration. Custom API webhooks are merchant-hosted callbacks and are separate from WooCommerce plugin webhooks.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://app.foxpay.it/api"
    },
    {
      "key": "apiKey",
      "value": "fp_live_example"
    },
    {
      "key": "merchantId",
      "value": "merchant_fxp_ABC12345"
    },
    {
      "key": "paymentId",
      "value": "tx_123"
    },
    {
      "key": "orderId",
      "value": "order_1001"
    },
    {
      "key": "remittanceInfo",
      "value": "ORDER-1001"
    },
    {
      "key": "webhookUrl",
      "value": "https://merchant.example/webhooks/foxpay"
    },
    {
      "key": "webhookSignature",
      "value": "sha256=replace-with-hmac"
    }
  ],
  "item": [
    {
      "name": "Initialize hosted checkout payment",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"merchantId\": \"{{merchantId}}\",\n  \"orderId\": \"{{orderId}}\",\n  \"amountCents\": 12345,\n  \"currency\": \"EUR\",\n  \"customerEmail\": \"buyer@example.com\",\n  \"remittanceInfo\": \"{{remittanceInfo}}\",\n  \"returnUrl\": \"https://merchant.example/orders/{{orderId}}/return\"\n}"
        },
        "url": {
          "raw": "{{baseUrl}}/payments/initialize",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "payments",
            "initialize"
          ]
        }
      }
    },
    {
      "name": "Initialize direct OBT payment",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Authorization",
            "value": "Bearer {{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"merchantId\": \"{{merchantId}}\",\n  \"orderId\": \"{{orderId}}\",\n  \"amountCents\": 12345,\n  \"currency\": \"EUR\",\n  \"paymentMethod\": \"open_bank_transfer\",\n  \"checkoutMode\": \"direct_provider\",\n  \"provider\": \"calytics\",\n  \"customerCountry\": \"DE\",\n  \"senderName\": \"Jane Doe\",\n  \"senderIban\": \"DE89370400440532013000\",\n  \"remittanceInfo\": \"{{remittanceInfo}}\",\n  \"returnUrl\": \"https://merchant.example/orders/{{orderId}}/return\"\n}"
        },
        "url": {
          "raw": "{{baseUrl}}/payments/initialize",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "payments",
            "initialize"
          ]
        },
        "description": "Creates a direct Calytics A2A/OBT session. Redirect the buyer to redirectUrl or sessionUrl from the response."
      }
    },
    {
      "name": "Poll payment status",
      "request": {
        "method": "GET",
        "url": {
          "raw": "{{baseUrl}}/payments/{{paymentId}}/status",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "payments",
            "{{paymentId}}",
            "status"
          ]
        }
      }
    },
    {
      "name": "Fetch bank details",
      "request": {
        "method": "GET",
        "url": {
          "raw": "{{baseUrl}}/payments/{{paymentId}}/bank-details?orderId={{orderId}}",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "payments",
            "{{paymentId}}",
            "bank-details"
          ],
          "query": [
            {
              "key": "orderId",
              "value": "{{orderId}}"
            }
          ]
        }
      }
    },
    {
      "name": "Webhook verification payload example",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          },
          {
            "key": "X-Foxpay-Signature",
            "value": "{{webhookSignature}}"
          },
          {
            "key": "X-Foxpay-Event",
            "value": "foxpay.webhook_verification"
          },
          {
            "key": "X-Foxpay-Verification-Challenge",
            "value": "challenge_123"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"event\": \"foxpay.webhook_verification\",\n  \"challenge\": \"challenge_123\",\n  \"timestamp\": \"2026-04-27T00:00:00.000Z\",\n  \"merchantId\": \"{{merchantId}}\",\n  \"shopId\": \"shop_123\",\n  \"expectedAuthMode\": \"api_key\"\n}"
        },
        "url": {
          "raw": "{{webhookUrl}}",
          "host": [
            "{{webhookUrl}}"
          ]
        },
        "description": "This request targets your merchant-hosted webhook endpoint, not a Foxpay API endpoint. Compute X-Foxpay-Signature as HMAC-SHA256 over the exact raw JSON body with your Foxpay webhook secret."
      }
    }
  ]
}
