# Detail pesanan

`GET /account/api/v1/orders/{id}`

## Otorisasi

`Authorization: Bearer YOUR_ARNPROXY_API_KEY`

`Accept: application/json`

Izin yang diperlukan: `read`

## Parameter

| Nama | Tipe | Wajib / Bersyarat | Nilai bawaan | Keterangan |
|---|---|---|---|---|
| `id` (path) | integer | Wajib | — | ID catatan milik sendiri untuk operasi ini; 1–2147483647. Bukan nomor pesanan tampilan atau ID penyedia. |

## Contoh permintaan

### curl

```curl
printf 'Authorization: Bearer %s\n' "$ARNPROXY_API_KEY" |
  curl --silent --show-error --header @- \
    --header 'Accept: application/json' \
    --connect-timeout 10 --max-time 30 \
    'https://www.arnproxy.com/account/api/v1/orders/YOUR_ORDER_ID'
```

### python

```python
import os, requests

headers = {"Authorization": "Bearer " + os.environ["ARNPROXY_API_KEY"]}
response = requests.get(
    "https://www.arnproxy.com/account/api/v1/orders/YOUR_ORDER_ID",
    headers=headers,
    timeout=(10, 30), allow_redirects=False
)
print(response.status_code, response.text)
# No automatic write retry.
```

### javascript

```javascript
const headers = { Authorization: `Bearer ${process.env.ARNPROXY_API_KEY}` };
const response = await fetch("https://www.arnproxy.com/account/api/v1/orders/YOUR_ORDER_ID", {
  method: 'GET', headers, redirect: 'error',
  signal: AbortSignal.timeout(30000)
});
console.log(response.status, await response.text());
// A write timeout is ambiguous; query its saved operation.
```

### php

```php
<?php
$headers = ['Accept: application/json',
    'Authorization: Bearer '.getenv('ARNPROXY_API_KEY')];
$ch = curl_init('https://www.arnproxy.com/account/api/v1/orders/YOUR_ORDER_ID');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_FOLLOWLOCATION => false,
    CURLOPT_SSL_VERIFYPEER => true, CURLOPT_SSL_VERIFYHOST => 2,
    CURLOPT_CONNECTTIMEOUT => 10, CURLOPT_TIMEOUT => 30,
]);
$result = curl_exec($ch);
if ($result === false) {
    // Do not repeat a write; use the original operation key.
    throw new RuntimeException('Transport result unknown');
}
echo curl_getinfo($ch, CURLINFO_HTTP_CODE).PHP_EOL.$result;
curl_close($ch);
```

### go

```go
package main

import (
  "fmt"
  "io"
  "net/http"
  "os"
  "time"
)

func main() {
  client := &http.Client{Timeout: 30*time.Second,
    CheckRedirect: func(req *http.Request, via []*http.Request) error {
      return http.ErrUseLastResponse
    }}
  var body io.Reader
  req, err := http.NewRequest("GET", "https://www.arnproxy.com/account/api/v1/orders/YOUR_ORDER_ID", body)
  if err != nil { panic(err) }
  req.Header.Set("Authorization", "Bearer "+os.Getenv("ARNPROXY_API_KEY"))
  res, err := client.Do(req); if err != nil { panic(err) }
  defer res.Body.Close()
  data, err := io.ReadAll(res.Body); if err != nil { panic(err) }
  fmt.Println(res.StatusCode, string(data))
}
```

### csharp

```csharp
using System;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;

using var handler = new HttpClientHandler { AllowAutoRedirect = false };
using var client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(30) };
using var request = new HttpRequestMessage(HttpMethod.Get,
    "https://www.arnproxy.com/account/api/v1/orders/YOUR_ORDER_ID");
request.Headers.Authorization = new AuthenticationHeaderValue(
    "Bearer", Environment.GetEnvironmentVariable("ARNPROXY_API_KEY"));
using var response = await client.SendAsync(request);
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(await response.Content.ReadAsStringAsync());
// Never automatically retry an ambiguous write.
```

### java

```java
import java.net.URI;
import java.net.http.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.*;

// Inside your application method:
var client = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder(URI.create("https://www.arnproxy.com/account/api/v1/orders/YOUR_ORDER_ID"))
    .header("Authorization", "Bearer " + System.getenv("ARNPROXY_API_KEY"))
    .header("Accept", "application/json")
    .GET()
    .build();
var response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
```

## Respons · HTTP 200

```json
{
  "ok": true,
  "data": {
    "id": 10001,
    "number": "1000010001",
    "quantity": 1,
    "local_status_code": 1,
    "last_service_date": "2030-02-01"
  },
  "meta": {
    "request_id": "000000000000000000000001",
    "phase": "public_v1",
    "source": "arnproxy_records"
  }
}
```

| Nama | Tipe | Bersyarat | Keterangan |
|---|---|---|---|
| `ok` | boolean | — | Penanda berhasil; jika false, periksa error.code. |
| `data` | object | — | Hasil khusus operasi; contoh bersifat ilustratif dan sintetis. |
| `data.id` | integer | — | ID catatan ARNPROXY terkait; gunakan alih-alih ID internal penyedia. |
| `data.number` | string | — | Nomor pesanan tampilan; tidak sama dengan kolom yang meminta id. |
| `data.quantity` | integer | — | Jumlah proxy terpilih atau dipesan. |
| `data.local_status_code` | integer | — | Kode status pesanan situs; gunakan order_delivery untuk menilai pengiriman. |
| `data.last_service_date` | string | — | Hari layanan terakhir: saat ini, sebelumnya, atau proyeksi harga. Proyeksi tidak memperpanjang. |
| `meta` | object | — | Metadata korelasi permintaan dan sumber data. |
| `meta.request_id` | string | — | ID korelasi permintaan HTTP ini, bukan kunci operasi atau ID pesanan. |
| `meta.phase` | string | — | Nilai khusus operasi untuk phase. Pertahankan tipe yang dikembalikan dan baca catatan perilaku. |
| `meta.source` | string | — | Sumber data; catatan lokal dan kueri penyedia langsung merupakan bukti berbeda. |

## Perilaku & catatan penting

- id ialah ID catatan pesanan ARNPROXY, bukan nomor tampilan. Kueri pengiriman tidak memulai pemeriksaan penyedia langsung atau pengiriman ulang.

Autentikasi dan validasi dapat menolak permintaan sebelum dijalankan. Lihat referensi kesalahan dan simpan request_id untuk dukungan. Jangan kirim kunci atau kata sandi.

[Kesalahan & batas](https://docs.arnproxy.com/id/api-v1/errors)
