Złożenie wniosku o identyfikatory jednostkowe

Przykład

POST https://idissuer.pulab.pl/api/v3/identifiers/unit/requests
Content-Type: application/json
Authorization: Bearer {{AUTH_TOKEN}} 
{
  "economicOperatorId": "PWPK0000001",
  "facilityId": "PWPK0000002",
  "processType": false,
  "machineId": "",
  "routeData": {
    "intendedMarket": "PL",
    "intendedRoute": "",
    "fromOutOfUE": false
  },
  "productData": {
    "cnCode": "Code",
    "productBrand": "Brand",
    "productType": "Cigarette",
    "productTypeDescription": "",
    "productWeight": 15,
    "euCegIdentifier": "12345-12-12345",
    "euCegProductNumber": "12345678901",
    "subTypeName": "",
    "units": 10,
    "optionalId": ""
  },
  "reqQuantity": 15000,
  "processImmediately": false
}
                

"processType" - czy w procesie wykorzystywana jest maszyna
"processImmediately" - opcja "true" spowoduje rozpoczęcie przetwarzania wniosku z pominięciem 24-godzinnego okresu oczekiwania na ewentualną decyzję o anulowaniu.

Odpowiedź

HTTP/1.1 201 Created
Connection: close
Date: Thu, 11 Jan 2024 09:23:37 GMT
Content-Type: application/json; charset=utf-8
Location: /api/v3/identifiers/unit/requests/13
{
    "unitIdentifiersRequestId": 13
}
                

Pobranie szczegółów wniosku o identyfikatory jednostkowe

Przykład

GET https://idissuer.pulab.pl/api/v3/identifiers/unit/requests/10
Content-Type: application/json
Authorization: Bearer {{AUTH_TOKEN}}
                              

Odpowiedź

HTTP/1.1 200 OK
Date: Thu, 11 Jan 2024 09:42:24 GMT
Content-Type: application/json; charset=utf-8
{
    "unitIdentifiersRequestId": 23,
    "economicOperatorId": "PWPK0000001",
    "facilityId": "PWPK0000002",
    "processType": false,
    "machineId": null,
    "routeData": {
        "intendedMarket": "PL",
        "intendedRoute": null,
        "fromOutOfUE": false
    },
    "productData": {
        "cnCode": "Code",
        "productBrand": "Brand",
        "productType": "Cigarette",
        "productTypeDescription": "",
        "productWeight": 15.00,
        "euCegIdentifier": "12345-12-12345",
        "euCegProductNumber": "12345678901",
        "subTypeName": null,
        "units": 10,
        "optionalId": ""
    },
    "reqQuantity": 15000,
    "processImmediately": false,
    "createdOn": "2024-01-11T14:14:31.5626684+00:00",
    "status": "Accepted",
    "createdBy": "user@test.pl"
}

Statusy wniosków o identyfikatory jednostkowe

New - nowy
Rejected - wniosek odrzucony
Accepted - wniosek zaakceptowany, oczekuje 24 godziny na anulowanie
CanceledByClient - wniosek anulowany
PassedToGeneration - wniosek został zaakceptowany bez możliwości anulowania lub upłynął 24 godzinny okres na anulowanie

Powody odrzucenia wniosków o identyfikatory jednostkowe

ContractNotExisting
ContractNotValid
EONotActive
UserHasNoAccessToEO
FacilityNotActive
UserHasNoAccessToFacility
MachineNotActive
FacilityNotAssignedToEO
MachineNotAssignedToFacility
EONotExistingInRouter
FacilityNotExistingInRouter
MachineNotExistingInRouter
FacilityNotAssignedToEOInRouter
MachineNotAssignedToFacilityInRouter
SingleValueAddressExisting
LegacyTechnicalError
MachineIsRegisteredAsMachinePartInRouter

Anulowanie wniosków o identyfikatory jednostkowe

Przykład

PUT https://idissuer.pulab.pl/api/v3/identifiers/unit/requests/23/cancellation
Content-Type: application/json
Authorization: Bearer {{AUTH_TOKEN}
{
  "economicOperatorId": "PWPK0000001",
  "cancellationReason": "Other",
  "cancellationDescription": "test description",
  "cancellationAdditionalDescription": "test additional"
}
                        

Odpowiedź

HTTP/1.1 204 No Content
Date: Thu, 11 Jan 2024 10:34:25 GMT
Content-Type: application/json; charset=utf-8
                        

Powody odrzucenia wniosków o identyfikatory jednostkowe (cancellationReason)

EventNotMaterialise
ErroneousInformation
Other

Wyszukiwanie wniosków o identyfikatory jednostkowe

Przykład

GET https://idissuer.pulab.pl/api/v3/identifiers/unit/requests?economicOperatorId=PWPK0000001
Content-Type: application/json
Authorization: Bearer {{AUTH_TOKEN}
                                

Dopuszczalne parametry wyszukiwania

economicOperatorId - Identyfikator podmiotu
facilityId - Identyfikator zakładu
status - Status wniosku
createdOnFrom - Data rejestracji "od"
createdOnTo - Data rejestracji "do"
pageNumber - numer wybranej strony
pageSize - ilość rekordów na stronę (max 100)

Odpowiedź

HTTP/1.1 200 OK
Date: Thu, 11 Jan 2024 10:34:25 GMT
Content-Type: application/json; charset=utf-8
{
    {
        "items": [
            {
                "unitIdentifiersRequestId": 24,
                "economicOperatorId": "PWPK0000001",
                "facilityId": "PWPK0000002",
                "processType": false,
                "machineId": null,
                "routeData": {
                    "intendedMarket": "PL",
                    "intendedRoute": null,
                    "fromOutOfUE": false
                },
                "productData": {
                    "cnCode": "Code",
                    "productBrand": "Brand",
                    "productType": "Cigarette",
                    "productTypeDescription": "",
                    "productWeight": 15.00,
                    "euCegIdentifier": "12345-12-12345",
                    "euCegProductNumber": "12345678901",
                    "subTypeName": null,
                    "units": 10,
                    "optionalId": ""
                },
                "reqQuantity": 15000,
                "processImmediately": true,
                "createdOn": "2024-01-11T14:23:31.3026842+00:00",
                "status": "PassedToGeneration"
            },
            {
                "unitIdentifiersRequestId": 23,
                "economicOperatorId": "PWPK0000001",
                "facilityId": "PWPK0000002",
                "processType": false,
                "machineId": null,
                "routeData": {
                    "intendedMarket": "PL",
                    "intendedRoute": null,
                    "fromOutOfUE": false
                },
                "productData": {
                    "cnCode": "Code",
                    "productBrand": "Brand",
                    "productType": "Cigarette",
                    "productTypeDescription": "",
                    "productWeight": 15.00,
                    "euCegIdentifier": "12345-12-12345",
                    "euCegProductNumber": "12345678901",
                    "subTypeName": null,
                    "units": 10,
                    "optionalId": ""
                },
                "reqQuantity": 15000,
                "processImmediately": false,
                "createdOn": "2024-01-11T14:14:31.5626684+00:00",
                "status": "CanceledByClient"
            }
    ],
    "pagesCount": 1,
    "totalItemsCount": 2,
    "pageNumber": 1,
    "pageSize": 25
}

Pobranie szczegółów identyfikatorów jednostkowych

Po przejściu wniosku w status "PassedToGeneration" generowane są identyfikatory na opakowania

Przykład

GET https://idissuer.pulab.pl/api/v3/identifiers/unit/24
Content-Type: application/json
Authorization: Bearer {{AUTH_TOKEN}}
        

Odpowiedź

HTTP/1.1 200 OK
Date: Thu, 11 Jan 2024 09:42:24 GMT
Content-Type: application/json; charset=utf-8
{
    "requestId": 24,
    "reqQuantity": 15000,
    "registrationDate": "2024-01-11T14:23:31.3026842+00:00",
    "status": "Synchronized"
}
    

Statusy identyfikatorów

PassedToGeneration - oczekujące na generowanie
Generated - wygenerowane, oczekujące na proces synchronizacji
Synchronized - zsynchronizwane z Dentsu - gotowe do pobrania
CannotSynchronize - błąd synchronizacji - nie można pobrać
Downloaded - pobrane
DownloadConfirmed - potwierdzone

Wyszukiwanie identyfikatorów jednostkowych

Przykład

GET https://idissuer.pulab.pl/api/v3/identifiers/unit?status=Synchronized
Content-Type: application/json
Authorization: Bearer {{AUTH_TOKEN}
                                

Dopuszczalne parametry wyszukiwania

status - Status wniosku
createdOnFrom - Data rejestracji "od"
createdOnTo - Data rejestracji "do"
pageNumber - numer wybranej strony
pageSize - ilość rekordów na stronę (max 100)

Odpowiedź

HTTP/1.1 200 OK
Date: Thu, 11 Jan 2024 10:34:25 GMT
Content-Type: application/json; charset=utf-8
{
    "items": [
        {
            "requestId": 24,
            "reqQuantity": 15000,
            "createdOn": "2024-01-11T14:23:31.3026842+00:00",
            "status": "Synchronized"
        }
    ],
    "pagesCount": 1,
    "totalItemsCount": 1,
    "pageNumber": 1,
    "pageSize": 25
}

Pobranie identyfikatorów jednostkowych

Identyfikatory są gotowe do pobrania w statusie "Synchronized". Formatem wynikowym jest plik csv z listą identyfikatorów.

Przykład

GET https://idissuer.pulab.pl/api/v3/identifiers/unit/24/csv?format=Full
Content-Type: application/json
Authorization: Bearer {{AUTH_TOKEN}}
        

Format identyfikatorów

Full - pełny
WithoutProductCode - bez kodu produktu

Odpowiedź

HTTP/1.1 200 OK
Date: Thu, 11 Jan 2024 09:42:24 GMT
Content-Type: application/octet-stream
Content-Disposition: attachment; filename=24.csv; filename*=UTF-8''24.csv
        

Potwierdzanie identyfikatorów jednostkowych

Przykład

PUT https://idissuer.pulab.pl/api/v3/identifiers/unit/10/confirmation
Content-Type: application/json
Authorization: Bearer {{AUTH_TOKEN}}
{
  "checksum": "f741c63818a3ea47ec5492e86b1c1b2432fecb5eb4ceb3a5fe57cd6c091b91fb",
  "format": "Full"
}
            

Suma kontrolna jest wyliczana algorytmem SHA256 z pliku csv.

Odpowiedź

HTTP/1.1 204 No Content
Date: Thu, 11 Jan 2024 09:42:24 GMT
Content-Type: application/json; charset=utf-8