Infoga data i Position Green
För att importera filer till Position Green kan du skicka HTTP POST-förfrågningar till import-slutpunkterna. Synkrona uppladdningar behandlas omedelbart, medan kö-ändpunkter möjliggör asynkron bakgrundsbehandling av stora datamängder.
https://api.positiongreen.com/v1/imports
Du måste ange giltiga autentiseringsuppgifter i form av en åtkomsttoken eller en header med klient-id och hemlig nyckel.
Hämta tillgängliga importkonfigurationer
Hämtar en lista över tillgängliga importkonfigurationsnycklar för den autentiserade kunden.
GET https://api.positiongreen.com/v1/imports
Exempel på svar (200 OK)
[ "ERP_FINANCIAL_IMPORT", "FACILITY_ENERGY_IMPORT", "TRAVEL_DATA_IMPORT" ]
Anmärkning om värdena för fileType och yearId
fileType / importConfiguration är ett strängvärde som måste stämma överens med en befintlig importkonfigurationsnyckel i Position Green. Tillgängliga konfigurationsnycklar kan hämtas via GET /imports eller tillhandahållas av Position Green på begäran.
Valfri parameter ”yearId ”: Alla import-ändpunkter accepterar en valfri parameter ”yearId” (UUID). Om detta utelämnas kommer uppgifterna att importeras till organisationens aktuella verksamhetsår.
Synkrona importändpunkter
1. Uppladdning av binärfil (flerdelat formulär)
Begäran måste ha innehållstypen multipart/form-data, där filen skickas som fil, tillsammans med fileType (sträng) och det valfria yearId (UUID).
POST https://api.positiongreen.com/v1/imports
2. Importera JSON-data
För importer som har konfigurerats av Position Green för att hantera JSON-data.
POST https://api.positiongreen.com/v1/imports/json
Exempel på begäran:
{
"options": {
"importConfiguration": "ERP_FINANCIAL_IMPORT"
},
"payload": "{\"records\": [{\"konto\": \"1001\", \"amount\": 520.50}]}",
"yearId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}3. Importera en Base64-kodad fil
Uppladdning av en fil som är kodad i Base64-strängformat.
POST https://api.positiongreen.com/v1/imports/base64
Exempel på begäran:
{
"name": "data-export.xml",
"content": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4...",
"fileType": "ERP_FINANCIAL_IMPORT",
"yearId": null
}Bakgrund / Importändpunkter i kö
För stora datamängder ska du använda användningen av /queue-ändpunkterna. Dessa slutpunkter returnerar omedelbart med HTTP-statusen 202 Accepted och en importId. Du kan skicka en förfrågan till status-ändpunkten för att följa hur det går.
| Slutpunkt | Format | Beskrivning |
POST /imports/queue | multipart/form-data | Sätter en uppladdning av en binär fil i kö för att köras i bakgrunden. |
POST /imports/queue/json | application/json | Ställer en JSON-payload i kö för körning i bakgrunden. |
POST /imports/queue/base64 | application/json | Ställer en Base64-kodad fil i kö för körning i bakgrunden. |
Exempel på svar i kö (202 Godkänt)
{
"importId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"
}Kontrollera status för import i kö
Använda en förfrågan för denna slutpunkt importId som returneras från en /queue -ändpunkt för att kontrollera bearbetningsstatusen.
HÄMTA ”https://api.positiongreen.com/v1/imports/status/”{importId}Parametrar för sökväg
| År | Ämne | Beskrivning |
| importId* | sträng (uuid) | Obligatoriskt. Den identifierare som returnerades när importen lades i kö. |
Exempel på statussvar (200 OK)
{
"importId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"status": "Done",
"startedAt": "2026-02-01T10:00:00Z",
"finishedAt": "2026-02-01T10:02:15Z",
"details": {
"validations": [
{
"severity": "Info",
"message": "150 poster har importerats."
}
]
}
}Möjliga status värden: I kö, Pågår, Klar, Misslyckad.
Exempel 1 – Användning av HttpClient för att importera en fil till Position Green API
namespace TestClient;
public class Program
{
private static string apiUrl = "https://api.positiongreen.com/v1/imports";
private static string loginUrl = "https://login.positiongreen.com/connect/token";
public static async Task Main()
{
var token = await RequestToken("clientid", "clientsecret");
var fileType = "ERP_FINANCIAL_IMPORT";
await UploadFile(token, "data.xml", fileType);
}
private static async Task<string> RequestToken(string clientId, string clientSecret)
{
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Accept", "application/json");
client.BaseAddress = new Uri(loginUrl);
var data = new Dictionary<string, string>
{
{"client_id", clientId}
{"client_secret", clientSecret}
{"grant_type", "client_credentials"}
};
var response = await client.PostAsync("/connect/token", new FormUrlEncodedContent(data));
var token = await response.Content.ReadFromJsonAsync<Token>();
return token.access_token;
}
static async Task UploadFile(string token, string file, string fileType)
{
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
var form = new MultipartFormDataContent();
var fileData = await File.ReadAllBytesAsync(file);
var byteArrayContent = new ByteArrayContent(fileData);
byteArrayContent.Headers.ContentType = MediaTypeHeaderValue.Parse("text/xml");
form.Add(byteArrayContent, "file", file);
form.Add(new StringContent(fileType), "fileType");
var response = await client.PostAsync(apiUrl, form);
if (!response.IsSuccessStatusCode)
{
throw new Exception(await response.Content.ReadAsStringAsync());
}
}
}
public class Token
{
public string access_token { get; set; }
}Utforska hela avsnittet ”Import” på vår Swagger-sida.
Var artikeln till hjälp?
Toppen!
Tack för din feedback
Vi beklagar att det inte var till hjälp
Tack för din feedback
Feddback skickat
Vi uppskattar din feedback och uppdaterar artikeln vid behov