Cost+Docs

Zapytania o status

Sprawdzanie statusów zamówień i transakcji

Każda płatność w Cost+ jest reprezentowana przez zamówienie zawierające jedną lub więcej transakcji. Aktualny status dowolnego zamówienia możesz sprawdzić, odpytując API, poprzez odpytywanie cykliczne lub korzystając z webhooków.

Pobieranie statusu zamówienia

Wyślij żądanie GET na /v1/orders/\{id\}/, aby pobrać pełny obiekt zamówienia, w tym jego aktualny status i wszystkie powiązane transakcje.

GET /v1/orders/b9ae6.../

Chociaż odpytywanie cykliczne działa do sprawdzania statusu zamówienia, webhooki są zalecanym podejściem w integracji produkcyjnej. Zapewniają powiadomienia w czasie rzeczywistym bez obciążenia związanego z wielokrotnym wywoływaniem API.

Statusy zamówień

Zamówienie przechodzi przez następujące statusy:

StatusKońcowyOpis
newNieZamówienie zostało właśnie utworzone. Nie podjęto jeszcze żadnej próby płatności.
processingNiePróba płatności jest w toku. Klient może realizować 3D Secure lub inny krok weryfikacji.
errorNiePróba płatności nie powiodła się. Klient może spróbować ponownie tą samą lub inną metodą płatności.
completedTakPłatność zakończyła się sukcesem. Możesz zrealizować zamówienie.
cancelledTakZamówienie zostało anulowane przez klienta lub przez API.
expiredTakZamówienie wygasło przed dokonaniem pomyślnej płatności. Domyślny okres ważności to 30 minut.

Tylko statusy oznaczone jako Końcowy = Tak są terminalne. Zamówienia ze statusem new, processing lub error nadal mogą przejść do statusu completed.

Przykład: Zamówienie w trakcie przetwarzania

Gdy klient zainicjował płatność, ale nie jest ona jeszcze zakończona:

{
  "id": "b9ae6...",
  "project_id": "proj_abc123",
  "merchant_order_id": "my-order-id-1",
  "created": "2024-01-01T12:00:00.000000+00:00",
  "modified": "2024-01-01T12:01:30.000000+00:00",
  "completed": null,
  "expiration_period": "PT30M",
  "status": "processing",
  "currency": "EUR",
  "amount": 1295,
  "description": "My amazing order",
  "return_url": "https://www.example.com",
  "payment_url": "https://pay.costplus.com/...",
  "webhook_url": "https://www.example.com/webhook",
  "transactions": [
    {
      "id": "txn_001...",
      "payment_method": "credit-card",
      "payment_method_brand": "visa",
      "status": "processing",
      "amount": 1295,
      "currency": "EUR"
    }
  ],
  "flags": ["is-test"]
}

Przykład: Zrealizowane zamówienie

Po pomyślnej płatności zamówienie osiąga status completed:

{
  "id": "b9ae6...",
  "project_id": "proj_abc123",
  "merchant_order_id": "my-order-id-1",
  "created": "2024-01-01T12:00:00.000000+00:00",
  "modified": "2024-01-01T12:02:15.000000+00:00",
  "completed": "2024-01-01T12:02:15.000000+00:00",
  "expiration_period": "PT30M",
  "status": "completed",
  "currency": "EUR",
  "amount": 1295,
  "description": "My amazing order",
  "return_url": "https://www.example.com",
  "payment_url": "https://pay.costplus.com/...",
  "webhook_url": "https://www.example.com/webhook",
  "transactions": [
    {
      "id": "txn_001...",
      "payment_method": "credit-card",
      "payment_method_brand": "visa",
      "payment_method_details": {
        "card_last_four": "4242",
        "card_expiry_month": 12,
        "card_expiry_year": 2026,
        "card_holder_name": "J. Smith"
      },
      "status": "completed",
      "amount": 1295,
      "currency": "EUR"
    }
  ],
  "flags": ["is-test"]
}

Szczegóły transakcji

Każda transakcja w ramach zamówienia zawiera następujące kluczowe pola:

PoleOpis
payment_methodUżyta metoda płatności (np. credit-card, ideal, apple-pay)
payment_method_brandMarka lub wydawca (np. visa, mastercard, amex)
payment_method_detailsObiekt ze szczegółami specyficznymi dla metody, takimi jak ostatnie cztery cyfry karty, data ważności i imię posiadacza
statusStatus tej konkretnej transakcji
amountKwota transakcji w groszach/centach
currencyWaluta transakcji

Nie polegaj wyłącznie na przekierowaniu klienta na Twój return_url jako potwierdzeniu płatności. Zawsze weryfikuj status zamówienia przez API lub webhook przed realizacją zamówienia.

Powiązane punkty końcowe

On this page