The third-party response is returned as-is. The format and content depend entirely on the destination API.
Empty response body.Authentication failed: the API key, session token or access token is missing or was not accepted.See "Authentication and Permission Failures" on the Error Handling page.
The third-party response is returned as-is. The format and content depend entirely on the destination API.
Empty response body.Authentication failed: the API key, session token or access token is missing or was not accepted.See "Authentication and Permission Failures" on the Error Handling page.
This is PCI Booking’s core proxy feature. Instead of processing payments through PCI Booking’s gateway integrations, you send the exact API request your third-party system expects, with token placeholders where card data should go. PCI Booking swaps in the real card data and forwards the request transparently, so the third party receives a normal API call with real card details while you never handle sensitive data.
Card data could not be retrieved for a token you can access
-150
500
Card retrieval failed
-125
400
Profile name provided but profile not found
-125
400
Content replacement failed
-125
400
Empty content body
-125
400
Missing Content-Type header
-125
400
Target URI invalid
-1003
401
The cardToken is malformed, the token does not exist or was deleted, or you are not the owner and not associated with it. See Token Not Found or Not Accessible.
Each condition below gives the exact moreInfo text, why it happens and how to resolve it. The full set is on the Error Handling page.
-125 Bad input data - profile not found
HTTP status:400message:Bad input datamoreInfo: the wording depends on which endpoint you called:
Couldn't fetch a valid screening profile:: <profileName>Couldn't fetch a valid pciShield profile:: <profileName>
The first is returned by token replacement in a request (paycard/relay). The second is returned by tokenization on response (paycard/capture). They mean the same thing.Reason. The profileName you passed could not be resolved for the account making the request. In almost every case the profile does exist, but on a different account than the one your credentials belong to. A misspelled profile name produces the same error.How to resolve.A PCI Shield profile belongs to the account, not to the sub-user that calls the API. When a sub-user makes a request, the profile is looked up against that sub-user’s parent account. A profile configured on one account is never visible to a sub-user of a different account, and sandbox and production accounts are separate.To check which profiles your credential can see:
Identify the parent account of the sub-user whose credentials you are using.
Sign in to the PCI Booking portal as that account and open PCI Shield Settings > PCI Shield Profile Settings.
Confirm the profile name appears there, spelled exactly as you send it. Profile names are matched exactly.
If the profile is listed under a different account, switch your request to a sub-user of that account rather than copying the profile.
There is no API endpoint that lists the profiles on your own account. GET /api/booker returns the platform-wide preset tokenization profiles, which are a different set. Your own profiles are visible in the portal only.
-125 Bad input data - card data could not be substituted
HTTP status:400message:Bad input datamoreInfo:
Replacement of content failedCould not apply token replacement onto content
Reason. The body parsed, but the profile’s selectors did not match anything in it, so no card data was substituted. The request was not relayed. This is a mismatch between the profile and the payload, not a problem with the token.How to resolve.
Compare the profile’s selectors against the exact payload you sent. A selector that assumes a different nesting depth or element name matches nothing.
Check the namespaces. For XML and SOAP, a selector written without namespace handling will not match a namespaced document.
Confirm the body is the format the profile was written for. A profile written for XML will not match a JSON body.
Test the profile against a saved copy of a real request before using it in production.
Content is emptyContent is missing/emptyEmpty relay message content
Reason. Token replacement had nothing to work on. The body of the request you asked to be relayed was empty, so there was no content in which to substitute card data.How to resolve.
Send the third-party request you want relayed as the body of the call, not as a query parameter.
If you are pointing at the content with a parameter name, check that parameter is present and actually carries the payload.
Check no proxy or client library between you and the API is dropping the body on a GET relay.
-125 Bad input data - Content-Type header missing
HTTP status:400message:Bad input datamoreInfo:
Content type is missing/empty
Reason. Token replacement needs to know how to parse the body before it can find the placeholders. Without a Content-Type header it cannot choose a parser.How to resolve.
Set Content-Type to match the body you are sending, for example application/json, text/xml, or application/x-www-form-urlencoded.
Send the charset if the third party requires one, for example text/xml; charset=UTF-8.
-125 Bad input data - unsupported httpMethod value
HTTP status:400message:Bad input datamoreInfo:
httpMethod should be 'POST','GET','PUT','PATCH','DELETE'
Reason. The httpMethod parameter names a method the relay does not forward.How to resolve.
Use one of POST, GET, PUT, PATCH or DELETE, in upper case.
Omit the parameter to accept the default of POST.
-125 Bad input data - targetUri not usable
HTTP status:400message:Bad input datamoreInfo:
Target Uri invalid
Reason. The targetUri could not be parsed as an absolute URL, so the relay had nowhere to send the request.How to resolve.
Send an absolute URL including the scheme, for example https://api.example.com/path.
URL-encode the value if you pass it as a query parameter, so that its own query string does not terminate yours.
-125 Bad input data - no token found in the custom header
HTTP status:400message:Bad input datamoreInfo:
Token(s) could not be found in custom header X-pciBooking-cardUri
Reason. The relay was told to take the token from the X-pciBooking-cardUri header, but the header was absent or held no readable token.How to resolve.
Add the X-pciBooking-cardUri header carrying the full token URI.
Separate multiple tokens as the endpoint documents, and check none of them is empty.
-175 Request timed out - third party did not respond in time
HTTP status:504message:Request timed outmoreInfo: not populated for this condition. The code and the endpoint are the only signal.Reason. PCI Booking relayed your request but the target server did not answer within the timeout. The failure is on the far side, not in PCI Booking. Card data may already have reached the third party, so the operation cannot be assumed not to have happened.How to resolve.
Check how long the third party takes to respond. The complete round trip must finish within 29 seconds, so raising timeout beyond that does not help. If the third party regularly needs longer, contact support@pcibooking.net for an alternative setup.
Confirm the target host is reachable and not rate limiting or blocking the call. PCI Booking calls the third party from its own addresses, which the third party may need to allow.
Do not blind retry a charge. Query the third party for the outcome first. A timeout is an unknown result, not a failure.
-1003 You are not authorized to access this resource - token does not exist, was deleted, or is not yours
HTTP status:401message:You are not authorized to access this resource. Please contact customer support.moreInfo: one of the following, depending on which check failed:
User is not the owner of this bank cardMerchant or Owner are not associated with bank card [<token>] userID: <userId>User <userId> is not associated with bank card [<token>]User <userId> cannot delegate token <token> - not owner and lacks delegation rightsUser is not authorized to handle bank cards
Reason. The credential authenticated fine, but it cannot act on the token in the request. Either the token does not exist or it is not yours to use. The generic wording makes this the single most misread error in the API. On a token call it is far more often one of the causes below than an actual permissions problem.How to resolve.
Check the token still exists. This is the most common cause. On every token endpoint except Delete Token, a token that does not exist or was deleted returns this error, the same as a token that belongs to another account. See Token Not Found or Not Accessible.
Check the tokenization actually succeeded. If the call that should have created the token failed, the token never existed, and calls that use it report -1003.
Check the environment. A sandbox token cannot be used from production, or the reverse.
Check ownership and association. See the rules below.
Ownership and association.A token is owned by the account that created it. Another account can use the token only if the token was explicitly associated with it:
At tokenization, by passing merchantId on the tokenizing call.
After tokenization, by associating the token with the merchant.
Two rules catch people out:
An association can only target a primary account. If you pass the ID of a sub-user or a secondary property, the request is rejected and you must associate the token with the parent account instead.
Tokens never cross environments. A token created in sandbox cannot be used from production, and the reverse is also true.
Account level blocks.An account that has exceeded its processing allowance is blocked, and every billable API call from it then fails with HTTP 403 and code -1003, even though the credentials are still valid and can still sign in to the portal. In this response message is empty (null) and moreInfo holds only the generic -1003 text, so nothing in the body explains the block. The 403 status is what tells it apart from a token that is not accessible, which returns 401.This is a common cause on sandbox accounts, which have a lower allowance than production.Check for it when a 403 with -1003 appears suddenly across calls that used to work, on more than one token. A block affects every billable call on the account at once, whereas a genuine ownership problem affects only the specific token. Contact support with your account name to have the allowance reviewed and the block lifted. The block stays until support lifts it.
cardToken must contain a valid card URI with a 32-hex token.
targetUri is required.
httpMethod defaults to POST. Accepted values: POST, GET, PUT, PATCH, DELETE.
postResponseAction accepts ClearCVV or DeleteToken.
All URLs must be HTTPS. URL-encode all query string components. The token goes in the cardToken query parameter, never in the URL path. POST /api/payments/paycard/{token} is a different, deprecated card management operation that accepts the API key only.
Access token or session token. This endpoint does not accept the API key. Generate a token with your API key and pass it as a query parameter. Send one of the two.
For placeholder-based replacement: the name of the one parameter that contains the placeholders. PCI Booking looks for it first in the query string of targetUri, then in the form body. Ignored if profileName is provided. If omitted, PCI Booking searches the whole request body for placeholders.
Action to perform after a successful relay. ClearCVV clears the CVV from the token. DeleteToken deletes the token entirely. If omitted, no action is taken.
The request body and headers are relayed to the third party as you send them, with card data inserted. Call this endpoint with POST; the third party receives the method set in httpMethod. Structure the request as the third party’s API requires, including any headers it needs. See What PCI Booking Changes in Your Request.Mark where card data goes with placeholders such as $~Number~$, or reference a target profile with profileName, as in the second example below.
Send a JSON payment request to a third-party API, with PCI Booking replacing the card placeholders with real data before forwarding. You authenticate to PCI Booking with the accessToken query parameter. Any Authorization header you send belongs to the third party and is forwarded to it.The body is written as text so that the expiration month and year can be sent as JSON numbers, with their placeholders outside quotes. See Placeholders in JSON.
const params = new URLSearchParams({ accessToken: "your-access-token", cardToken: "https://service.pcibooking.net/api/payments/paycard/555fd7b49f134b42a5dbe4d576b2e527", targetUri: "https://api.thirdparty.com/v1/payments", httpMethod: "POST"});// Built as text, not with JSON.stringify, so that the numeric// placeholders stay outside quotes.const body = `{ "amount": 250.00, "currency": "USD", "card": { "number": "$~Number~$", "expMonth": $~ExpirationM~$, "expYear": $~ExpirationYYYY~$, "cvv": "$~CVV~$", "holderName": "$~OwnerName~$" }, "reference": "order-98765"}`;const response = await fetch( `https://service.pcibooking.net/api/payments/paycard/relay?${params}`, { method: "POST", headers: { "Content-Type": "application/json" }, body });const data = await response.text();console.log(data);
import requests# Built as text, not with json=, so that the numeric# placeholders stay outside quotes.body = """{ "amount": 250.00, "currency": "USD", "card": { "number": "$~Number~$", "expMonth": $~ExpirationM~$, "expYear": $~ExpirationYYYY~$, "cvv": "$~CVV~$", "holderName": "$~OwnerName~$" }, "reference": "order-98765"}"""response = requests.post( "https://service.pcibooking.net/api/payments/paycard/relay", params={ "accessToken": "your-access-token", "cardToken": "https://service.pcibooking.net/api/payments/paycard/555fd7b49f134b42a5dbe4d576b2e527", "targetUri": "https://api.thirdparty.com/v1/payments", "httpMethod": "POST" }, headers={"Content-Type": "application/json"}, data=body)print(response.text)
PCI Booking replaces the $~Number~$, $~ExpirationM~$, $~ExpirationYYYY~$, $~CVV~$ and $~OwnerName~$ placeholders with the card data from the token before forwarding the request to api.thirdparty.com. See the full placeholder list.To use a target profile (pre-configured replacement rules) instead of placeholders, send the card fields the profile targets with empty values. PCI Booking fills them in:
The third-party response is returned as-is. The format and content depend entirely on the destination API.
Empty response body.Authentication failed: the API key, session token or access token is missing or was not accepted.See "Authentication and Permission Failures" on the Error Handling page.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"PCI Booking","description":"PCI Booking developer documentation","colors":{"primary":"#333333","light":"#fdb913","dark":"#333333"},"logo":{"light":"https://mintcdn.com/pcibooking/pMOWAlxYaLwyZe8N/logo/light.png?fit=max\u0026auto=format\u0026n=pMOWAlxYaLwyZe8N\u0026q=85\u0026s=05d07ed84fd562e4e5546e37f9891791","dark":"https://mintcdn.com/pcibooking/pMOWAlxYaLwyZe8N/logo/dark.png?fit=max\u0026auto=format\u0026n=pMOWAlxYaLwyZe8N\u0026q=85\u0026s=ff2f5c1a9a50078122add6cfe988e7e6"},"favicon":"https://mintcdn.com/pcibooking/pMOWAlxYaLwyZe8N/favicon.png?fit=max\u0026auto=format\u0026n=pMOWAlxYaLwyZe8N\u0026q=85\u0026s=68a2fe8e8c34b1602641223b67d76982","api":{"mdx":{"auth":{"method":"key","name":"Authorization"},"server":"https://service.pcibooking.net"}},"navbar":{"links":[{"href":"https://pcibooking.net","label":"Home"},{"href":"https://pcibooking.net/pci-booking-support/","label":"Support"},{"href":"/reference/glossary","label":"Glossary"}],"primary":{"type":"button","label":"Get a Sandbox","href":"https://pcibooking.net/sandbox/"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/pci-booking"}},"seo":{"indexing":"navigable"},"contextual":{"options":["copy","view","chatgpt","claude","cursor","vscode","mcp"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Support","icon":"envelope","href":"https://pcibooking.net/contact"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"pcibooking","hasAudioNarration":false,"actualSubdomain":"pcibooking","customDomains":["developers.pcibooking.net"],"gitSource":{"type":"github","owner":"pci-booking","repo":"documentation","deployBranch":"migrate-from-readme","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad97c97a2da3c7e08a20d49","collectionId":"1b853082-5d09-4ac3-b1c0-eb679f681f76","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad97c97a2da3c7e08a20d49"},"entitlements":{},"buildId":"6ad97c97a2da3c7e08a20d49","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"Guides","count":95},{"language":"default","tag":"API Reference","count":87},{"language":"default","tag":"Capture Cards","count":35},{"language":"default","tag":"Manage Tokens","count":29},{"language":"default","tag":"Use Tokens","count":27},{"language":"default","tag":"Additional Functions","count":22},{"language":"default","tag":"Account Configuration","count":21},{"language":"default","tag":"Reference","count":12},{"language":"default","tag":"Query \u0026 Update","count":11},{"language":"default","tag":"Use Cases","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/process-cards/token-replacement","slug":"/api-reference/process-cards/token-replacement","pageMetadata":{"title":"Token Replacement in Request API","sidebarTitle":"Token Replacement","api":"POST https://service.pcibooking.net/api/payments/paycard/relay","description":"Replace card tokens with real card data and relay the request to a third-party API.","href":"/api-reference/process-cards/token-replacement"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Replace card tokens with real card data and relay the request to a third-party API.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CodeBlock,Heading,Info,Note,ParamField,Tab,Table,Tabs}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);return _jsxs(_Fragment,{children:[_jsx(Card,{title:`Token Replacement Guide`,icon:`book`,href:`/use-tokens/token-replacement-in-request`,children:_jsx(_components.p,{children:`Replace tokens with card data in API requests`})}),`\n`,_jsx(_components.p,{children:`This is PCI Booking’s core proxy feature. Instead of processing payments through PCI Booking’s gateway integrations, you send the exact API request your third-party system expects, with token placeholders where card data should go. PCI Booking swaps in the real card data and forwards the request transparently, so the third party receives a normal API call with real card details while you never handle sensitive data.`}),`\n`,_jsx(Heading,{level:`2`,id:`error-responses`,children:`Error Responses`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Code`}),_jsx(_components.th,{children:`HTTP Status`}),_jsx(_components.th,{children:`Condition`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`-125`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:`httpMethod not POST/GET/PUT/PATCH/DELETE`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`-160`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`404`}),_jsx(_components.td,{children:`Card data could not be retrieved for a token you can access`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`-150`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`500`}),_jsx(_components.td,{children:`Card retrieval failed`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`-125`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:`Profile name provided but profile not found`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`-125`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:`Content replacement failed`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`-125`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:`Empty content body`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`-125`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:`Missing Content-Type header`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`-125`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:`Target URI invalid`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`-1003`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`401`}),_jsxs(_components.td,{children:[`The `,_jsx(_components.code,{children:`cardToken`}),` is malformed, the token does not exist or was deleted, or you are not the owner and not associated with it. See `,_jsx(_components.a,{href:`/reference/error-handling#token-not-found-or-not-accessible`,children:`Token Not Found or Not Accessible`}),`.`]})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`error-detail`,children:`Error detail`}),`\n`,_jsxs(_components.p,{children:[`Each condition below gives the exact `,_jsx(_components.code,{children:`moreInfo`}),` text, why it happens and how to resolve it. The full set is on the `,_jsx(_components.a,{href:`/reference/error-handling`,children:`Error Handling`}),` page.`]}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`-125 Bad input data - profile not found`,id:`125-bad-input-data-profile-not-found`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`HTTP status:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`message`}),`:`]}),` `,_jsx(_components.code,{children:`Bad input data`})]}),_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`moreInfo`}),`:`]}),` the wording depends on which endpoint you called:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Couldn't fetch a valid screening profile:: \u003cprofileName>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Couldn't fetch a valid pciShield profile:: \u003cprofileName>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.p,{children:[`The first is returned by token replacement in a request (`,_jsx(_components.code,{children:`paycard/relay`}),`). The second is returned by tokenization on response (`,_jsx(_components.code,{children:`paycard/capture`}),`). They mean the same thing.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Reason.`}),` The `,_jsx(_components.code,{children:`profileName`}),` you passed could not be resolved for the account making the request. In almost every case the profile does exist, but on a different account than the one your credentials belong to. A misspelled profile name produces the same error.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`How to resolve.`})}),_jsxs(_components.p,{children:[`A PCI Shield profile belongs to the `,_jsx(_components.strong,{children:`account`}),`, not to the sub-user that calls the API. When a sub-user makes a request, the profile is looked up against that sub-user’s parent account. A profile configured on one account is never visible to a sub-user of a different account, and sandbox and production accounts are separate.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`To check which profiles your credential can see:`})}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Identify the parent account of the sub-user whose credentials you are using.`}),`\n`,_jsxs(_components.li,{children:[`Sign in to the `,_jsx(_components.a,{href:`https://users.pcibooking.net`,children:`PCI Booking portal`}),` as that account and open `,_jsx(_components.strong,{children:`PCI Shield Settings`}),` > `,_jsx(_components.strong,{children:`PCI Shield Profile Settings`}),`.`]}),`\n`,_jsx(_components.li,{children:`Confirm the profile name appears there, spelled exactly as you send it. Profile names are matched exactly.`}),`\n`,_jsx(_components.li,{children:`If the profile is listed under a different account, switch your request to a sub-user of that account rather than copying the profile.`}),`\n`]}),_jsx(Note,{children:_jsxs(_components.p,{children:[`There is no API endpoint that lists the profiles on your own account. `,_jsx(_components.code,{children:`GET /api/booker`}),` returns the platform-wide preset tokenization profiles, which are a different set. Your own profiles are visible in the portal only.`]})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`See also:`}),` `,_jsx(_components.a,{href:`/account-setup/content-filters`,children:`Content Filters`}),`, `,_jsx(_components.a,{href:`/account-setup/target-profiles`,children:`Target Profiles`})]})]}),_jsxs(Accordion,{title:`-125 Bad input data - card data could not be substituted`,id:`125-bad-input-data-card-data-could-not-be-substituted`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`HTTP status:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`message`}),`:`]}),` `,_jsx(_components.code,{children:`Bad input data`})]}),_jsx(_components.p,{children:_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`moreInfo`}),`:`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Replacement of content failed`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Could not apply token replacement onto content`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Reason.`}),` The body parsed, but the profile’s selectors did not match anything in it, so no card data was substituted. The request was not relayed. This is a mismatch between the profile and the payload, not a problem with the token.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`How to resolve.`})}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Compare the profile’s selectors against the exact payload you sent. A selector that assumes a different nesting depth or element name matches nothing.`}),`\n`,_jsx(_components.li,{children:`Check the namespaces. For XML and SOAP, a selector written without namespace handling will not match a namespaced document.`}),`\n`,_jsx(_components.li,{children:`Confirm the body is the format the profile was written for. A profile written for XML will not match a JSON body.`}),`\n`,_jsx(_components.li,{children:`Test the profile against a saved copy of a real request before using it in production.`}),`\n`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`See also:`}),` `,_jsx(_components.a,{href:`/account-setup/content-filters`,children:`Content Filters`})]})]}),_jsxs(Accordion,{title:`-125 Bad input data - request body is empty`,id:`125-bad-input-data-request-body-is-empty`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`HTTP status:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`message`}),`:`]}),` `,_jsx(_components.code,{children:`Bad input data`})]}),_jsx(_components.p,{children:_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`moreInfo`}),`:`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Content is empty`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Content is missing/empty`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Empty relay message content`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Reason.`}),` Token replacement had nothing to work on. The body of the request you asked to be relayed was empty, so there was no content in which to substitute card data.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`How to resolve.`})}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Send the third-party request you want relayed as the body of the call, not as a query parameter.`}),`\n`,_jsx(_components.li,{children:`If you are pointing at the content with a parameter name, check that parameter is present and actually carries the payload.`}),`\n`,_jsxs(_components.li,{children:[`Check no proxy or client library between you and the API is dropping the body on a `,_jsx(_components.code,{children:`GET`}),` relay.`]}),`\n`]})]}),_jsxs(Accordion,{title:`-125 Bad input data - Content-Type header missing`,id:`125-bad-input-data-content-type-header-missing`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`HTTP status:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`message`}),`:`]}),` `,_jsx(_components.code,{children:`Bad input data`})]}),_jsx(_components.p,{children:_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`moreInfo`}),`:`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Content type is missing/empty`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Reason.`}),` Token replacement needs to know how to parse the body before it can find the placeholders. Without a `,_jsx(_components.code,{children:`Content-Type`}),` header it cannot choose a parser.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`How to resolve.`})}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Set `,_jsx(_components.code,{children:`Content-Type`}),` to match the body you are sending, for example `,_jsx(_components.code,{children:`application/json`}),`, `,_jsx(_components.code,{children:`text/xml`}),`, or `,_jsx(_components.code,{children:`application/x-www-form-urlencoded`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Send the charset if the third party requires one, for example `,_jsx(_components.code,{children:`text/xml; charset=UTF-8`}),`.`]}),`\n`]})]}),_jsxs(Accordion,{title:`-125 Bad input data - unsupported httpMethod value`,id:`125-bad-input-data-unsupported-httpmethod-value`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`HTTP status:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`message`}),`:`]}),` `,_jsx(_components.code,{children:`Bad input data`})]}),_jsx(_components.p,{children:_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`moreInfo`}),`:`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`httpMethod should be 'POST','GET','PUT','PATCH','DELETE'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Reason.`}),` The `,_jsx(_components.code,{children:`httpMethod`}),` parameter names a method the relay does not forward.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`How to resolve.`})}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Use one of `,_jsx(_components.code,{children:`POST`}),`, `,_jsx(_components.code,{children:`GET`}),`, `,_jsx(_components.code,{children:`PUT`}),`, `,_jsx(_components.code,{children:`PATCH`}),` or `,_jsx(_components.code,{children:`DELETE`}),`, in upper case.`]}),`\n`,_jsxs(_components.li,{children:[`Omit the parameter to accept the default of `,_jsx(_components.code,{children:`POST`}),`.`]}),`\n`]})]}),_jsxs(Accordion,{title:`-125 Bad input data - targetUri not usable`,id:`125-bad-input-data-targeturi-not-usable`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`HTTP status:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`message`}),`:`]}),` `,_jsx(_components.code,{children:`Bad input data`})]}),_jsx(_components.p,{children:_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`moreInfo`}),`:`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Target Uri invalid`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Reason.`}),` The `,_jsx(_components.code,{children:`targetUri`}),` could not be parsed as an absolute URL, so the relay had nowhere to send the request.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`How to resolve.`})}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Send an absolute URL including the scheme, for example `,_jsx(_components.code,{children:`https://api.example.com/path`}),`.`]}),`\n`,_jsx(_components.li,{children:`URL-encode the value if you pass it as a query parameter, so that its own query string does not terminate yours.`}),`\n`]})]}),_jsxs(Accordion,{title:`-125 Bad input data - no token found in the custom header`,id:`125-bad-input-data-no-token-found-in-the-custom-header`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`HTTP status:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`message`}),`:`]}),` `,_jsx(_components.code,{children:`Bad input data`})]}),_jsx(_components.p,{children:_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`moreInfo`}),`:`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Token(s) could not be found in custom header X-pciBooking-cardUri`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Reason.`}),` The relay was told to take the token from the `,_jsx(_components.code,{children:`X-pciBooking-cardUri`}),` header, but the header was absent or held no readable token.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`How to resolve.`})}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Add the `,_jsx(_components.code,{children:`X-pciBooking-cardUri`}),` header carrying the full token URI.`]}),`\n`,_jsx(_components.li,{children:`Separate multiple tokens as the endpoint documents, and check none of them is empty.`}),`\n`]})]}),_jsxs(Accordion,{title:`-175 Request timed out - third party did not respond in time`,id:`175-request-timed-out-third-party-did-not-respond-in-time`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`HTTP status:`}),` `,_jsx(_components.code,{children:`504`})]}),_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`message`}),`:`]}),` `,_jsx(_components.code,{children:`Request timed out`})]}),_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`moreInfo`}),`:`]}),` not populated for this condition. The code and the endpoint are the only signal.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Reason.`}),` PCI Booking relayed your request but the target server did not answer within the timeout. The failure is on the far side, not in PCI Booking. Card data may already have reached the third party, so the operation cannot be assumed not to have happened.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`How to resolve.`})}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Check how long the third party takes to respond. The complete round trip must finish within 29 seconds, so raising `,_jsx(_components.code,{children:`timeout`}),` beyond that does not help. If the third party regularly needs longer, contact `,_jsx(_components.a,{href:`mailto:support@pcibooking.net`,children:`support@pcibooking.net`}),` for an alternative setup.`]}),`\n`,_jsx(_components.li,{children:`Confirm the target host is reachable and not rate limiting or blocking the call. PCI Booking calls the third party from its own addresses, which the third party may need to allow.`}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Do not blind retry a charge.`}),` Query the third party for the outcome first. A timeout is an unknown result, not a failure.`]}),`\n`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`See also:`}),` `,_jsx(_components.a,{href:`/reference/outbound-ips`,children:`Outbound IPs`})]})]}),_jsxs(Accordion,{title:`-1003 You are not authorized to access this resource - token does not exist, was deleted, or is not yours`,id:`1003-you-are-not-authorized-to-access-this-resource-token-does-not-exist-was-deleted-or-is-not-yours`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`HTTP status:`}),` `,_jsx(_components.code,{children:`401`})]}),_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`message`}),`:`]}),` `,_jsx(_components.code,{children:`You are not authorized to access this resource. Please contact customer support.`})]}),_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`moreInfo`}),`:`]}),` one of the following, depending on which check failed:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`User is not the owner of this bank card`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Merchant or Owner are not associated with bank card [\u003ctoken>] userID: \u003cuserId>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`User \u003cuserId> is not associated with bank card [\u003ctoken>]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`User \u003cuserId> cannot delegate token \u003ctoken> - not owner and lacks delegation rights`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`User is not authorized to handle bank cards`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Reason.`}),` The credential authenticated fine, but it cannot act on the token in the request. Either the token does not exist or it is not yours to use. The generic wording makes this the single most misread error in the API. On a token call it is far more often one of the causes below than an actual permissions problem.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`How to resolve.`})}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Check the token still exists.`}),` This is the most common cause. On every token endpoint except Delete Token, a token that does not exist or was deleted returns this error, the same as a token that belongs to another account. See `,_jsx(_components.a,{href:`/reference/error-handling#token-not-found-or-not-accessible`,children:`Token Not Found or Not Accessible`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Check the tokenization actually succeeded.`}),` If the call that should have created the token failed, the token never existed, and calls that use it report `,_jsx(_components.code,{children:`-1003`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Check the environment.`}),` A sandbox token cannot be used from production, or the reverse.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Check ownership and association.`}),` See the rules below.`]}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Ownership and association.`})}),_jsx(_components.p,{children:`A token is owned by the account that created it. Another account can use the token only if the token was explicitly associated with it:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`At tokenization`}),`, by passing `,_jsx(_components.code,{children:`merchantId`}),` on the tokenizing call.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`After tokenization`}),`, by associating the token with the merchant.`]}),`\n`]}),_jsx(_components.p,{children:`Two rules catch people out:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`An association can only target a `,_jsx(_components.strong,{children:`primary`}),` account. If you pass the ID of a sub-user or a secondary property, the request is rejected and you must associate the token with the parent account instead.`]}),`\n`,_jsx(_components.li,{children:`Tokens never cross environments. A token created in sandbox cannot be used from production, and the reverse is also true.`}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Account level blocks.`})}),_jsxs(_components.p,{children:[`An account that has exceeded its processing allowance is blocked, and every billable API call from it then fails with HTTP `,_jsx(_components.code,{children:`403`}),` and code `,_jsx(_components.code,{children:`-1003`}),`, even though the credentials are still valid and can still sign in to the portal. In this response `,_jsx(_components.code,{children:`message`}),` is empty (`,_jsx(_components.code,{children:`null`}),`) and `,_jsx(_components.code,{children:`moreInfo`}),` holds only the generic `,_jsx(_components.code,{children:`-1003`}),` text, so nothing in the body explains the block. The `,_jsx(_components.code,{children:`403`}),` status is what tells it apart from a token that is not accessible, which returns `,_jsx(_components.code,{children:`401`}),`.`]}),_jsx(_components.p,{children:`This is a common cause on sandbox accounts, which have a lower allowance than production.`}),_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[`Check for it when a `,_jsx(_components.code,{children:`403`}),` with `,_jsx(_components.code,{children:`-1003`}),` appears suddenly across calls that used to work, on more than one token.`]}),` A block affects every billable call on the account at once, whereas a genuine ownership problem affects only the specific token. Contact `,_jsx(_components.a,{href:`https://pcibooking.net/pci-booking-support/`,children:`support`}),` with your account name to have the allowance reviewed and the block lifted. The block stays until support lifts it.`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`parameter-constraints`,children:`Parameter Constraints`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`cardToken`}),` must contain a valid card URI with a 32-hex token.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`targetUri`}),` is required.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`httpMethod`}),` defaults to POST. Accepted values: POST, GET, PUT, PATCH, DELETE.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`postResponseAction`}),` accepts `,_jsx(_components.code,{children:`ClearCVV`}),` or `,_jsx(_components.code,{children:`DeleteToken`}),`.`]}),`\n`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`All URLs must be HTTPS. URL-encode all query string components. The token goes in the `,_jsx(_components.code,{children:`cardToken`}),` query parameter, never in the URL path. `,_jsx(_components.code,{children:`POST /api/payments/paycard/{token}`}),` is a different, deprecated card management operation that accepts the API key only.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`parameters`,children:`Parameters`}),`\n`,_jsx(Heading,{level:`3`,id:`authentication`,children:`Authentication`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Access token or session token.`}),` This endpoint does not accept the API key. Generate a token with your API key and pass it as a query parameter. Send one of the two.`]}),`\n`,_jsx(ParamField,{query:`accessToken`,type:`string`,id:`param-access-token`,children:_jsxs(_components.p,{children:[`Generated on your side. Single use, and valid for up to 72 hours. `,_jsx(_components.a,{href:`/getting-started/authentication#access-token`,children:`How to generate`}),`.`]})}),`\n`,_jsx(ParamField,{query:`sessionToken`,type:`string`,id:`param-session-token`,children:_jsxs(_components.p,{children:[`Returned by an API call. Valid for 5 minutes, and can be used more than once within that time. `,_jsx(_components.a,{href:`/api-reference/general/start-temporary-session`,children:`How to generate`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`query-string`,children:`Query String`}),`\n`,_jsx(ParamField,{query:`cardToken`,type:`string`,required:true,id:`param-card-token`,children:_jsx(_components.p,{children:`The token URI identifying the card in PCI Booking.`})}),`\n`,_jsx(ParamField,{query:`targetUri`,type:`string`,required:true,id:`param-target-uri`,children:_jsx(_components.p,{children:`The HTTPS URL of the third party to relay the request to.`})}),`\n`,_jsx(ParamField,{query:`httpMethod`,type:`string`,default:`POST`,id:`param-http-method`,children:_jsxs(_components.p,{children:[`The HTTP method to use when calling the target URI. One of: `,_jsx(_components.code,{children:`POST`}),`, `,_jsx(_components.code,{children:`GET`}),`, `,_jsx(_components.code,{children:`PUT`}),`, `,_jsx(_components.code,{children:`PATCH`}),`, `,_jsx(_components.code,{children:`DELETE`}),`.`]})}),`\n`,_jsx(ParamField,{query:`profileName`,type:`string`,id:`param-profile-name`,children:_jsxs(_components.p,{children:[`The ID of a `,_jsx(_components.a,{href:`/account-setup/target-profiles`,children:`target profile`}),` configured for this request. If omitted, PCI Booking uses `,_jsx(_components.a,{href:`/use-tokens/token-replacement-placeholders`,children:`placeholder-based replacement`}),` instead. See `,_jsx(_components.a,{href:`/use-tokens/token-replacement-in-request#choosing-a-replacement-mode`,children:`Choosing a Replacement Mode`}),`.`]})}),`\n`,_jsx(ParamField,{query:`contentParam`,type:`string`,id:`param-content-param`,children:_jsxs(_components.p,{children:[`For placeholder-based replacement: the name of the one parameter that contains the placeholders. PCI Booking looks for it first in the query string of `,_jsx(_components.code,{children:`targetUri`}),`, then in the form body. Ignored if `,_jsx(_components.code,{children:`profileName`}),` is provided. If omitted, PCI Booking searches the whole request body for `,_jsx(_components.a,{href:`/use-tokens/token-replacement-placeholders`,children:`placeholders`}),`.`]})}),`\n`,_jsx(ParamField,{query:`postResponseAction`,type:`string`,id:`param-post-response-action`,children:_jsxs(_components.p,{children:[`Action to perform after a successful relay. `,_jsx(_components.code,{children:`ClearCVV`}),` clears the CVV from the token. `,_jsx(_components.code,{children:`DeleteToken`}),` deletes the token entirely. If omitted, no action is taken.`]})}),`\n`,_jsx(ParamField,{query:`timeout`,type:`int`,id:`param-timeout`,children:_jsxs(_components.p,{children:[`Seconds to wait for the third-party response before timing out. Default 60. The complete round trip must still finish within 29 seconds; see `,_jsx(_components.a,{href:`/use-tokens/token-replacement-in-request#timeouts`,children:`Timeouts`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`headers`,children:`Headers`}),`\n`,_jsx(ParamField,{header:`Content-Encoding`,type:`string`,id:`param-content-encoding`,children:_jsxs(_components.p,{children:[`Compression format: `,_jsx(_components.code,{children:`gzip`}),` or `,_jsx(_components.code,{children:`deflate`}),`. Omit if no compression is needed.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`request-body`,children:`Request Body`}),`\n`,_jsxs(_components.p,{children:[`The request body and headers are relayed to the third party as you send them, with card data inserted. Call this endpoint with `,_jsx(_components.code,{children:`POST`}),`; the third party receives the method set in `,_jsx(_components.code,{children:`httpMethod`}),`. Structure the request as the third party’s API requires, including any headers it needs. See `,_jsx(_components.a,{href:`/use-tokens/token-replacement-in-request#what-pci-booking-changes-in-your-request`,children:`What PCI Booking Changes in Your Request`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Mark where card data goes with `,_jsx(_components.a,{href:`/use-tokens/token-replacement-placeholders`,children:`placeholders`}),` such as `,_jsx(_components.code,{children:`$~Number~$`}),`, or reference a `,_jsx(_components.a,{href:`/account-setup/target-profiles`,children:`target profile`}),` with `,_jsx(_components.code,{children:`profileName`}),`, as in the second example below.`]}),`\n`,_jsx(Heading,{level:`2`,id:`request-example`,children:`Request Example`}),`\n`,_jsxs(_components.p,{children:[`Send a JSON payment request to a third-party API, with PCI Booking replacing the card placeholders with real data before forwarding. You authenticate to PCI Booking with the `,_jsx(_components.code,{children:`accessToken`}),` query parameter. Any `,_jsx(_components.code,{children:`Authorization`}),` header you send belongs to the third party and is forwarded to it.`]}),`\n`,_jsxs(_components.p,{children:[`The body is written as text so that the expiration month and year can be sent as JSON numbers, with their placeholders outside quotes. See `,_jsx(_components.a,{href:`/use-tokens/token-replacement-placeholders#placeholders-in-json`,children:`Placeholders in JSON`}),`.`]}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`curl`,id:`curl`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://service.pcibooking.net/api/payments/paycard/relay?accessToken=your-access-token\u0026cardToken=https%3A%2F%2Fservice.pcibooking.net%2Fapi%2Fpayments%2Fpaycard%2F555fd7b49f134b42a5dbe4d576b2e527\u0026targetUri=https%3A%2F%2Fapi.thirdparty.com%2Fv1%2Fpayments\u0026httpMethod=POST\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"amount\": 250.00,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"currency\": \"USD\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"card\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"number\": \"$~Number~$\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"expMonth\": $~ExpirationM~$,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"expYear\": $~ExpirationYYYY~$,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"cvv\": \"$~CVV~$\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"holderName\": \"$~OwnerName~$\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"reference\": \"order-98765\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})})}),_jsx(Tab,{title:`Node.js`,id:`node-js`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`33`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`33`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` params`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` URLSearchParams`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` accessToken:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"your-access-token\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` cardToken:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://service.pcibooking.net/api/payments/paycard/555fd7b49f134b42a5dbe4d576b2e527\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` targetUri:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://api.thirdparty.com/v1/payments\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` httpMethod:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"POST\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Built as text, not with JSON.stringify, so that the numeric`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// placeholders stay outside quotes.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` body`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" `{\"})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"amount\": 250.00,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"currency\": \"USD\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"card\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"number\": \"$~Number~$\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"expMonth\": $~ExpirationM~$,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"expYear\": $~ExpirationYYYY~$,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"cvv\": \"$~CVV~$\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"holderName\": \"$~OwnerName~$\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"reference\": \"order-98765\"`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"}`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` response`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` fetch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" `https://service.pcibooking.net/api/payments/paycard/relay?\"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`params`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` method:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"POST\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` headers:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Content-Type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"application/json\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` body`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` data`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})})}),_jsx(Tab,{title:`Python`,id:`python`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`30`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`30`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Built as text, not with json=, so that the numeric`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# placeholders stay outside quotes.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`body `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"\"\"{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"amount\": 250.00,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"currency\": \"USD\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"card\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"number\": \"$~Number~$\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"expMonth\": $~ExpirationM~$,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"expYear\": $~ExpirationYYYY~$,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"cvv\": \"$~CVV~$\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"holderName\": \"$~OwnerName~$\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"reference\": \"order-98765\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`}\"\"\"`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`response `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests.post(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://service.pcibooking.net/api/payments/paycard/relay\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` params`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"accessToken\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"your-access-token\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"cardToken\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://service.pcibooking.net/api/payments/paycard/555fd7b49f134b42a5dbe4d576b2e527\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"targetUri\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.thirdparty.com/v1/payments\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"httpMethod\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"POST\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` headers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Content-Type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"application/json\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` data`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`body`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(response.text)`})]}),`\n`]})})})})]}),`\n`,_jsxs(_components.p,{children:[`PCI Booking replaces the `,_jsx(_components.code,{children:`$~Number~$`}),`, `,_jsx(_components.code,{children:`$~ExpirationM~$`}),`, `,_jsx(_components.code,{children:`$~ExpirationYYYY~$`}),`, `,_jsx(_components.code,{children:`$~CVV~$`}),` and `,_jsx(_components.code,{children:`$~OwnerName~$`}),` placeholders with the card data from the token before forwarding the request to `,_jsx(_components.code,{children:`api.thirdparty.com`}),`. See the `,_jsx(_components.a,{href:`/use-tokens/token-replacement-placeholders#available-placeholders`,children:`full placeholder list`}),`.`]}),`\n`,_jsx(_components.p,{children:`To use a target profile (pre-configured replacement rules) instead of placeholders, send the card fields the profile targets with empty values. PCI Booking fills them in:`}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`curl`,id:`curl-2`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://service.pcibooking.net/api/payments/paycard/relay?accessToken=your-access-token\u0026cardToken=https%3A%2F%2Fservice.pcibooking.net%2Fapi%2Fpayments%2Fpaycard%2F555fd7b49f134b42a5dbe4d576b2e527\u0026targetUri=https%3A%2F%2Fapi.thirdparty.com%2Fv1%2Fpayments\u0026httpMethod=POST\u0026profileName=my-thirdparty-profile\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"amount\": 250.00,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"currency\": \"USD\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"card\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"number\": \"\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"expMonth\": \"\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"expYear\": \"\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"cvv\": \"\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"holderName\": \"\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"reference\": \"order-98765\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})})}),_jsx(Tab,{title:`Node.js`,id:`node-js-2`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`24`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`24`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` params`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` URLSearchParams`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` accessToken:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"your-access-token\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` cardToken:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://service.pcibooking.net/api/payments/paycard/555fd7b49f134b42a5dbe4d576b2e527\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` targetUri:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://api.thirdparty.com/v1/payments\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` httpMethod:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"POST\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` profileName:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"my-thirdparty-profile\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` response`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` fetch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" `https://service.pcibooking.net/api/payments/paycard/relay?\"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`params`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` method:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"POST\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` headers:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Content-Type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"application/json\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` body:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` JSON`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`stringify`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` amount:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 250.00`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` currency:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` card:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`number:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`expMonth:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`expYear:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`cvv:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`holderName:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` reference:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"order-98765\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` })`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` data`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})})}),_jsx(Tab,{title:`Python`,id:`python-2`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`21`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`21`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`response `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests.post(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://service.pcibooking.net/api/payments/paycard/relay\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` params`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"accessToken\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"your-access-token\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"cardToken\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://service.pcibooking.net/api/payments/paycard/555fd7b49f134b42a5dbe4d576b2e527\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"targetUri\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.thirdparty.com/v1/payments\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"httpMethod\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"POST\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"profileName\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"my-thirdparty-profile\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` headers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Content-Type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"application/json\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` json`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"amount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`250.00`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"card\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"number\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"expMonth\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"expYear\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"cvv\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"holderName\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"reference\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"order-98765\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(response.text)`})]}),`\n`]})})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`200`}),` - The third-party response, relayed back as-is.`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Consider adding business logic based on the `,_jsx(_components.a,{href:`/capture-cards/cvv-retention-policy`,children:`CVV retention policy status`}),` after a token replacement request.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Token Replacement in Request API","sidebarTitle":"Token Replacement","api":"POST https://service.pcibooking.net/api/payments/paycard/relay","description":"Replace card tokens with real card data and relay the request to a third-party API.","href":"/api-reference/process-cards/token-replacement"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[434,438,"ResponseExample,Tab,"],[868,883,"ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!Tab)_missingMdx"],[81148,81576,",`\n`,_jsxs(ResponseExample,{children:[_jsx(CodeBlock,{filename:`200`,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`The third-party response is returned as-is. The format and content depend entirely on the destination API.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(CodeBlock,{filename:`401`,numberOfLines:`4`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Empty response body.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Authentication failed: the API key, session token or access token is missing or was not accepted.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`See \"Authentication and Permission Failures\" on the Error Handling page.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(CodeBlock,{filename:`Invalid profile 400`,numberOfLines:`6`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`-125`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Bad input data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"moreInfo\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Couldn't fetch a valid screening profile:: \u003cprofileName>\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"errorList\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Invalid target URI 400`,numberOfLines:`6`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`-125`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Bad input data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"moreInfo\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Invalid target Uri::\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"errorList\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}"]]},"mdxExtracts":{"tableOfContents":[{"title":"Error Responses","slug":"error-responses","depth":2,"children":[{"title":"Error detail","slug":"error-detail","depth":3,"children":[]}]},{"title":"Parameter Constraints","slug":"parameter-constraints","depth":2,"children":[]},{"title":"Parameters","slug":"parameters","depth":2,"children":[{"title":"Authentication","slug":"authentication","depth":3,"children":[]},{"title":"Query String","slug":"query-string","depth":3,"children":[]},{"title":"Headers","slug":"headers","depth":3,"children":[]},{"title":"Request Body","slug":"request-body","depth":3,"children":[]}]},{"title":"Request Example","slug":"request-example","depth":2,"children":[]},{"title":"Response","slug":"response","depth":2,"children":[]}],"codeExamples":{"response":{"type":"ResponseExample","children":[{"filename":"200","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"text\">\u003ccode language=\"text\" numberOfLines=\"2\">\u003cspan class=\"line\">\u003cspan>The third-party response is returned as-is. The format and content depend entirely on the destination API.\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan>\u003c/span>\u003c/span>\u003c/code>\u003c/pre>"},{"filename":"401","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"text\">\u003ccode language=\"text\" numberOfLines=\"4\">\u003cspan class=\"line\">\u003cspan>Empty response body.\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan>Authentication failed: the API key, session token or access token is missing or was not accepted.\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan>See \"Authentication and Permission Failures\" on the Error Handling page.\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan>\u003c/span>\u003c/span>\u003c/code>\u003c/pre>"},{"filename":"Invalid profile 400","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"6\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">-125\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"message\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Bad input data\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"moreInfo\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Couldn't fetch a valid screening profile:: \u0026#x3C;profileName>\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"errorList\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"Invalid target URI 400","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"6\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">-125\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"message\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Bad input data\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"moreInfo\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Invalid target Uri::\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"errorList\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}},"endpoint":{"title":"Token Replacement in Request API","path":"/api/payments/paycard/relay","servers":[{"url":"https://service.pcibooking.net"}],"method":"post","request":{"security":[{"title":"API Key Auth","parameters":{"header":{"Authorization":{"type":"apiKey"}},"query":{},"cookie":{}}}],"parameters":{"query":{"accessToken":{"schema":[{"type":"string","description":"Generated on your side. Single use, and valid for up to 72 hours. How to generate ."}]},"sessionToken":{"schema":[{"type":"string","description":"Returned by an API call. Valid for 5 minutes, and can be used more than once within that time. How to generate ."}]},"cardToken":{"schema":[{"type":"string","description":"The token URI identifying the card in PCI Booking.","required":true}]},"targetUri":{"schema":[{"type":"string","description":"The HTTPS URL of the third party to relay the request to.","required":true}]},"httpMethod":{"schema":[{"type":"string","description":"The HTTP method to use when calling the target URI. One of: `POST` , `GET` , `PUT` , `PATCH` , `DELETE` ."}]},"profileName":{"schema":[{"type":"string","description":"The ID of a target profile configured for this request. If omitted, PCI Booking uses placeholder-based replacement instead. See Choosing a Replacement Mode ."}]},"contentParam":{"schema":[{"type":"string","description":"For placeholder-based replacement: the name of the one parameter that contains the placeholders. PCI Booking looks for it first in the query string of `targetUri` , then in the form body. Ignored if `profileName` is provided. If omitted, PCI Booking searches the whole request body for placeholders ."}]},"postResponseAction":{"schema":[{"type":"string","description":"Action to perform after a successful relay. `ClearCVV` clears the CVV from the token. `DeleteToken` deletes the token entirely. If omitted, no action is taken."}]},"timeout":{"schema":[{"type":"integer","description":"Seconds to wait for the third-party response before timing out. Default 60. The complete round trip must still finish within 29 seconds; see Timeouts ."}]}},"header":{"Content-Encoding":{"schema":[{"type":"string","description":"Compression format: `gzip` or `deflate` . Omit if no compression is needed."}]}},"cookie":{},"path":{}},"body":{}},"response":{},"deprecated":false}},"jsLinks":[],"subdomain":"pcibooking","siteName":"PCI Booking","title":"Token Replacement in Request API - PCI Booking","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-22T01:47:06.765Z","originalFileLocation":"api-reference/process-cards/token-replacement.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Replace card tokens with real card data and relay the request to a third-party API.\">\u003cmeta data-mint-head name=\"application-name\" content=\"PCI Booking\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/pcibooking/Vkc1dlug5ZWqlaAq/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/pcibooking/Vkc1dlug5ZWqlaAq/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/pcibooking/Vkc1dlug5ZWqlaAq/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/pcibooking/Vkc1dlug5ZWqlaAq/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/pcibooking/Vkc1dlug5ZWqlaAq/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/pcibooking/Vkc1dlug5ZWqlaAq/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/pcibooking/Vkc1dlug5ZWqlaAq/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/pcibooking/Vkc1dlug5ZWqlaAq/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/pcibooking/Vkc1dlug5ZWqlaAq/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Token Replacement in Request API - PCI Booking\">\u003cmeta data-mint-head property=\"og:description\" content=\"Replace card tokens with real card data and relay the request to a third-party API.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"PCI Booking\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.pcibooking.net/api-reference/process-cards/token-replacement\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://pcibooking.mintlify.app/_mintlify/api/og/v2?division=Token+Replacement\u0026amp;title=Token+Replacement+in+Request+API\u0026amp;description=Replace+card+tokens+with+real+card+data+and+relay+the+request+to+a+third-party+API.\u0026amp;theme=e6d7a314e297f3571cc8537d\u0026amp;signature=516a06a60f48f5d153c25b2e935eacd9c4f771279a182aa0ace363f3a08d4e8c\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Token Replacement in Request API - PCI Booking\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Replace card tokens with real card data and relay the request to a third-party API.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://pcibooking.mintlify.app/_mintlify/api/og/v2?division=Token+Replacement\u0026amp;title=Token+Replacement+in+Request+API\u0026amp;description=Replace+card+tokens+with+real+card+data+and+relay+the+request+to+a+third-party+API.\u0026amp;theme=e6d7a314e297f3571cc8537d\u0026amp;signature=516a06a60f48f5d153c25b2e935eacd9c4f771279a182aa0ace363f3a08d4e8c\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/pcibooking/Vkc1dlug5ZWqlaAq/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"PCI Booking\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#333333\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.pcibooking.net/api-reference/process-cards/token-replacement\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/process-cards/token-replacement.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.pcibooking.net/#organization\",\"name\":\"PCI Booking\",\"url\":\"https://developers.pcibooking.net\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/pcibooking/pMOWAlxYaLwyZe8N/logo/light.png?fit=max\u0026auto=format\u0026n=pMOWAlxYaLwyZe8N\u0026q=85\u0026s=05d07ed84fd562e4e5546e37f9891791\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.pcibooking.net#website\",\"name\":\"PCI Booking\",\"url\":\"https://developers.pcibooking.net\",\"publisher\":{\"@id\":\"https://developers.pcibooking.net/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.pcibooking.net/api-reference/process-cards/token-replacement#webpage\",\"url\":\"https://developers.pcibooking.net/api-reference/process-cards/token-replacement\",\"name\":\"Token Replacement in Request API\",\"description\":\"Replace card tokens with real card data and relay the request to a third-party API.\",\"dateModified\":\"2026-10-22T01:47:06.765Z\",\"isPartOf\":{\"@id\":\"https://developers.pcibooking.net#website\"},\"breadcrumb\":{\"@id\":\"https://developers.pcibooking.net/api-reference/process-cards/token-replacement#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.pcibooking.net/api-reference/process-cards/token-replacement#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Use Tokens\",\"item\":\"https://developers.pcibooking.net/api-reference/process-cards/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Token Replacement in Request API\",\"item\":\"https://developers.pcibooking.net/api-reference/process-cards/token-replacement\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.pcibooking.net/api-reference/process-cards/token-replacement#apireference\",\"headline\":\"Token Replacement in Request API\",\"name\":\"Token Replacement in Request API\",\"description\":\"Replace card tokens with real card data and relay the request to a third-party API.\",\"url\":\"https://developers.pcibooking.net/api-reference/process-cards/token-replacement\",\"mainEntityOfPage\":{\"@id\":\"https://developers.pcibooking.net/api-reference/process-cards/token-replacement#webpage\"},\"dateModified\":\"2026-10-22T01:47:06.765Z\",\"publisher\":{\"@id\":\"https://developers.pcibooking.net/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.pcibooking.net#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"PCI Booking\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"PCI Booking","nav":{"global":{"anchors":[{"anchor":"Support","icon":"envelope","href":"https://pcibooking.net/contact"}]},"tabs":[{"tab":"Guides","icon":"book","pages":[{"title":"Guides","href":"/start-here/introduction"}]},{"tab":"Use Cases","icon":"route","pages":[{"title":"Use Cases","href":"/use-cases/how-do-i"}]},{"tab":"API Reference","icon":"code","groups":[{"group":"Start Here","pages":[{"title":"API Reference Overview","sidebarTitle":"Overview","href":"/api-reference/overview"}]},{"group":"Authentication \u0026 General","pages":[{"group":"Authentication","pages":[{"title":"Authenticate API Key","api":"POST https://service.pcibooking.net/api/accounts/authenticate/","href":"/api-reference/general/authenticate"},{"title":"Start a Temporary Session","api":"POST https://service.pcibooking.net/api/payments/paycard/tempsession","href":"/api-reference/general/start-temporary-session"}]},{"title":"Get Supported Credit Cards","api":"GET https://service.pcibooking.net/api/payments/paycard/supportedCards","href":"/api-reference/general/get-supported-cards"},{"group":"CSS Stylesheets","pages":[{"title":"Add or update CSS","api":"PUT https://service.pcibooking.net/api/resources/stylesheet/{ResourceName}","href":"/api-reference/general/add-update-css"},{"title":"List All CSS Records","api":"GET https://service.pcibooking.net/api/resources/stylesheet","href":"/api-reference/general/list-css-records"},{"title":"Retrieve CSS Record","api":"GET https://service.pcibooking.net/api/resources/stylesheet/{ResourceName}","href":"/api-reference/general/retrieve-css-record"},{"title":"Delete CSS Record","api":"DELETE https://service.pcibooking.net/api/resources/stylesheet/{ResourceName}","href":"/api-reference/general/delete-css-record"}]}]},{"group":"Capture Cards","pages":[{"title":"Capture Cards API Reference","href":"/api-reference/tokenize-cards/overview"},{"title":"Request a Card Entry Form","api":"GET https://service.pcibooking.net/api/payments/capturecard","href":"/api-reference/tokenize-cards/request-card-entry-form"},{"group":"Session-Based Card Entry Form","pages":[{"title":"Create Card Entry Form Session","api":"POST https://service.pcibooking.net/api/capturecard","href":"/api-reference/tokenize-cards/create-card-entry-form-session"},{"title":"Retrieve Card Entry Session Details","api":"GET https://service.pcibooking.net/api/capturecard/{RequestID}","href":"/api-reference/tokenize-cards/retrieve-card-entry-session"},{"title":"Delete Card Entry Form","api":"DELETE https://service.pcibooking.net/api/capturecard/{RequestID}","href":"/api-reference/tokenize-cards/delete-card-entry-form"},{"title":"Card Entry Form Webhook","sidebarTitle":"Webhook","href":"/api-reference/tokenize-cards/card-entry-form-callback"}]},{"group":"Card By Link","pages":[{"title":"Send Card Capture Link","sidebarTitle":"Send Card Capture Link","api":"POST https://service.pcibooking.net/api/cardrequest","href":"/api-reference/tokenize-cards/cotp-send-card-form"},{"title":"Send CVV Capture Link","sidebarTitle":"Send CVV Capture Link","api":"POST https://service.pcibooking.net/api/cardrequest/duplicate","href":"/api-reference/tokenize-cards/cotp-send-cvv-form"},{"title":"Retrieve Card By Link Request","sidebarTitle":"Retrieve Request","api":"GET https://service.pcibooking.net/api/cardrequest/{requestID}","href":"/api-reference/tokenize-cards/cotp-retrieve-request"},{"title":"Card By Link Webhook","sidebarTitle":"Webhook","href":"/api-reference/tokenize-cards/cotp-callback"},{"title":"Delete Card By Link Request","sidebarTitle":"Delete Request","api":"DELETE https://service.pcibooking.net/api/cardrequest/{requestID}","href":"/api-reference/tokenize-cards/cotp-delete-request"}]},{"group":"Server-Side Tokenization","pages":[{"title":"Tokenization in Response","api":"POST https://service.pcibooking.net/api/payments/paycard/capture","href":"/api-reference/tokenize-cards/tokenization-in-response"},{"title":"Tokenize on Response Using Preset Profiles","api":"POST https://service.pcibooking.net/api/booker/{ProfileName}/reservation","href":"/api-reference/tokenize-cards/tokenize-on-response-using-preset-profiles"},{"title":"Get Tokenization Profiles","api":"GET https://service.pcibooking.net/api/booker","href":"/api-reference/tokenize-cards/get-tokenization-profiles"},{"title":"Tokenize from sFTP","api":"GET https://service.pcibooking.net/api/sftp/{serverAddress}/{folderPath}/{fileName}","href":"/api-reference/tokenize-cards/tokenize-from-sftp"}]},{"title":"Store Paycard (Card Migration)","api":"POST https://service.pcibooking.net/api/payments/paycard","href":"/api-reference/tokenize-cards/store-paycard"},{"title":"Request a Card Security Code Entry Form","sidebarTitle":"CVV Entry Form","api":"GET https://service.pcibooking.net/api/payments/cvvcapturecard","href":"/api-reference/manage-tokens/request-cvv-entry-form"},{"group":"Virtual Card Issuance","pages":[{"title":"List Virtual Card Providers","api":"GET https://service.pcibooking.net/api/VirtualCard","href":"/api-reference/tokenize-cards/list-virtual-card-providers"},{"title":"Get Virtual Card Provider","api":"GET https://service.pcibooking.net/api/VirtualCard/{name}","href":"/api-reference/tokenize-cards/get-virtual-card-provider"},{"title":"Retrieve VCP Credential Structure","sidebarTitle":"Retrieve Credential Structure","api":"GET https://service.pcibooking.net/api/credentials/virtualCardProvider/{name}","href":"/api-reference/tokenize-cards/retrieve-vcp-credential-structure"},{"title":"Issue Virtual Card","api":"POST https://service.pcibooking.net/api/VirtualCard","href":"/api-reference/tokenize-cards/issue-virtual-card"}]}]},{"group":"Manage Tokens","pages":[{"title":"Manage Tokens API Reference","href":"/api-reference/manage-tokens/overview"},{"group":"Query \u0026 Update","pages":[{"title":"Query Tokens","api":"GET https://service.pcibooking.net/api/payments/paycard/meta","href":"/api-reference/manage-tokens/query-tokens"},{"title":"Retrieve Token Metadata","sidebarTitle":"Retrieve Metadata","api":"GET https://service.pcibooking.net/api/payments/paycard/{cardtoken}/meta","href":"/api-reference/manage-tokens/retrieve-token-metadata"},{"title":"Update Card Expiration Date","sidebarTitle":"Update Expiration","api":"PUT https://service.pcibooking.net/api/payments/paycard/{cardToken}/UpdateExpiration","href":"/api-reference/manage-tokens/update-expiration"},{"title":"Update Creator Reference","api":"PUT https://service.pcibooking.net/api/payments/paycard/{token}/creatorReference/{creatorReference}","href":"/api-reference/manage-tokens/update-creator-reference"},{"title":"Delete Creator Reference","api":"DELETE https://service.pcibooking.net/api/payments/paycard/{token}/creatorReference","href":"/api-reference/manage-tokens/delete-creator-reference"},{"title":"Transfer Ownership","api":"PUT https://service.pcibooking.net/api/payments/paycard/{cardToken}/externalUser/{AltCustomer}","href":"/api-reference/manage-tokens/transfer-ownership"},{"title":"Duplicate Token","api":"POST https://service.pcibooking.net/api/payments/paycard/duplicate","href":"/api-reference/manage-tokens/duplicate-token"},{"title":"Delete Token","api":"DELETE https://service.pcibooking.net/api/payments/paycard/{cardToken}","href":"/api-reference/manage-tokens/delete-token"}]},{"group":"CVV Management","pages":[{"title":"Clear CVV","api":"POST https://service.pcibooking.net/api/payments/paycard/{cardToken}/op/clearcvv","href":"/api-reference/manage-tokens/clear-cvv"},{"title":"Set CVV Retention Policy","api":"PUT https://service.pcibooking.net/api/payments/paycard/{cardToken}/cvv/Restriction","href":"/api-reference/manage-tokens/set-cvv-retention-policy"},{"title":"Get CVV Retention Policy","api":"GET https://service.pcibooking.net/api/payments/paycard/{cardToken}/cvv/Restriction","href":"/api-reference/manage-tokens/get-cvv-retention-policy"},{"title":"Get CVV Retention Policy for Specific Destination","sidebarTitle":"Get Policy (Specific)","api":"GET https://service.pcibooking.net/api/payments/paycard/{cardToken}/cvv/Restriction/{DestinationType}/{DestinationData}","href":"/api-reference/manage-tokens/get-cvv-retention-policy-specific"},{"title":"Delete CVV Retention Policy","api":"DELETE https://service.pcibooking.net/api/payments/paycard/{cardToken}/cvv/Restriction","href":"/api-reference/manage-tokens/delete-cvv-retention-policy"},{"title":"Delete CVV Retention Policy by Destination Type","sidebarTitle":"Delete Policy (Type)","api":"DELETE https://service.pcibooking.net/api/payments/paycard/{cardToken}/cvv/Restriction/{DestinationType}","href":"/api-reference/manage-tokens/delete-cvv-retention-policy-type"},{"title":"Delete CVV Retention Policy by Destination","sidebarTitle":"Delete Policy (Destination)","api":"DELETE https://service.pcibooking.net/api/payments/paycard/{cardToken}/cvv/Restriction/{DestinationType}/{DestinationData}","href":"/api-reference/manage-tokens/delete-cvv-retention-policy-type-data"}]},{"group":"3D Secure","pages":[{"title":"Store 3D Secure Data","api":"PUT https://service.pcibooking.net/api/payments/paycard/{cardToken}/3dToken","href":"/api-reference/manage-tokens/store-3d-token"},{"title":"Retrieve 3D Secure Data","api":"GET https://service.pcibooking.net/api/payments/paycard/{cardToken}/3dToken","href":"/api-reference/manage-tokens/retrieve-3d-token"},{"title":"Delete 3D Secure Data","api":"DELETE https://service.pcibooking.net/api/payments/paycard/{cardToken}/3dToken","href":"/api-reference/manage-tokens/delete-3d-token"}]},{"group":"Third-Party Permissions","pages":[{"title":"Associate with Customer","sidebarTitle":"Associate with Customer","api":"PUT https://service.pcibooking.net/api/payments/paycard/{cardToken}/user/{userID}","href":"/api-reference/manage-tokens/associate-with-customer"},{"title":"Disassociate from Customer","sidebarTitle":"Disassociate from Customer","api":"DELETE https://service.pcibooking.net/api/payments/paycard/{cardToken}/user/{userID}","href":"/api-reference/manage-tokens/disassociate-from-customer"},{"title":"List Customer Associations","sidebarTitle":"List Customer Associations","api":"GET https://service.pcibooking.net/api/payments/paycard/{cardToken}/users","href":"/api-reference/manage-tokens/list-customer-associations"}]}]},{"group":"Use Tokens","pages":[{"title":"Use Tokens API Reference","description":"API endpoints for processing cards: Universal Payment Gateway transactions, token replacement, card display, and FTPS/sFTP file transfer","href":"/api-reference/process-cards/overview"},{"group":"Token Replacement","pages":[{"title":"Token Replacement in Request API","sidebarTitle":"Token Replacement","api":"POST https://service.pcibooking.net/api/payments/paycard/relay","href":"/api-reference/process-cards/token-replacement"},{"title":"Token Replacement to sFTP","description":"Replace card tokens in a document and upload the result to an sFTP server.","api":"PUT https://service.pcibooking.net/api/sftp/{serverAddress}/{folderPath}/{fileName}","href":"/api-reference/process-cards/token-replacement-sftp"},{"title":"Token Replacement to FTPS","api":"PUT https://service.pcibooking.net/api/ftps/{serverAddress}/{folderPath}/{fileName}","href":"/api-reference/process-cards/token-replacement-ftps"},{"title":"Delete File from sFTP or FTPS","sidebarTitle":"Delete File (sFTP/FTPS)","api":"DELETE https://service.pcibooking.net/api/sftp/{serverAddress}/{filePath}","href":"/api-reference/process-cards/delete-file-sftp"}]},{"group":"Payment Gateway","pages":[{"title":"Process Transaction","api":"POST https://service.pcibooking.net/api/paymentGateway","href":"/api-reference/process-cards/process-transaction"},{"title":"Additional Guidance for Specific Payment Gateways","href":"/api-reference/process-cards/gateway-guidance"}]},{"group":"Card Display","pages":[{"title":"Request a Card Display Form","api":"GET https://service.pcibooking.net/api/payments/paycard/{cardtoken}/display","href":"/api-reference/process-cards/request-card-display-form"},{"title":"Initiate Card Display with OTP","sidebarTitle":"Card Display with OTP","api":"POST https://service.pcibooking.net/api/card-view-request/initView","href":"/api-reference/process-cards/card-display-otp"}]},{"title":"Retrieve Card Details","api":"GET https://service.pcibooking.net/api/payments/paycard/{cardToken}","href":"/api-reference/manage-tokens/retrieve-card-details"},{"title":"Risk Assessment API","api":"POST https://service.pcibooking.net/api/payments/paycard/{cardToken}/op/validate","href":"/api-reference/manage-tokens/risk-assessment"}]},{"group":"Additional Functions","pages":[{"title":"Get Payment Gateways","api":"GET https://service.pcibooking.net/api/paymentGateway","href":"/api-reference/process-cards/get-payment-gateways"},{"group":"Gateway Credentials","pages":[{"title":"Retrieve Payment Gateway Credential Structure","api":"GET https://service.pcibooking.net/api/credentials/paymentGateway/{name}","href":"/api-reference/process-cards/retrieve-credential-structure"},{"title":"Store Payment Gateway Credentials","api":"PUT https://service.pcibooking.net/api/credentials/{credentialsId}","href":"/api-reference/process-cards/store-credentials"},{"title":"List Payment Gateway Credentials","api":"GET https://service.pcibooking.net/api/credentials","href":"/api-reference/process-cards/list-credentials"},{"title":"Delete Payment Gateway Credentials","api":"DELETE https://service.pcibooking.net/api/credentials/{credentialsId}","href":"/api-reference/process-cards/delete-credentials"}]},{"group":"Data Blocks","pages":[{"title":"Create Data Block","api":"POST https://service.pcibooking.net/api/dataBlock","href":"/api-reference/additional/create-data-block"},{"title":"Get Data Block Details","api":"GET https://service.pcibooking.net/api/dataBlock/{id}","href":"/api-reference/additional/get-data-block-details"},{"title":"Update Data Block Details","api":"PUT https://service.pcibooking.net/api/dataBlock/{id}","href":"/api-reference/additional/update-data-block-details"},{"title":"Delete Data Block","api":"DELETE https://service.pcibooking.net/api/dataBlock/{id}","href":"/api-reference/additional/delete-data-block"},{"title":"Search Data Blocks","api":"GET https://service.pcibooking.net/api/dataBlock","href":"/api-reference/additional/search-data-blocks"},{"title":"Upload Data Block Content","api":"PUT https://service.pcibooking.net/api/datablock/{id}/data","href":"/api-reference/additional/upload-data-block-content"},{"title":"Download Data Block Content","api":"GET https://service.pcibooking.net/api/datablock/{id}/data","href":"/api-reference/additional/download-data-block-content"}]},{"group":"Contact Verification","pages":[{"title":"Create a Verification","api":"POST https://service.pcibooking.net/api/verify","href":"/api-reference/additional/create-verification"},{"title":"Get Verification Status","api":"GET https://service.pcibooking.net/api/verify/{verificationId}","href":"/api-reference/additional/get-verification-status"},{"title":"Get Verification Results","api":"GET https://service.pcibooking.net/api/verify/{verificationId}/results","href":"/api-reference/additional/get-verification-results"},{"title":"Receive Result Notification","href":"/api-reference/additional/receive-result-notification"}]},{"group":"Network Tokenization","pages":[{"title":"Network Tokenize a Card","api":"POST https://service.pcibooking.net/api/networkToken","href":"/api-reference/additional/network-tokenize-card"},{"title":"Network Tokenize from Existing Token","sidebarTitle":"Network Tokenize from Token","api":"POST https://service.pcibooking.net/api/networkToken/token","href":"/api-reference/additional/network-tokenize-from-token"},{"title":"Delete Network Token","api":"DELETE https://service.pcibooking.net/api/networkToken","href":"/api-reference/additional/delete-network-token"}]}]},{"group":"Payments Library","pages":[{"group":"Library Setup \u0026 Use","pages":[{"title":"Create Payments Library Session","api":"POST https://service.pcibooking.net/api/eWalletOperation","href":"/api-reference/payments-library/create-session"},{"title":"Validate Operation Result","sidebarTitle":"Validate Operation","api":"POST https://service.pcibooking.net/api/eWalletOperation/validateResults","href":"/api-reference/payments-library/validate-operation"}]},{"group":"Library Account Management","pages":[{"title":"Retrieve Digital Wallet Credential Structure","sidebarTitle":"Retrieve Credential Structure","api":"GET https://service.pcibooking.net/api/eWalletOperation","href":"/api-reference/payments-library-accounts/retrieve-credential-structure"},{"title":"Store Digital Wallet Credentials","api":"PUT https://service.pcibooking.net/api/eWalletAccounts/{credentialsId}","href":"/api-reference/payments-library-accounts/store-credentials"},{"title":"List Digital Wallet Credentials","sidebarTitle":"List Credentials","api":"GET https://service.pcibooking.net/api/eWalletAccounts","href":"/api-reference/payments-library-accounts/list-credentials"},{"title":"Delete Digital Wallet Credentials","api":"DELETE https://service.pcibooking.net/api/eWalletAccounts/{credentialsId}","href":"/api-reference/payments-library-accounts/delete-credentials"}]}]}]}]},"title":"Token Replacement in Request API - PCI Booking","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff"],"chunks":["OpenApiReferenceProvider-DKJwRUt2.js","utils-CWD_VS3u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-oFjciODD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C76WsxC3.js","snippetPresets-DvPMxpX_.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CuNQfndH.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BVFpVUoF.js","shallow-t59Jg5Kr.js","getApiPlaygroundDisplay-C_JZ4amX.js","CodeSnippet-CLRDnx_h.js","CodeSnippets-C2myU4kc.js","Page-7TwLLapg.js","getPastedJson-B-JaVXw7.js","icon-BA-iDhH3.js","MethodPill-D4qZABFp.js","DuplicateIcon-THIDKO1O.js","createIcon-CYYJwgFd.js","DynamicMarkdown-UGQuxDKp.js","SectionHeading-jYELb23h.js","axios-vUo_bRtp.js"]}