{
  "info": {
    "_postman_id": "4a1c92a3-dcef-4c7f-af11-41317bf83c40",
    "name": "LUCKYFAST-MERCHANT-API",
    "description": "# LUCKYFAST-MERCHANT API\n\nBase URL: `https://api.luckyfastpay.pro`\n\n## Authentification\n\n1. Appeler `SECRET`\n    \n2. Récupérer `secret`\n    \n3. Utiliser `X-Secret: {{secret_key}}` sur les endpoints protégés",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_exporter_id": "21245979"
  },
  "item": [
    {
      "name": "SECRET",
      "event": [
        {
          "listen": "test",
          "script": {
            "exec": [
              "let jsonData = pm.response.json();",
              "",
              "if (jsonData.secret) {",
              "    pm.environment.set(\"secret_key\", jsonData.secret);",
              "    console.log(\"Secret saved :\", jsonData.secret);",
              "} else {",
              "    console.log(\"No 'secret' field found in the response\");",
              "}",
              ""
            ],
            "type": "text/javascript",
            "packages": {},
            "requests": {}
          }
        }
      ],
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/x-www-form-urlencoded"
          }
        ],
        "body": {
          "mode": "urlencoded",
          "urlencoded": [
            {
              "type": "text",
              "key": "operation_account_code",
              "value": "{{account_code}}"
            },
            {
              "type": "text",
              "key": "password",
              "value": "{{api_secret_password}}"
            }
          ]
        },
        "url": {
          "raw": "{{base_url}}/v2/{{secret_url_code}}/renew-secret",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v2",
            "{{secret_url_code}}",
            "renew-secret"
          ]
        },
        "description": "**Objectif :** Générer ou renouveler le secret à utiliser dans `X-Secret`.\n\n**URL :** `POST /v2/{{secret_url_code}}/renew-secret`\n\n**Body :**\n\n- `operation_account_code`: `{{account_code}}`\n    \n- `password`: `{{api_secret_password}}`\n    \n\n**Note :** Le champ `secret` retourné est sauvegardé dans `{{secret_key}}`."
      },
      "response": []
    },
    {
      "name": "PAYMENT",
      "event": [
        {
          "listen": "test",
          "script": {
            "exec": [
              ""
            ],
            "type": "text/javascript",
            "packages": {},
            "requests": {}
          }
        }
      ],
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "X-Secret",
            "value": "{{secret_key}}"
          },
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\r\n    \"agent\": \"AGENT-1\",\r\n    \"amount\": 150,\r\n    \"callback_url_code\": \"{{callback_url_code}}\",\r\n    \"customer_account_number\": \"{{msisdn}}\",\r\n    \"operation_account_code\": \"{{account_code}}\",\r\n    \"transaction_type\": \"PAYMENT\",\r\n    \"owner_charge\": \"CUSTOMER\",\r\n    \"operator_owner_charge\": \"CUSTOMER\",\r\n    \"free_info\": \"INFORMATION\",\r\n    \"product\": \"PRODUIT TEL\",\r\n    \"operator_code\": \"ORANGE_RCA\",\r\n    \"reference\": \"REF000122\",\r\n    \"service\": \"RESTFUL\"\r\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{base_url}}/{{rest_url_code}}/rest",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "{{rest_url_code}}",
            "rest"
          ]
        },
        "description": "**Objectif :** Initier une transaction de paiement.\n\n**URL :** `POST /{{rest_url_code}}/rest`\n\n**Headers :**\n\n- `X-Secret: {{secret_key}}`\n    \n- `Accept: application/json`\n    \n- `Content-Type: application/json`\n    \n\n**Note :** `reference` doit être unique côté marchand."
      },
      "response": []
    },
    {
      "name": "PAYMENT_BY_LINK",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "X-Secret",
            "value": "{{secret_key}}",
            "type": "text"
          },
          {
            "key": "X-Callback-MediaType",
            "value": "application/json",
            "type": "text"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\r\n  \"agent\": \"AGENT-1\",\r\n  \"amount\": 150,\r\n  \"product\": \"PRODUCT-1\",\r\n  \"reference\": \"REF0001\",\r\n  \"service\": \"WEB\",\r\n  \"callback_url_code\": \"{{callback_url_code}}\",\r\n  \"operation_account_code\": \"{{account_code}}\",\r\n  \"transaction_type\": \"PAYMENT\",\r\n  \"owner_charge\": \"CUSTOMER\",\r\n  \"customer_account_number\": \"{{msisdn}}\",\r\n  \"free_info\": \"Free info\",\r\n  \"failed_redirection_url_code\": \"{{failed_redirection_url_code}}\",\r\n  \"success_redirection_url_code\": \"{{success_redirection_url_code}}\"\r\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{base_url}}/{{code_url_link}}/link",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "{{code_url_link}}",
            "link"
          ]
        },
        "description": "**Objectif :** Générer un lien de paiement.\n\n**URL :** `POST /{{code_url_link}}/link`\n\n**Headers :**\n- `X-Secret: {{secret_key}}`\n- `X-Callback-MediaType: application/json`\n\n**Note :** Retourne une URL de checkout à ouvrir côté client."
      },
      "response": []
    },
    {
      "name": "USER_INFO",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{base_url}}/{{kyc_url_code}}/kyc?customer_account_number={{msisdn}}&operator_code=ORANGE_RCA",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "{{kyc_url_code}}",
            "kyc"
          ],
          "query": [
            {
              "key": "customer_account_number",
              "value": "{{msisdn}}"
            },
            {
              "key": "operator_code",
              "value": "ORANGE_RCA"
            }
          ]
        },
        "description": "**Objectif :** Récupérer les informations d’un client.\n\n**URL :** `GET /{{kyc_url_code}}/kyc`\n\n**Query Params :**\n\n- `customer_account_number`: `{{msisdn}}`\n    \n- `operator_code`: code opérateur\n    \n\n**Note :** Retourne les informations KYC disponibles."
      },
      "response": []
    },
    {
      "name": "PAYMENT_INQUIRY",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "X-Secret",
            "value": "{{secret_key}}"
          }
        ],
        "url": {
          "raw": "{{base_url}}/{{status_url_code}}/status?reference=REF000122&operation_account_code={{account_code}}&transaction_type=PAYMENT",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "{{status_url_code}}",
            "status"
          ],
          "query": [
            {
              "key": "reference",
              "value": "REF000122"
            },
            {
              "key": "operation_account_code",
              "value": "{{account_code}}"
            },
            {
              "key": "transaction_type",
              "value": "PAYMENT"
            }
          ]
        },
        "description": "**Objectif :** Vérifier le statut d’une transaction.\n\n**URL :** `GET /{{status_url_code}}/status`\n\n**Query Params :**\n\n- `reference`\n    \n- `operation_account_code`\n    \n- `transaction_type`\n    \n\n**Note :** Utiliser la référence de la transaction à contrôler."
      },
      "response": []
    },
    {
      "name": "FEES_INQUIRY",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "X-Secret",
            "value": "{{secret_key}}",
            "type": "text"
          }
        ],
        "url": {
          "raw": "{{base_url}}/{{code_url_fees}}/fees?amount=500&transaction_type=PAYMENT&operator_code=ORANGE_RCA&operation_account_code={{account_code}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "{{code_url_fees}}",
            "fees"
          ],
          "query": [
            {
              "key": "amount",
              "value": "500"
            },
            {
              "key": "transaction_type",
              "value": "PAYMENT"
            },
            {
              "key": "operator_code",
              "value": "ORANGE_RCA"
            },
            {
              "key": "operation_account_code",
              "value": "{{account_code}}"
            }
          ]
        },
        "description": "**Objectif :** Calculer les frais d’une transaction.\n\n**URL :** `GET /{{code_url_fees}}/fees`\n\n**Query Params :**\n\n- `amount`\n    \n- `transaction_type`\n    \n- `operator_code`\n    \n- `operation_account_code`\n    \n\n**Note :** Retourne les frais et le montant total."
      },
      "response": []
    },
    {
      "name": "BALANCE_INQUIRY",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "X-Secret",
            "value": "{{secret_key}}",
            "type": "text"
          }
        ],
        "url": {
          "raw": "{{base_url}}/{{code_url_balance}}/balance?operation_account_code={{account_code}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "{{code_url_balance}}",
            "balance"
          ],
          "query": [
            {
              "key": "operation_account_code",
              "value": "{{account_code}}"
            }
          ]
        },
        "description": "**Objectif :** Consulter le solde du compte d’opération.\n\n**URL :** `GET /{{code_url_balance}}/balance`\n\n**Query Params :**\n\n- `operation_account_code`: `{{account_code}}`\n    \n\n**Note :** Retourne le solde courant du compte."
      },
      "response": []
    },
    {
      "name": "COUNTRIES_INQUIRY",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json",
            "type": "text"
          }
        ],
        "url": {
          "raw": "{{base_url}}/{{code_url_countries}}/countries",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "{{code_url_countries}}",
            "countries"
          ]
        },
        "description": "**Objectif :** Lister les pays disponibles.\n\n**URL :** `GET /{{code_url_countries}}/countries`\n\n**Note :** Retourne les pays supportés et leur statut."
      },
      "response": []
    },
    {
      "name": "OPERATORS_INQUIRY",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{base_url}}/{{code_url_operators}}/operators?country_code={{country_iso_code}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "{{code_url_operators}}",
            "operators"
          ],
          "query": [
            {
              "key": "country_code",
              "value": "{{country_iso_code}}"
            }
          ]
        },
        "description": "**Objectif :** Lister les opérateurs d’un pays.\n\n**URL :** `GET /{{code_url_operators}}/operators`\n\n**Query Params :**\n\n- `country_code`: `{{country_iso_code}}`\n    \n\n**Note :** Retourne les opérateurs disponibles pour le pays demandé."
      },
      "response": []
    },
    {
      "name": "GIMAC_QRCODE",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "X-Secret",
            "value": "{{secret_key}}"
          },
          {
            "key": "Accept",
            "value": "image/png"
          }
        ],
        "url": {
          "raw": "{{base_url}}/{{qr_url_code}}/generate-qr-code?operation_account_code={{account_code}}&callback_url_code={{callback_url_code}}&reference=REF006",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "{{qr_url_code}}",
            "generate-qr-code"
          ],
          "query": [
            {
              "key": "operation_account_code",
              "value": "{{account_code}}"
            },
            {
              "key": "callback_url_code",
              "value": "{{callback_url_code}}"
            },
            {
              "key": "reference",
              "value": "REF006"
            }
          ]
        },
        "description": "**Objectif :** Générer un QR Code GIMAC.\n\n**URL :** `GET /{{qr_url_code}}/generate-qr-code`\n\n**Query Params :**\n\n- `operation_account_code`: `{{account_code}}`\n    \n- `callback_url_code`: `{{callback_url_code}}`\n    \n- `reference`: référence unique\n    \n\n**Note :** uniquement pour les comptes d'opération GIMAC. `Accept: image/png` ou `application/json`."
      },
      "response": []
    }
  ],
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "packages": {},
        "requests": {},
        "exec": [
          ""
        ]
      }
    },
    {
      "listen": "test",
      "script": {
        "type": "text/javascript",
        "packages": {},
        "requests": {},
        "exec": [
          ""
        ]
      }
    }
  ]
}