{
  "info": {
    "name": "iPayMoney Merchant API v1",
    "description": "Collection publique dérivée des contrats marchands vérifiés dans le backend Rails. Remplacez les variables avant usage.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    { "key": "baseUrl", "value": "https://i-pay.money/api/v1" },
    { "key": "secretKey", "value": "votre_cle_secrete_sandbox", "type": "secret" },
    { "key": "targetEnvironment", "value": "sandbox" },
    { "key": "paymentType", "value": "mobile" },
    { "key": "paymentReference", "value": "REFERENCE_IPAYMONEY" },
    { "key": "externalPaymentReference", "value": "REFERENCE_ALEATOIRE_RETOURNEE_PAR_IPAYMONEY" }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      { "key": "token", "value": "{{secretKey}}", "type": "string" }
    ]
  },
  "item": [
    {
      "name": "Payments",
      "item": [
        {
          "name": "Create sandbox mobile payment",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Ipay-Target-Environment", "value": "{{targetEnvironment}}" },
              { "key": "Ipay-Payment-Type", "value": "{{paymentType}}" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 1000,\n  \"country\": \"BJ\",\n  \"currency\": \"XOF\",\n  \"msisdn\": \"40410000000\",\n  \"transaction_id\": \"ORDER-SANDBOX-001\",\n  \"customer_name\": \"Client Test\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": "{{baseUrl}}/payments",
            "description": "Crée un paiement mobile Sandbox. Utilisez une nouvelle transaction_id pour chaque nouvelle tentative."
          }
        },
        {
          "name": "Verify payment",
          "request": {
            "method": "GET",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Ipay-Target-Environment", "value": "{{targetEnvironment}}" },
              { "key": "Ipay-Payment-Type", "value": "{{paymentType}}" }
            ],
            "url": "{{baseUrl}}/payments/{{paymentReference}}",
            "description": "Accepte la référence interne iPayMoney ou transaction_id."
          }
        },
        {
          "name": "List payments",
          "request": {
            "method": "GET",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Ipay-Target-Environment", "value": "{{targetEnvironment}}" },
              { "key": "Ipay-Payment-Type", "value": "{{paymentType}}" }
            ],
            "url": "{{baseUrl}}/payments?items=25"
          }
        }
      ]
    },
    {
      "name": "Payment links",
      "item": [
        {
          "name": "Create hosted payment link",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Ipay-Target-Environment", "value": "{{targetEnvironment}}" },
              { "key": "Ipay-Payment-Type", "value": "external_payment" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"title\": \"Commande 1001\",\n  \"description\": \"Lien de test\",\n  \"amount\": 1000,\n  \"shouldExpire\": true,\n  \"on_success_redirection_url\": \"https://example.com/payment/success\",\n  \"on_failed_redirection_url\": \"https://example.com/payment/failed\"\n}",
              "options": { "raw": { "language": "json" } }
            },
            "url": "{{baseUrl}}/external_payments",
            "description": "La référence est omise afin que iPayMoney génère une valeur aléatoire. Copiez la référence retournée dans externalPaymentReference pour la consultation."
          }
        },
        {
          "name": "Read hosted payment link",
          "auth": { "type": "noauth" },
          "request": {
            "method": "GET",
            "header": [
              { "key": "Content-Type", "value": "application/json" }
            ],
            "url": "{{baseUrl}}/external_payments/{{externalPaymentReference}}",
            "description": "Route actuellement non authentifiée pouvant retourner des données client. Gardez la référence privée et non prévisible."
          }
        }
      ]
    }
  ]
}
