{"items":[{"type":"link","label":"API Reference","link":"/sprintpay/openapi","routeSlug":"/sprintpay/openapi","content":{"contentType":"overview","meta":{"name":"API Reference"},"children":[{"nodeType":"container","panels":[{"title":"Download OpenAPI description","titleTranslationKey":"download.description.title","children":[{"kind":"download","label":"openapi.json","url":"/_bundle/sprintpay/openapi.json?download"},{"kind":"download","label":"openapi.yaml","url":"/_bundle/sprintpay/openapi.yaml?download"}]},{"title":"Overview","titleTranslationKey":"info.title","children":[{"kind":"externallink","title":"URL","titleTranslationKey":"info.contact.url","label":"https://cargosprint.com/contact-us/","url":"https://cargosprint.com/contact-us/"},{"kind":"email","title":"E-mail","titleTranslationKey":"info.contact.name","email":"support@cargosprint.com","label":"support@cargosprint.com","withCopyButton":true,"copyContent":"support@cargosprint.com"},{"kind":"externallink","title":"License","titleTranslationKey":"info.license","label":"CargoSprint Terms of Use","url":"https://cargosprint.com/legal/terms-of-use/sprintpay/"},{"kind":"externallink","label":"Terms of Service","labelTranslationKey":"info.termsOfService","url":"https://cargosprint.com/legal/terms-of-use/sprintpay/"}]},{"title":"Languages","titleTranslationKey":"languages.title","children":[{"kind":"languages","options":[{"key":"curl","title":"curl","lang":"curl"},{"key":"javascript","title":"JavaScript","lang":"JavaScript"},{"key":"node","title":"Node.js","lang":"Node.js"},{"key":"python","title":"Python","lang":"Python"},{"key":"java","title":"Java","lang":"Java"},{"key":"csharp","title":"C#","lang":"C#"},{"key":"php","title":"PHP","lang":"PHP"},{"key":"go","title":"Go","lang":"Go"},{"key":"ruby","title":"Ruby","lang":"Ruby"},{"key":"r","title":"R","lang":"R"},{"key":"payload","title":"Payload","lang":"Payload"}]}]},{"title":"Servers","titleTranslationKey":"servers.title","children":[{"kind":"servers","servers":[{"url":"/_mock/sprintpay/openapi","description":"Mock server","isMockServer":true},{"url":"https://{service}.cargosprintgroup.com","description":"Production","variables":{"service":{"default":"cart","description":"Service host for the endpoint being called.","enum":["oauth","facilities","cart","invoices","payments"]}}},{"url":"https://{service}-staging.cargosprintgroup.com","description":"Staging","variables":{"service":{"default":"cart","description":"Service host for the endpoint being called.","enum":["oauth","facilities","cart","invoices","payments"]}}}],"mode":"default"}]}],"children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"header","level":1,"label":"API Reference (1.0.0)","showPageActions":true},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Comprehensive reference for integrating with CargoSprint API endpoints."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"SprintPay lets partners discover cargo facilities, retrieve charges, submit payments,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"and download receipts and invoices programmatically. Access is granted per partner —"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"contact your CargoSprint relationship manager to request credentials."},"children":[]}]}]}]}],"sectionId":"/sprintpay/openapi"}],"sectionId":"/sprintpay/openapi"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/authentication"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Every endpoint uses OAuth 2.0 client credentials. Request an access token, then send it"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"as a bearer token on subsequent calls."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The token request and the calls that follow authenticate differently:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"POST /oauth2/token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" uses HTTP Basic authentication with your client ID and"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"client secret."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Every other endpoint"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" uses "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Authorization: Bearer <access_token>"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"X-APP-ID: <your account identifier>"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is required on "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"every"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" request, including the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"token request. It is issued with your credentials and sent exactly as provided."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Tokens are valid for one hour. Cache and reuse them rather than requesting one per call,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"and request a new token when the current one expires."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"401"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is always returned "},"children":[]},{"$$mdtype":"Node","type":"em","inline":true,"attributes":{"marker":"*"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"before"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" a request is processed, so it never indicates a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"payment that partially completed. It is safe to request a new token and retry once. Do"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"not retry other error responses automatically."},"children":[]}]}]}]}],"sectionId":"/sprintpay/openapi/section/authentication"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/environments"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Environments"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A staging environment is available for integration work. Staging and production are"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"fully isolated: payments made in staging settle against sandbox processors and have no"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"effect on production billing. Staging holds a partial copy of production reference data,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"so some identifiers valid in production may not resolve there."},"children":[]}]}]}]}],"sectionId":"/sprintpay/openapi/section/environments"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/requests-and-responses"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Requests and responses"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Payment requests are submitted as an array and each item is processed independently."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The HTTP status stays "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"200"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" even when individual items fail"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", so inspect the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"saleStatus"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" of every element in the response rather than relying on the status code."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"An item with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"saleStatus"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ERROR"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" did not move money."},"children":[]}]}]}]}],"sectionId":"/sprintpay/openapi/section/requests-and-responses"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/errors"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Errors"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Two kinds of error can be returned, and they are handled differently:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Transport and authorization errors"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" apply to every endpoint and are returned as"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"standard HTTP status codes — "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"400"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for a malformed request, "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"401"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for missing or"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"expired credentials, "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"403"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" where access is not permitted, "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"404"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" where a record does"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"not exist, and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"5xx"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for a temporary failure. These are described once here and are"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"not repeated on each operation."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Per-item business errors"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" are specific to payment submission. They are returned"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"inside a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"200"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" response on the individual item, in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"saleResponse"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", and describe why"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"that item was not accepted — for example a facility that could not be found, a"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"missing required field, or a payment detected as a duplicate of one already"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"submitted. Where an endpoint returns an error unique to it, that error is documented"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"on the endpoint itself."},"children":[]}]}]}]}]}],"sectionId":"/sprintpay/openapi/section/errors"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/not-currently-supported"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Not currently supported"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The following are handled outside the API today, and are worth designing around rather"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"than waiting for:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Refunds, voids and partial payments"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhooks or payment status callbacks — the response to a payment request is the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"source of truth"},"children":[]}]}]}]}]}],"sectionId":"/sprintpay/openapi/section/not-currently-supported"}]}]}},{"type":"link","label":"Authentication","link":"/sprintpay/openapi/section/authentication","routeSlug":"/sprintpay/openapi/section/authentication","content":null},{"type":"link","label":"Environments","link":"/sprintpay/openapi/section/environments","routeSlug":"/sprintpay/openapi/section/environments","content":null},{"type":"link","label":"Requests and responses","link":"/sprintpay/openapi/section/requests-and-responses","routeSlug":"/sprintpay/openapi/section/requests-and-responses","content":null},{"type":"link","label":"Errors","link":"/sprintpay/openapi/section/errors","routeSlug":"/sprintpay/openapi/section/errors","content":null},{"type":"link","label":"Not currently supported","link":"/sprintpay/openapi/section/not-currently-supported","routeSlug":"/sprintpay/openapi/section/not-currently-supported","content":null},{"type":"group","label":"Oauth","link":"/sprintpay/openapi/oauth","routeSlug":"/sprintpay/openapi/oauth","items":[{"label":"Get Authorization Token","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/sprintpay/openapi/oauth/getauthorizationtoken","routeSlug":"/sprintpay/openapi/oauth/getauthorizationtoken","metadata":{"seo":{"title":"Get Authorization Token","description":"Exchange client credentials for an access token. Send the credentials using HTTP Basic authentication."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"getAuthorizationToken","name":"Get Authorization Token","isWebhook":false,"pointer":"/paths/~1oauth2~1token/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get Authorization Token","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Exchange client credentials for an access token. Send the credentials using HTTP Basic authentication.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"basicAuth","scopes":[],"type":"http","scheme":"basic","description":"Client ID and client secret, used only on the token endpoint.\n"},{"name":"appId","scopes":[],"type":"apiKey","in":"header","paramName":"X-APP-ID","description":"Account identifier issued with your credentials. Required on every request, including the token request, and sent exactly as provided.\n"}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/x-www-form-urlencoded"],"mediaTypeSchemas":{"application/x-www-form-urlencoded":{"schemaId":"schema_48"}},"schemaId":"schema_48","pointer":"/paths/~1oauth2~1token/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/oauth2/token","servers":[{"url":"/_mock/sprintpay/openapi","description":"Mock server","isMockServer":true},{"url":"https://oauth.cargosprintgroup.com","description":"Production"},{"url":"https://oauth-staging.cargosprintgroup.com","description":"Staging"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"basicAuth","type":"http","scheme":"basic"},{"id":"appId","type":"apiKey","name":"X-APP-ID","in":"header"}],"scopes":[]}],"requestBody":{"application/x-www-form-urlencoded":{"schemaId":"schema_48"}},"responseCodes":["200","400","401"],"pointer":"/oauth2/token","href":"oauth/getauthorizationtoken","openApiOperationId":"getAuthorizationToken","summary":"Get Authorization Token"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/sprintpay/openapi","description":"Mock server","isMockServer":true},{"url":"https://oauth.cargosprintgroup.com","description":"Production"},{"url":"https://oauth-staging.cargosprintgroup.com","description":"Staging"}],"schemaId":"schema_48","mediaTypes":["application/x-www-form-urlencoded"],"mediaTypeSchemas":{"application/x-www-form-urlencoded":{"schemaId":"schema_48"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Token issued.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/TokenResponse"}},"schemaId":"components/schemas/TokenResponse"},{"code":"400","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The token request was rejected — for example an unsupported "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"grant_type"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or a malformed request body."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/TokenError"}},"schemaId":"components/schemas/TokenError"},{"code":"401","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The client credentials were not accepted, or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"X-APP-ID"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" was missing."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/TokenError"}},"schemaId":"components/schemas/TokenError"}],"pointer":"/paths/~1oauth2~1token/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"components/schemas/TokenResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/TokenResponse"}}},{"code":"400","schemaId":"components/schemas/TokenError","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/TokenError"}}},{"code":"401","schemaId":"components/schemas/TokenError","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/TokenError"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/oauth/getauthorizationtoken"}],"panels":[]}]},"httpPath":"/oauth2/token"}],"content":{"contentType":"group","meta":{"name":"Oauth"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Oauth","showPageActions":true},{"nodeType":"markdoc","content":"The SprintPay API uses OAuth 2.0 client credentials. Request an access token, then send it as a bearer token on every call along with your account identifier header. Tokens are valid for one hour; cache and reuse them, and request a new one on expiry."}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/oauth2/token","summary":"Get Authorization Token","prefix":{"name":"post","color":"post"},"badges":[],"link":"/oauth/getauthorizationtoken","deprecated":false}]}]}]}]}},{"type":"group","label":"Facilities","link":"/sprintpay/openapi/facilities","routeSlug":"/sprintpay/openapi/facilities","items":[{"label":"Get All Facilities","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/sprintpay/openapi/facilities/getfacilities","routeSlug":"/sprintpay/openapi/facilities/getfacilities","metadata":{"seo":{"title":"Get All Facilities","description":"Search the facility catalog. Supply at least one filter. Results are paginated."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"getFacilities","name":"Get All Facilities","isWebhook":false,"pointer":"/paths/~1facilities/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get All Facilities","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Search the facility catalog. Supply at least one filter. Results are paginated."},{"nodeType":"security","requirements":[{"schemes":[{"name":"bearerAuth","scopes":[],"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token returned by the authorization endpoint."},{"name":"appId","scopes":[],"type":"apiKey","in":"header","paramName":"X-APP-ID","description":"Account identifier issued with your credentials. Required on every request, including the token request, and sent exactly as provided.\n"}]}]},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"name","in":"query","schemaId":"schema_49","description":"Facility name, or part of it."},{"name":"firmsCode","in":"query","schemaId":"schema_50","description":"Facilities Information and Resources Management System (FIRMS) code."},{"name":"airportCode","in":"query","schemaId":"schema_51","description":"Three letter IATA airport code."},{"name":"airlinePrefix","in":"query","schemaId":"schema_52","description":"Three digit airline prefix."},{"name":"page","in":"query","schemaId":"schema_53","description":"Zero indexed page number."},{"name":"size","in":"query","schemaId":"schema_54","description":"Number of results per page."}],"pointer":"/paths/~1facilities/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/facilities","servers":[{"url":"/_mock/sprintpay/openapi","description":"Mock server","isMockServer":true},{"url":"https://{service}.cargosprintgroup.com","description":"Production","variables":{"service":{"default":"cart","enum":["oauth","facilities","cart","invoices","payments"]}}},{"url":"https://{service}-staging.cargosprintgroup.com","description":"Staging","variables":{"service":{"default":"cart","enum":["oauth","facilities","cart","invoices","payments"]}}}],"parameters":{"path":[],"query":[{"name":"name","in":"query","required":false,"example":"Worldwide Flight Services","schemaId":"schema_49"},{"name":"firmsCode","in":"query","required":false,"example":"E528","schemaId":"schema_50"},{"name":"airportCode","in":"query","required":false,"example":"LAX","schemaId":"schema_51"},{"name":"airlinePrefix","in":"query","required":false,"example":"020","schemaId":"schema_52"},{"name":"page","in":"query","required":false,"example":0,"schemaId":"schema_53"},{"name":"size","in":"query","required":false,"example":10,"schemaId":"schema_54"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"bearerAuth","type":"http","scheme":"bearer","bearerFormat":"JWT"},{"id":"appId","type":"apiKey","name":"X-APP-ID","in":"header"}],"scopes":[]}],"responseCodes":["200","401"],"pointer":"/facilities","href":"facilities/getfacilities","openApiOperationId":"getFacilities","summary":"Get All Facilities"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/sprintpay/openapi","description":"Mock server","isMockServer":true},{"url":"https://{service}.cargosprintgroup.com","description":"Production","variables":{"service":{"default":"cart"}}},{"url":"https://{service}-staging.cargosprintgroup.com","description":"Staging","variables":{"service":{"default":"cart"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Matching facilities.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FacilityPage"}},"schemaId":"components/schemas/FacilityPage"},{"code":"401","description":"Missing, invalid or expired credentials. Returned before a payment is processed, so it is safe to request a new token and retry once.\n","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1facilities/get/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"components/schemas/FacilityPage","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/FacilityPage"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/facilities/getfacilities"}],"panels":[]}]},"httpPath":"/facilities"},{"label":"Get Facility Details","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/sprintpay/openapi/facilities/getfacility","routeSlug":"/sprintpay/openapi/facilities/getfacility","metadata":{"seo":{"title":"Get Facility Details","description":"Retrieve a single facility. When the facility is served by an integration, the response includes an integration block giving the supported operations, the query fields required to fetch charges, and any constraints on which shipments the integration handles. A facility without that block is paid directly, with no charge lookup."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"getFacility","name":"Get Facility Details","isWebhook":false,"pointer":"/paths/~1getFacility~1{id}/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get Facility Details","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Retrieve a single facility. When the facility is served by an integration, the response includes an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"integration"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" block giving the supported operations, the query fields required to fetch charges, and any constraints on which shipments the integration handles. A facility without that block is paid directly, with no charge lookup."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Read this block at request time rather than caching it. Facilities are added to integrations over time, and the block always reflects the current state."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"bearerAuth","scopes":[],"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token returned by the authorization endpoint."},{"name":"appId","scopes":[],"type":"apiKey","in":"header","paramName":"X-APP-ID","description":"Account identifier issued with your credentials. Required on every request, including the token request, and sent exactly as provided.\n"}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"id","in":"path","schemaId":"schema_55","description":"Facility identifier.","required":true}],"pointer":"/paths/~1getFacility~1{id}/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/getFacility/{id}","servers":[{"url":"/_mock/sprintpay/openapi","description":"Mock server","isMockServer":true},{"url":"https://{service}.cargosprintgroup.com","description":"Production","variables":{"service":{"default":"cart","enum":["oauth","facilities","cart","invoices","payments"]}}},{"url":"https://{service}-staging.cargosprintgroup.com","description":"Staging","variables":{"service":{"default":"cart","enum":["oauth","facilities","cart","invoices","payments"]}}}],"parameters":{"path":[{"name":"id","in":"path","required":true,"example":6225,"schemaId":"schema_55"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"bearerAuth","type":"http","scheme":"bearer","bearerFormat":"JWT"},{"id":"appId","type":"apiKey","name":"X-APP-ID","in":"header"}],"scopes":[]}],"responseCodes":["200","401","404"],"pointer":"/getFacility/{id}","href":"facilities/getfacility","openApiOperationId":"getFacility","summary":"Get Facility Details"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/sprintpay/openapi","description":"Mock server","isMockServer":true},{"url":"https://{service}.cargosprintgroup.com","description":"Production","variables":{"service":{"default":"cart"}}},{"url":"https://{service}-staging.cargosprintgroup.com","description":"Staging","variables":{"service":{"default":"cart"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"The facility.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Facility"}},"schemaId":"components/schemas/Facility"},{"code":"401","description":"Missing, invalid or expired credentials. Returned before a payment is processed, so it is safe to request a new token and retry once.\n","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"Not found.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1getFacility~1{id}/get/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"components/schemas/Facility","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Facility"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/facilities/getfacility"}],"panels":[]}]},"httpPath":"/getFacility/{id}"},{"label":"Get Shipment Charges","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/sprintpay/openapi/facilities/getfacilitycharges","routeSlug":"/sprintpay/openapi/facilities/getfacilitycharges","metadata":{"seo":{"title":"Get Shipment Charges","description":"Retrieve the charges an integration holds for a shipment. Call this before paying a facility that has an integration block, then submit the returned charges in the payment request. Build the request from the operations and queryFields advertised on that block."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"getFacilityCharges","name":"Get Shipment Charges","isWebhook":false,"pointer":"/paths/~1facility~1{facilityId}~1lookup/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get Shipment Charges","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Retrieve the charges an integration holds for a shipment. Call this before paying a facility that has an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"integration"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" block, then submit the returned charges in the payment request. Build the request from the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"operations"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"queryFields"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" advertised on that block."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Three outcomes are possible. Charges are returned and must be paid through "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"integrationCharges"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". An "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"alertMessage"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"REDIRECT_TO_STANDARD_FLOW"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" means the integration does not handle this shipment, and it should be paid directly with no "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"integrationCharges"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". A "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"404"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" reporting no charges means the integration handled the shipment and nothing is payable, so no payment should be submitted."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"bearerAuth","scopes":[],"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token returned by the authorization endpoint."},{"name":"appId","scopes":[],"type":"apiKey","in":"header","paramName":"X-APP-ID","description":"Account identifier issued with your credentials. Required on every request, including the token request, and sent exactly as provided.\n"}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"facilityId","in":"path","schemaId":"schema_55","description":"Facility identifier.","required":true}],"pointer":"/paths/~1facility~1{facilityId}~1lookup/get/parameters"},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"operation","in":"query","schemaId":"schema_56","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"One of the facility's "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"integration.operations"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" values."},"children":[]}]}]}],"required":true},{"name":"queryFields","in":"query","schemaId":"schema_57","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Comma separated field keys, ordered to match "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"queryValues"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"required":true},{"name":"queryValues","in":"query","schemaId":"schema_58","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Comma separated values, ordered to match "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"queryFields"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"required":true}],"pointer":"/paths/~1facility~1{facilityId}~1lookup/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/facility/{facilityId}/lookup","servers":[{"url":"/_mock/sprintpay/openapi","description":"Mock server","isMockServer":true},{"url":"https://{service}.cargosprintgroup.com","description":"Production","variables":{"service":{"default":"cart","enum":["oauth","facilities","cart","invoices","payments"]}}},{"url":"https://{service}-staging.cargosprintgroup.com","description":"Staging","variables":{"service":{"default":"cart","enum":["oauth","facilities","cart","invoices","payments"]}}}],"parameters":{"path":[{"name":"facilityId","in":"path","required":true,"example":6225,"schemaId":"schema_55"}],"query":[{"name":"operation","in":"query","required":true,"example":"MASTER","schemaId":"schema_56"},{"name":"queryFields","in":"query","required":true,"example":"awb","schemaId":"schema_57"},{"name":"queryValues","in":"query","required":true,"example":"020-12345678","schemaId":"schema_58"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"bearerAuth","type":"http","scheme":"bearer","bearerFormat":"JWT"},{"id":"appId","type":"apiKey","name":"X-APP-ID","in":"header"}],"scopes":[]}],"responseCodes":["200","401","404"],"pointer":"/facility/{facilityId}/lookup","href":"facilities/getfacilitycharges","openApiOperationId":"getFacilityCharges","summary":"Get Shipment Charges"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/sprintpay/openapi","description":"Mock server","isMockServer":true},{"url":"https://{service}.cargosprintgroup.com","description":"Production","variables":{"service":{"default":"cart"}}},{"url":"https://{service}-staging.cargosprintgroup.com","description":"Staging","variables":{"service":{"default":"cart"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Charges, or an alert indicating the shipment is not handled by the integration.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/LookupResponse"}},"schemaId":"components/schemas/LookupResponse"},{"code":"401","description":"Missing, invalid or expired credentials. Returned before a payment is processed, so it is safe to request a new token and retry once.\n","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"The integration handled the shipment and nothing is payable, or the shipment is not known to it. No payment should be submitted.\n","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1facility~1{facilityId}~1lookup/get/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"components/schemas/LookupResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/LookupResponse"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/facilities/getfacilitycharges"}],"panels":[]}]},"httpPath":"/facility/{facilityId}/lookup"}],"content":{"contentType":"group","meta":{"name":"Facilities"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Facilities","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Find payable facilities and retrieve the charges held for a shipment."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A facility served by an integration returns an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"integration"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" block describing how to"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"fetch its charges. A facility without that block is paid directly, with no lookup."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"See "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Paying a Facility"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for the full decision flow."},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/facilities","summary":"Get All Facilities","prefix":{"name":"get","color":"get"},"badges":[],"link":"/facilities/getfacilities","deprecated":false},{"title":"/getFacility/{id}","summary":"Get Facility Details","prefix":{"name":"get","color":"get"},"badges":[],"link":"/facilities/getfacility","deprecated":false},{"title":"/facility/{facilityId}/lookup","summary":"Get Shipment Charges","prefix":{"name":"get","color":"get"},"badges":[],"link":"/facilities/getfacilitycharges","deprecated":false}]}]}]}]}},{"type":"group","label":"Cart","link":"/sprintpay/openapi/cart","routeSlug":"/sprintpay/openapi/cart","items":[{"label":"Make Payment","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/sprintpay/openapi/cart/makepayment","routeSlug":"/sprintpay/openapi/cart/makepayment","metadata":{"seo":{"title":"Make Payment","description":"Submit one or more payments. Each item is processed independently: the HTTP status remains 200 and unsuccessful items are returned with saleStatus of ERROR, so every element of the response should be inspected."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"makePayment","name":"Make Payment","isWebhook":false,"pointer":"/paths/~1payment/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Make Payment","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Submit one or more payments. Each item is processed independently: the HTTP status remains "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"200"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and unsuccessful items are returned with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"saleStatus"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ERROR"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", so every element of the response should be inspected."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For a facility with no integration, send the amount directly. For a facility served by an integration, first retrieve the charges and submit them in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"integrationCharges"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"; "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"amount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must equal their sum exactly, as partial payments and overpayments are not supported."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Submissions are checked for duplicates against the payer, facility, shipment reference, charge classification and amount. To pay two genuinely separate charges that would otherwise look identical, give each a distinct "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"customerReference"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"bearerAuth","scopes":[],"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token returned by the authorization endpoint."},{"name":"appId","scopes":[],"type":"apiKey","in":"header","paramName":"X-APP-ID","description":"Account identifier issued with your credentials. Required on every request, including the token request, and sent exactly as provided.\n"}]}]},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"sendNotification","in":"query","schemaId":"schema_59","description":"Send the payment confirmation email and document to the recipient."},{"name":"source","in":"query","schemaId":"schema_60","description":"Originating channel identifier."}],"pointer":"/paths/~1payment/post/parameters"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_61","exampleIds":["paths/~1payment/post/requestBody/content/application~1json/examples/direct_payment","paths/~1payment/post/requestBody/content/application~1json/examples/integration_payment"]}},"schemaId":"schema_61","exampleIds":["paths/~1payment/post/requestBody/content/application~1json/examples/direct_payment","paths/~1payment/post/requestBody/content/application~1json/examples/integration_payment"],"pointer":"/paths/~1payment/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/payment","servers":[{"url":"/_mock/sprintpay/openapi","description":"Mock server","isMockServer":true},{"url":"https://{service}.cargosprintgroup.com","description":"Production","variables":{"service":{"default":"cart","enum":["oauth","facilities","cart","invoices","payments"]}}},{"url":"https://{service}-staging.cargosprintgroup.com","description":"Staging","variables":{"service":{"default":"cart","enum":["oauth","facilities","cart","invoices","payments"]}}}],"parameters":{"path":[],"query":[{"name":"sendNotification","in":"query","required":false,"example":true,"schemaId":"schema_59"},{"name":"source","in":"query","required":false,"example":1,"schemaId":"schema_60"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"bearerAuth","type":"http","scheme":"bearer","bearerFormat":"JWT"},{"id":"appId","type":"apiKey","name":"X-APP-ID","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"schema_61","exampleIds":["paths/~1payment/post/requestBody/content/application~1json/examples/direct_payment","paths/~1payment/post/requestBody/content/application~1json/examples/integration_payment"]}},"responseCodes":["200","401"],"pointer":"/payment","href":"cart/makepayment","openApiOperationId":"makePayment","summary":"Make Payment"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/sprintpay/openapi","description":"Mock server","isMockServer":true},{"url":"https://{service}.cargosprintgroup.com","description":"Production","variables":{"service":{"default":"cart"}}},{"url":"https://{service}-staging.cargosprintgroup.com","description":"Staging","variables":{"service":{"default":"cart"}}}],"schemaId":"schema_61","exampleIds":["paths/~1payment/post/requestBody/content/application~1json/examples/direct_payment","paths/~1payment/post/requestBody/content/application~1json/examples/integration_payment"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_61","exampleIds":["paths/~1payment/post/requestBody/content/application~1json/examples/direct_payment","paths/~1payment/post/requestBody/content/application~1json/examples/integration_payment"]}},"examples":[{},{}]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Result for each submitted item, in the order submitted. Returned even when some or all items failed — check "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"saleStatus"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" on every element. Items with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"saleStatus"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ERROR"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" did not move money, and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"saleResponse"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" gives the reason."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_62","exampleIds":["paths/~1payment/post/responses/200/content/application~1json/examples/accepted","paths/~1payment/post/responses/200/content/application~1json/examples/rejected"]}},"schemaId":"schema_62","exampleIds":["paths/~1payment/post/responses/200/content/application~1json/examples/accepted","paths/~1payment/post/responses/200/content/application~1json/examples/rejected"]},{"code":"401","description":"Missing, invalid or expired credentials. Returned before a payment is processed, so it is safe to request a new token and retry once.\n","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1payment/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"schema_62","exampleIds":["paths/~1payment/post/responses/200/content/application~1json/examples/accepted","paths/~1payment/post/responses/200/content/application~1json/examples/rejected"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_62","exampleIds":["paths/~1payment/post/responses/200/content/application~1json/examples/accepted","paths/~1payment/post/responses/200/content/application~1json/examples/rejected"]}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/cart/makepayment"}],"panels":[]}]},"httpPath":"/payment"}],"content":{"contentType":"group","meta":{"name":"Cart"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Cart","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Submit payments to facilities."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Requests are batched and each item is processed independently, so inspect the result"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"of every item in the response — a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"200"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" does not mean every item succeeded."},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/payment","summary":"Make Payment","prefix":{"name":"post","color":"post"},"badges":[],"link":"/cart/makepayment","deprecated":false}]}]}]}]}},{"type":"group","label":"Invoices","link":"/sprintpay/openapi/invoices","routeSlug":"/sprintpay/openapi/invoices","items":[{"label":"Get Invoice Details","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/sprintpay/openapi/invoices/getinvoicedetails","routeSlug":"/sprintpay/openapi/invoices/getinvoicedetails","metadata":{"seo":{"title":"Get Invoice Details","description":"Retrieve invoice details for a transaction. Invoices are produced on the nightly billing cycle, so an invoice may not be available immediately after a payment."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"getInvoiceDetails","name":"Get Invoice Details","isWebhook":false,"pointer":"/paths/~1external~1invoices~1details/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get Invoice Details","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Retrieve invoice details for a transaction. Invoices are produced on the nightly billing cycle, so an invoice may not be available immediately after a payment.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"bearerAuth","scopes":[],"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token returned by the authorization endpoint."},{"name":"appId","scopes":[],"type":"apiKey","in":"header","paramName":"X-APP-ID","description":"Account identifier issued with your credentials. Required on every request, including the token request, and sent exactly as provided.\n"}]}]},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"confirmationsId","in":"query","schemaId":"schema_63","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Transaction identifier returned by the payment request. Note the plural spelling — the invoice endpoints use "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"confirmationsId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" while "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"/external/paymentConfirmation"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" uses "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"confirmationId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Both accept the same identifier."},"children":[]}]}]}],"required":true}],"pointer":"/paths/~1external~1invoices~1details/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/external/invoices/details","servers":[{"url":"/_mock/sprintpay/openapi","description":"Mock server","isMockServer":true},{"url":"https://{service}.cargosprintgroup.com","description":"Production","variables":{"service":{"default":"cart","enum":["oauth","facilities","cart","invoices","payments"]}}},{"url":"https://{service}-staging.cargosprintgroup.com","description":"Staging","variables":{"service":{"default":"cart","enum":["oauth","facilities","cart","invoices","payments"]}}}],"parameters":{"path":[],"query":[{"name":"confirmationsId","in":"query","required":true,"example":"spf_81660037","schemaId":"schema_63"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"bearerAuth","type":"http","scheme":"bearer","bearerFormat":"JWT"},{"id":"appId","type":"apiKey","name":"X-APP-ID","in":"header"}],"scopes":[]}],"responseCodes":["200","401","404"],"pointer":"/external/invoices/details","href":"invoices/getinvoicedetails","openApiOperationId":"getInvoiceDetails","summary":"Get Invoice Details"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/sprintpay/openapi","description":"Mock server","isMockServer":true},{"url":"https://{service}.cargosprintgroup.com","description":"Production","variables":{"service":{"default":"cart"}}},{"url":"https://{service}-staging.cargosprintgroup.com","description":"Staging","variables":{"service":{"default":"cart"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Invoice details.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_64","exampleIds":["paths/~1external~1invoices~1details/get/responses/200/content/application~1json/examples/invoice_details"]}},"schemaId":"schema_64","exampleIds":["paths/~1external~1invoices~1details/get/responses/200/content/application~1json/examples/invoice_details"]},{"code":"401","description":"Missing, invalid or expired credentials. Returned before a payment is processed, so it is safe to request a new token and retry once.\n","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"Not found.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1external~1invoices~1details/get/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"schema_64","exampleIds":["paths/~1external~1invoices~1details/get/responses/200/content/application~1json/examples/invoice_details"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_64","exampleIds":["paths/~1external~1invoices~1details/get/responses/200/content/application~1json/examples/invoice_details"]}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/invoices/getinvoicedetails"}],"panels":[]}]},"httpPath":"/external/invoices/details"},{"label":"Get Invoices","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/sprintpay/openapi/invoices/getinvoices","routeSlug":"/sprintpay/openapi/invoices/getinvoices","metadata":{"seo":{"title":"Get Invoices","description":"Download the invoice for a transaction as a PDF or XLSX document."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"getInvoices","name":"Get Invoices","isWebhook":false,"pointer":"/paths/~1external~1downloadInvoices/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get Invoices","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Download the invoice for a transaction as a PDF or XLSX document."},{"nodeType":"security","requirements":[{"schemes":[{"name":"bearerAuth","scopes":[],"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token returned by the authorization endpoint."},{"name":"appId","scopes":[],"type":"apiKey","in":"header","paramName":"X-APP-ID","description":"Account identifier issued with your credentials. Required on every request, including the token request, and sent exactly as provided.\n"}]}]},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"confirmationsId","in":"query","schemaId":"schema_63","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Transaction identifier returned by the payment request. Note the plural spelling — the invoice endpoints use "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"confirmationsId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" while "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"/external/paymentConfirmation"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" uses "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"confirmationId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Both accept the same identifier."},"children":[]}]}]}],"required":true},{"name":"downloadFormat","in":"query","schemaId":"schema_65","description":"Output format."}],"pointer":"/paths/~1external~1downloadInvoices/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/external/downloadInvoices","servers":[{"url":"/_mock/sprintpay/openapi","description":"Mock server","isMockServer":true},{"url":"https://{service}.cargosprintgroup.com","description":"Production","variables":{"service":{"default":"cart","enum":["oauth","facilities","cart","invoices","payments"]}}},{"url":"https://{service}-staging.cargosprintgroup.com","description":"Staging","variables":{"service":{"default":"cart","enum":["oauth","facilities","cart","invoices","payments"]}}}],"parameters":{"path":[],"query":[{"name":"confirmationsId","in":"query","required":true,"example":"spf_81660037","schemaId":"schema_63"},{"name":"downloadFormat","in":"query","required":false,"example":"PDF","schemaId":"schema_65"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"bearerAuth","type":"http","scheme":"bearer","bearerFormat":"JWT"},{"id":"appId","type":"apiKey","name":"X-APP-ID","in":"header"}],"scopes":[]}],"responseCodes":["200","401","404"],"pointer":"/external/downloadInvoices","href":"invoices/getinvoices","openApiOperationId":"getInvoices","summary":"Get Invoices"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/sprintpay/openapi","description":"Mock server","isMockServer":true},{"url":"https://{service}.cargosprintgroup.com","description":"Production","variables":{"service":{"default":"cart"}}},{"url":"https://{service}-staging.cargosprintgroup.com","description":"Staging","variables":{"service":{"default":"cart"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The invoice document as a binary stream. The "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Content-Type"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" reflects the requested format and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Content-Disposition"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" carries the file name."},"children":[]}]}]}],"mediaType":"application/octet-stream","mediaTypes":["application/octet-stream"],"mediaTypeContent":{"application/octet-stream":{"schemaId":"schema_66"}},"schemaId":"schema_66"},{"code":"401","description":"Missing, invalid or expired credentials. Returned before a payment is processed, so it is safe to request a new token and retry once.\n","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"Not found.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1external~1downloadInvoices/get/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"schema_66","mediaTypes":["application/octet-stream"],"mediaTypeContent":{"application/octet-stream":{"schemaId":"schema_66"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/invoices/getinvoices"}],"panels":[]}]},"httpPath":"/external/downloadInvoices"}],"content":{"contentType":"group","meta":{"name":"Invoices"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Invoices","showPageActions":true},{"nodeType":"markdoc","content":"Retrieve invoice details and download invoices as PDF or XLSX."}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/external/invoices/details","summary":"Get Invoice Details","prefix":{"name":"get","color":"get"},"badges":[],"link":"/invoices/getinvoicedetails","deprecated":false},{"title":"/external/downloadInvoices","summary":"Get Invoices","prefix":{"name":"get","color":"get"},"badges":[],"link":"/invoices/getinvoices","deprecated":false}]}]}]}]}},{"type":"group","label":"Payments","link":"/sprintpay/openapi/payments","routeSlug":"/sprintpay/openapi/payments","items":[{"label":"Get Payment Confirmation","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/sprintpay/openapi/payments/getpaymentconfirmation","routeSlug":"/sprintpay/openapi/payments/getpaymentconfirmation","metadata":{"seo":{"title":"Get Payment Confirmation","description":"Download the payment confirmation document for a completed transaction."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"getPaymentConfirmation","name":"Get Payment Confirmation","isWebhook":false,"pointer":"/paths/~1external~1paymentConfirmation/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get Payment Confirmation","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Download the payment confirmation document for a completed transaction."},{"nodeType":"security","requirements":[{"schemes":[{"name":"bearerAuth","scopes":[],"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token returned by the authorization endpoint."},{"name":"appId","scopes":[],"type":"apiKey","in":"header","paramName":"X-APP-ID","description":"Account identifier issued with your credentials. Required on every request, including the token request, and sent exactly as provided.\n"}]}]},{"nodeType":"item-content","variant":"query","label":"Query","labelTranslationKey":"query","parameters":[{"name":"confirmationId","in":"query","schemaId":"schema_63","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Transaction identifier returned by the payment request. Note the singular spelling — the invoice endpoints use "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"confirmationsId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Both accept the same identifier."},"children":[]}]}]}],"required":true}],"pointer":"/paths/~1external~1paymentConfirmation/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/external/paymentConfirmation","servers":[{"url":"/_mock/sprintpay/openapi","description":"Mock server","isMockServer":true},{"url":"https://{service}.cargosprintgroup.com","description":"Production","variables":{"service":{"default":"cart","enum":["oauth","facilities","cart","invoices","payments"]}}},{"url":"https://{service}-staging.cargosprintgroup.com","description":"Staging","variables":{"service":{"default":"cart","enum":["oauth","facilities","cart","invoices","payments"]}}}],"parameters":{"path":[],"query":[{"name":"confirmationId","in":"query","required":true,"example":"spf_81660037","schemaId":"schema_63"}],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"bearerAuth","type":"http","scheme":"bearer","bearerFormat":"JWT"},{"id":"appId","type":"apiKey","name":"X-APP-ID","in":"header"}],"scopes":[]}],"responseCodes":["200","401","404"],"pointer":"/external/paymentConfirmation","href":"payments/getpaymentconfirmation","openApiOperationId":"getPaymentConfirmation","summary":"Get Payment Confirmation"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/sprintpay/openapi","description":"Mock server","isMockServer":true},{"url":"https://{service}.cargosprintgroup.com","description":"Production","variables":{"service":{"default":"cart"}}},{"url":"https://{service}-staging.cargosprintgroup.com","description":"Staging","variables":{"service":{"default":"cart"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The payment confirmation document as a PDF stream. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Content-Disposition"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" carries the file name."},"children":[]}]}]}],"mediaType":"application/pdf","mediaTypes":["application/pdf"],"mediaTypeContent":{"application/pdf":{"schemaId":"schema_67"}},"schemaId":"schema_67"},{"code":"401","description":"Missing, invalid or expired credentials. Returned before a payment is processed, so it is safe to request a new token and retry once.\n","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"},{"code":"404","description":"Not found.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1external~1paymentConfirmation/get/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"schema_67","mediaTypes":["application/pdf"],"mediaTypeContent":{"application/pdf":{"schemaId":"schema_67"}}},{"code":"401","schemaId":"components/schemas/Error","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/payments/getpaymentconfirmation"}],"panels":[]}]},"httpPath":"/external/paymentConfirmation"}],"content":{"contentType":"group","meta":{"name":"Payments"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Payments","showPageActions":true},{"nodeType":"markdoc","content":"Download the payment confirmation document for a completed transaction."}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/external/paymentConfirmation","summary":"Get Payment Confirmation","prefix":{"name":"get","color":"get"},"badges":[],"link":"/payments/getpaymentconfirmation","deprecated":false}]}]}]}]}}],"store":{"schemaStore":{"components/schemas/TokenResponse":{"id":"components/schemas/TokenResponse","kind":"json-schema","title":"TokenResponse","data":{"type":"object","description":"An issued access token.","required":["access_token","token_type","expires_in"],"properties":{"access_token":{"type":"string","description":"Token to send as a bearer token on subsequent requests.","example":"eyJ4NXQjUzI1NiI6..."},"token_type":{"type":"string","description":"Token type.","example":"Bearer"},"expires_in":{"type":"integer","description":"Lifetime in seconds.","example":3599}}}},"components/schemas/TokenError":{"id":"components/schemas/TokenError","kind":"json-schema","title":"TokenError","data":{"type":"object","description":"A rejected token request.","properties":{"error":{"type":"string","description":"OAuth 2.0 error code.","example":"invalid_request"},"error_description":{"type":"string","description":"Human readable explanation.","example":"Unsupported grant_type."}}}},"components/schemas/IntegrationQueryField":{"id":"components/schemas/IntegrationQueryField","kind":"json-schema","title":"IntegrationQueryField","data":{"type":"object","description":"A field required when retrieving charges.","properties":{"operation":{"type":"string","description":"Operation the field applies to.","example":"MASTER"},"key":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field key to send in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"queryFields"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"example":"awb"},"label":{"type":"string","description":"Human readable label.","example":"Air Waybill"},"type":{"type":"string","description":"Value type.","example":"string"},"required":{"type":"boolean","description":"Whether the field is mandatory.","example":true}}}},"components/schemas/IntegrationConstraints":{"id":"components/schemas/IntegrationConstraints","kind":"json-schema","title":"IntegrationConstraints","data":{"type":"object","description":"Limits on which shipments the integration handles.","properties":{"airlinePrefixes":{"type":"array","description":"Airline prefixes served by the integration.","items":{"type":"string","example":"020"}}}}},"components/schemas/Integration":{"id":"components/schemas/Integration","kind":"json-schema","title":"Integration","data":{"type":"object","description":"Present when the facility is served by an integration. Its absence means the facility is paid directly.\n","properties":{"code":{"type":"string","description":"Identifier for the integration serving this facility.","example":"EXAMPLE"},"operations":{"type":"array","description":"Operations supported when retrieving charges.","items":{"type":"string","example":"MASTER"}},"queryFields":{"type":"array","description":"Fields required when retrieving charges.","items":{"$ref":"#/components/schemas/IntegrationQueryField"}},"constraints":{"$ref":"#/components/schemas/IntegrationConstraints"}}}},"components/schemas/Facility":{"id":"components/schemas/Facility","kind":"json-schema","title":"Facility","data":{"type":"object","description":"A payable facility.","properties":{"id":{"type":"integer","description":"Facility identifier.","example":6225},"name":{"type":"string","description":"Facility name.","example":"Worldwide Flight Services (LAX)"},"airportCode":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Airport code, or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ALL"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when the facility is not airport specific."},"children":[]}]}]}],"example":"LAX"},"firmsCode":{"type":"string","description":"FIRMS code.","example":"E528"},"deliveryType":{"type":"string","description":"How the facility is notified of payment.","example":"Electronic"},"awbFieldLabel":{"type":"string","description":"Label the facility uses for the shipment reference.","example":"Air Waybill"},"hawbFieldLabel":{"type":"string","description":"Label the facility uses for the house bill or container.","example":"House Bill"},"integration":{"$ref":"#/components/schemas/Integration"}}}},"components/schemas/FacilityPage":{"id":"components/schemas/FacilityPage","kind":"json-schema","title":"FacilityPage","data":{"type":"object","description":"A page of facilities.","properties":{"content":{"type":"array","description":"Facilities on this page.","items":{"$ref":"#/components/schemas/Facility"}},"totalElements":{"type":"integer","description":"Total number of matching facilities.","example":42},"totalPages":{"type":"integer","description":"Total number of pages available.","example":5}}}},"components/schemas/AlertMessage":{"id":"components/schemas/AlertMessage","kind":"json-schema","title":"AlertMessage","data":{"type":"object","description":"An advisory returned when retrieving charges.","properties":{"type":{"type":"string","description":"Advisory type.","example":"error"},"message":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"REDIRECT_TO_STANDARD_FLOW"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" means the integration does not handle this shipment and it should be paid directly."},"children":[]}]}]}],"example":"REDIRECT_TO_STANDARD_FLOW"}}}},"components/schemas/LookupResponse":{"id":"components/schemas/LookupResponse","kind":"json-schema","title":"LookupResponse","data":{"type":"object","description":"Charges held for a shipment.","properties":{"dynamicFields":{"type":"array","description":"Charge rows returned by the integration.","items":{"type":"object","additionalProperties":true}},"alertMessage":{"$ref":"#/components/schemas/AlertMessage"}}}},"components/schemas/IntegrationCharge":{"id":"components/schemas/IntegrationCharge","kind":"json-schema","title":"IntegrationCharge","data":{"type":"object","description":"A charge returned when retrieving charges, submitted unchanged.","required":["amount","chargeCode","chargeRefFields"],"properties":{"amount":{"type":"number","description":"Charge amount exactly as returned.","example":174.08},"chargeCode":{"type":"string","description":"Charge code exactly as returned.","example":"STORAGE"},"operation":{"type":"string","description":"Operation used when the charges were retrieved.","example":"MASTER"},"chargeRefFields":{"type":"object","description":"Shipment reference used when the charges were retrieved.","additionalProperties":{"type":"string"},"example":{"awb":"020-12345678"}}}}},"components/schemas/PaymentRequest":{"id":"components/schemas/PaymentRequest","kind":"json-schema","title":"PaymentRequest","data":{"type":"object","description":"A single payment.","required":["amount","awb","paymentType","facility"],"properties":{"amount":{"type":"number","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Total charged. When "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"integrationCharges"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is present this must equal their sum exactly."},"children":[]}]}]}],"example":500},"awb":{"type":"string","description":"Shipment reference as identified by the facility.","example":"020-12345678"},"hawb":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"House bill or container reference. For multiple values send a single comma separated string in this one field — not a repeated field and not an array."},"children":[]}]}]}],"example":"HAWB1,HAWB2"},"paymentType":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Charge classification, for example "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ISC"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Storage"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Demurrage"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"example":"ISC"},"paymentTypeOther":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Free text classification, shown to the facility only when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Other"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"example":"Handling charges"},"facility":{"type":"object","description":"The facility being paid.","required":["id"],"properties":{"id":{"type":"integer","description":"Facility identifier.","example":6225}}},"customerReference":{"type":"string","description":"Your own reference. Shown on the receipt, and used to distinguish payments that would otherwise appear to be duplicates.\n","example":"your-internal-reference"},"notificationEmail":{"type":"string","description":"Overrides the account default recipient for this payment.","example":"ops@example.com"},"integrationCharges":{"type":"array","description":"Required when paying a facility served by an integration.","items":{"$ref":"#/components/schemas/IntegrationCharge"}}}}},"components/schemas/CompletedPayment":{"id":"components/schemas/CompletedPayment","kind":"json-schema","title":"CompletedPayment","data":{"type":"object","description":"A payment that was accepted.","properties":{"id":{"type":"integer","description":"Payment identifier.","example":10025253},"vendorInvoiceNumber":{"type":"string","description":"Reference shown to the facility.","example":"VIN-10025253"},"awb":{"type":"string","description":"Shipment reference.","example":"020-12345678"},"amount":{"type":"number","description":"Amount charged.","example":500},"paymentType":{"type":"string","description":"Charge classification.","example":"ISC"},"status":{"type":"string","description":"Payment status.","example":"DELIVERED_TO_FACILITY"},"customerReference":{"type":"string","description":"Your reference, returned unchanged.","example":"your-internal-reference"},"invoice":{"type":"object","description":"Invoice this payment belongs to.","properties":{"id":{"type":"integer","description":"Invoice identifier.","example":15304166},"name":{"type":"string","description":"Invoice name.","example":"INV15304166"}}}}}},"components/schemas/PaymentResult":{"id":"components/schemas/PaymentResult","kind":"json-schema","title":"PaymentResult","data":{"type":"object","description":"Outcome for one submitted payment.","properties":{"transactionId":{"type":"string","description":"Transaction identifier, used to retrieve invoices and confirmations.","example":"spf_81660037"},"saleStatus":{"type":"string","description":"Outcome for this item.","enum":["SUCCESS","ERROR"],"example":"SUCCESS"},"saleResponse":{"type":"string","description":"Reason, when the item was not accepted.","example":"Facility id is required"},"awb":{"type":"string","description":"Shipment reference, returned unchanged.","example":"020-12345678"},"completedPayments":{"type":"array","description":"Payments accepted for this item.","items":{"$ref":"#/components/schemas/CompletedPayment"}}}}},"components/schemas/Error":{"id":"components/schemas/Error","kind":"json-schema","title":"Error","data":{"type":"object","description":"An error response.","properties":{"errors":{"type":"array","description":"Error messages.","items":{"type":"string","example":"This record does not have charges."}}}}},"schema_48":{"kind":"json-schema","data":{"type":"object","required":["grant_type"],"properties":{"grant_type":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Must be "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"client_credentials"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"example":"client_credentials"}}},"id":"schema_48"},"schema_49":{"kind":"json-schema","data":{"type":"string","example":"Worldwide Flight Services"},"id":"schema_49"},"schema_50":{"kind":"json-schema","data":{"type":"string","example":"E528"},"id":"schema_50"},"schema_51":{"kind":"json-schema","data":{"type":"string","example":"LAX"},"id":"schema_51"},"schema_52":{"kind":"json-schema","data":{"type":"string","example":"020"},"id":"schema_52"},"schema_53":{"kind":"json-schema","data":{"type":"integer","default":0,"example":0},"id":"schema_53"},"schema_54":{"kind":"json-schema","data":{"type":"integer","default":10,"example":10},"id":"schema_54"},"schema_55":{"kind":"json-schema","data":{"type":"integer","example":6225},"id":"schema_55"},"schema_56":{"kind":"json-schema","data":{"type":"string","example":"MASTER"},"id":"schema_56"},"schema_57":{"kind":"json-schema","data":{"type":"string","example":"awb"},"id":"schema_57"},"schema_58":{"kind":"json-schema","data":{"type":"string","example":"020-12345678"},"id":"schema_58"},"schema_59":{"kind":"json-schema","data":{"type":"boolean","default":false,"example":true},"id":"schema_59"},"schema_60":{"kind":"json-schema","data":{"type":"integer","default":1,"example":1},"id":"schema_60"},"schema_61":{"kind":"json-schema","data":{"type":"array","items":{"$ref":"#/components/schemas/PaymentRequest"}},"id":"schema_61"},"schema_62":{"kind":"json-schema","data":{"type":"array","items":{"$ref":"#/components/schemas/PaymentResult"}},"id":"schema_62"},"schema_63":{"kind":"json-schema","data":{"type":"string","example":"spf_81660037"},"id":"schema_63"},"schema_64":{"kind":"json-schema","data":{"type":"object","additionalProperties":true},"id":"schema_64"},"schema_65":{"kind":"json-schema","data":{"type":"string","default":"XLSX","enum":["PDF","XLSX"],"example":"PDF"},"id":"schema_65"},"schema_66":{"kind":"json-schema","data":{"type":"string","format":"binary","description":"Invoice file contents.","example":"%PDF-1.7 ...binary..."},"id":"schema_66"},"schema_67":{"kind":"json-schema","data":{"type":"string","format":"binary","description":"Payment confirmation file contents.","example":"%PDF-1.7 ...binary..."},"id":"schema_67"}},"exampleStore":{"components/examples/DirectPaymentExample":{"id":"components/examples/DirectPaymentExample","value":[{"amount":500,"awb":"020-12345678","paymentType":"ISC","facility":{"id":6225},"customerReference":"your-internal-reference"}],"summary":"Payment to a facility with no integration"},"components/examples/IntegrationPaymentExample":{"id":"components/examples/IntegrationPaymentExample","value":[{"amount":348.15,"awb":"020-12345678","paymentType":"Storage","facility":{"id":6225},"customerReference":"your-internal-reference","integrationCharges":[{"amount":174.08,"chargeCode":"STORAGE","operation":"MASTER","chargeRefFields":{"awb":"020-12345678"}},{"amount":174.07,"chargeCode":"STORAGE","operation":"MASTER","chargeRefFields":{"awb":"020-12345678"}}]}],"summary":"Payment using retrieved charges"},"components/examples/PaymentAcceptedExample":{"id":"components/examples/PaymentAcceptedExample","value":[{"transactionId":"spf_81660037","saleStatus":"SUCCESS","completedPayments":[{"id":10025253,"vendorInvoiceNumber":"VIN-10025253","awb":"020-12345678","amount":500,"paymentType":"ISC","status":"DELIVERED_TO_FACILITY","customerReference":"your-internal-reference","invoice":{"id":15304166,"name":"INV15304166"}}]}],"summary":"Payment accepted"},"components/examples/PaymentRejectedExample":{"id":"components/examples/PaymentRejectedExample","value":[{"saleStatus":"ERROR","saleResponse":"Facility with id 999999 not found","awb":"020-12345678"}],"summary":"Payment rejected"},"paths/~1payment/post/requestBody/content/application~1json/examples/direct_payment":{"value":[{"amount":500,"awb":"020-12345678","paymentType":"ISC","facility":{"id":6225},"customerReference":"your-internal-reference"}],"key":"direct_payment","summary":"Payment to a facility with no integration","id":"paths/~1payment/post/requestBody/content/application~1json/examples/direct_payment"},"paths/~1payment/post/requestBody/content/application~1json/examples/integration_payment":{"value":[{"amount":348.15,"awb":"020-12345678","paymentType":"Storage","facility":{"id":6225},"customerReference":"your-internal-reference","integrationCharges":[{"amount":174.08,"chargeCode":"STORAGE","operation":"MASTER","chargeRefFields":{"awb":"020-12345678"}},{"amount":174.07,"chargeCode":"STORAGE","operation":"MASTER","chargeRefFields":{"awb":"020-12345678"}}]}],"key":"integration_payment","summary":"Payment using retrieved charges","id":"paths/~1payment/post/requestBody/content/application~1json/examples/integration_payment"},"paths/~1payment/post/responses/200/content/application~1json/examples/accepted":{"value":[{"transactionId":"spf_81660037","saleStatus":"SUCCESS","completedPayments":[{"id":10025253,"vendorInvoiceNumber":"VIN-10025253","awb":"020-12345678","amount":500,"paymentType":"ISC","status":"DELIVERED_TO_FACILITY","customerReference":"your-internal-reference","invoice":{"id":15304166,"name":"INV15304166"}}]}],"key":"accepted","summary":"Payment accepted","id":"paths/~1payment/post/responses/200/content/application~1json/examples/accepted"},"paths/~1payment/post/responses/200/content/application~1json/examples/rejected":{"value":[{"saleStatus":"ERROR","saleResponse":"Facility with id 999999 not found","awb":"020-12345678"}],"key":"rejected","summary":"Payment rejected","id":"paths/~1payment/post/responses/200/content/application~1json/examples/rejected"},"paths/~1external~1invoices~1details/get/responses/200/content/application~1json/examples/invoice_details":{"value":{"id":15304166,"name":"INV15304166","amount":500,"status":"OPEN"},"key":"invoice_details","summary":"Invoice details for a transaction","id":"paths/~1external~1invoices~1details/get/responses/200/content/application~1json/examples/invoice_details"}},"securitySchemeStore":{"basicAuth":{"id":"basicAuth","type":"http","scheme":"basic","description":"Client ID and client secret, used only on the token endpoint.\n"},"bearerAuth":{"id":"bearerAuth","type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token returned by the authorization endpoint."},"appId":{"id":"appId","type":"apiKey","description":"Account identifier issued with your credentials. Required on every request, including the token request, and sent exactly as provided.\n","in":"header","paramName":"X-APP-ID"}},"servers":[{"url":"/_mock/sprintpay/openapi","isMockServer":true,"description":"Mock server"},{"url":"https://{service}.cargosprintgroup.com","description":"Production","variables":{"service":{"default":"cart","description":"Service host for the endpoint being called.","enum":["oauth","facilities","cart","invoices","payments"]}}},{"url":"https://{service}-staging.cargosprintgroup.com","description":"Staging","variables":{"service":{"default":"cart","description":"Service host for the endpoint being called.","enum":["oauth","facilities","cart","invoices","payments"]}}}]},"options":{"hideSidebar":true,"mockServer":{"url":"/_mock/sprintpay/openapi","position":"first","description":"Mock server"},"disableRouter":true,"downloadUrls":[{"url":"/_bundle/sprintpay/openapi.json?download"},{"url":"/_bundle/sprintpay/openapi.yaml?download"}],"excludeFromSearch":false,"specType":"openapi","markdocOptions":{"tags":{},"nodes":{},"components":{}},"metadata":{"title":"API Reference","description":"Comprehensive reference for integrating with CargoSprint API endpoints.\n\nSprintPay lets partners discover cargo facilities, retrieve charges, submit payments,\nand download receipts and invoices programmatically. Access is granted per partner —\ncontact your CargoSprint relationship manager to request credentials.\n\n## Authentication\n\nEvery endpoint uses OAuth 2.0 client credentials. Request an access token, then send it\nas a bearer token on subsequent calls.\n\nThe token request and the calls that follow authenticate differently:\n\n- **`POST /oauth2/token`** uses HTTP Basic authentication with your client ID and\n  client secret.\n- **Every other endpoint** uses `Authorization: Bearer <access_token>`.\n\n`X-APP-ID: <your account identifier>` is required on **every** request, including the\ntoken request. It is issued with your credentials and sent exactly as provided.\n\nTokens are valid for one hour. Cache and reuse them rather than requesting one per call,\nand request a new token when the current one expires.\n\nA `401` is always returned *before* a request is processed, so it never indicates a\npayment that partially completed. It is safe to request a new token and retry once. Do\nnot retry other error responses automatically.\n\n## Environments\n\nA staging environment is available for integration work. Staging and production are\nfully isolated: payments made in staging settle against sandbox processors and have no\neffect on production billing. Staging holds a partial copy of production reference data,\nso some identifiers valid in production may not resolve there.\n\n## Requests and responses\n\nPayment requests are submitted as an array and each item is processed independently.\n**The HTTP status stays `200` even when individual items fail**, so inspect the\n`saleStatus` of every element in the response rather than relying on the status code.\nAn item with `saleStatus` of `ERROR` did not move money.\n\n## Errors\n\nTwo kinds of error can be returned, and they are handled differently:\n\n- **Transport and authorization errors** apply to every endpoint and are returned as\n  standard HTTP status codes — `400` for a malformed request, `401` for missing or\n  expired credentials, `403` where access is not permitted, `404` where a record does\n  not exist, and `5xx` for a temporary failure. These are described once here and are\n  not repeated on each operation.\n- **Per-item business errors** are specific to payment submission. They are returned\n  inside a `200` response on the individual item, in `saleResponse`, and describe why\n  that item was not accepted — for example a facility that could not be found, a\n  missing required field, or a payment detected as a duplicate of one already\n  submitted. Where an endpoint returns an error unique to it, that error is documented\n  on the endpoint itself.\n\n## Not currently supported\n\nThe following are handled outside the API today, and are worth designing around rather\nthan waiting for:\n\n- Refunds, voids and partial payments\n- Webhooks or payment status callbacks — the response to a payment request is the\n  source of truth\n"}},"baseSlug":"/sprintpay/openapi","routesMapping":{}}